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のジョブに登録するだけです。

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

関連記事


icon-loading

AWS Elastic Beanstalk で Laravel を動かしてみた

AWS Elastic Beanstalk の使い方をご紹介しながら Laravel を動かしてみます。 公式ドキュメントを読んで「動かない...」となった方も、本記事を読めば大丈夫です。 NGINX の設定ファイルを事前に配置、ソースコードを適切にZIP化、 Amazon RDS を追加...といった手順を踏んでいきます。

icon-loading

Laravel環境構築(Mac編)

Mac端末にPHPフレームワーク「Laravel」の環境を構築します。 ローカル環境でLaravelを実行するところまで確認していきます。

icon-loading
data_encryption

Easy connection to a remote server using SSH (Linux & macOS)

Easily connect to a remote server using SSH on Linux and macOS. Learn how to use the ssh command in a terminal and how to configure ssh to store your private keys and passwords.

icon-loading

3 Essential Checks in Laravel

Get bugs in production but ran perfectly in development? How to avoid "Divide by zero", "Trying to get property of non-object", other common Laravel PHP errors.

icon-loading

Laravelでバックアップ処理を実装する

Laravel-backupパッケージを利用してソースコードやDBのバックアップを毎日実行するところまで解説していきます。

icon-loading

Laravel キャッシュクリアコマンド

他の開発メンバーが実装したコードが動かない...そんなとき、一度落ち着いて実行して欲しいLaravelのキャッシュクリアコマンドをまとめました。