2021/12/14

EC2からS3にcronでバックアップ

目次

目次
  1. EC2からS3へファイルを送信する方法
  2. IAMロールを作成して、EC2にIAMロールをアタッチする
  3. cronの設定

1. EC2からS3へファイルを送信する方法

S3へアクセスするためにはアクセス権限が必要です。

EC2に対して権限を付与する方法はいくつかありますが、今回はIAMロールをアタッチしてアクセス権限を付与する方法を説明します。

AWSでもこの方法が推奨されています。

EC2に対してアクセスキーとシークレットキーを割り当てる方法もありますが、セキュリティ的にリスクが高いのでこの方法は極力使わないようにしましょう。

2. IAMロールを作成して、EC2にIAMロールをアタッチする

2-1 ロールの作成

2-2 ユースケースの選択 

    -> EC2を選択

2-3 ポリシーの選択 

    -> AmazonS3FullAccessを選択

このポリシーは全てのバケットにアクセスが出来るのでよりセキュリティを高めたい場合は対象のバケットを指定するといったカスタマイズが必要です。

2-4 タグの設定、ロール名の入力 

    -> 任意のタグ、ロール名を設定

2-5 対象のEC2インスタンスにアタッチ

    -> 対象のEC2を選択してアクション>セキュリティ>IAMロールを変更から先ほど作成したIAMロールをアタッチする

EC2にSSHしてアタッチしたIAMロールがあるか確認。

aws sts get-caller-identity

EC2からS3のバケットが表示できるか確認。

aws s3 ls

今回S3のバケットはあらかじめ作成しています。

3. cronの設定

まず、バックアップを取りたいフォルダの同期ができるか確認。

aws s3 sync {フォルダパス} s3://{バケット名}/{パス}

あとはAWSコマンドをcronのジョブに登録するだけです。

以上で定期バックアップの設定は終了です。