S3のレプリケーション方法

概要

AWS S3上に作成したバケットを別リージョンのバケットにレプリケーションし、データの冗長化する方法。

 

前提条件

・AWSのアカウントを所持していること。
・S3の操作が可能なこと。

 

S3のバケット作成

通常利用しているリージョンにS3バケットを作成

① AWSマネジメントコンソールのサービスを検索するから「S3」と検索し「S3」を選択します。

 

② 左メニュー「バケット」→「バケットの作成」をクリックします。

 

③ 「バケット名」を入力し、リージョンを通常利用するリージョンが選択していることを確認します。

 

④ 右下「バケットを作成」をクリックして、バケットを作成します。

 

⑤ 「作成バケット」→「概要」→「アップロード」からサンプルファイルをアップロードします。

 

⑥ 「プロパティ」→「バージョンニング」を選択し、「バージョニングの有効化」にチェックを入れ「保存」します。

 

レプリケーション先にS3バケットを作成

① 「S3」→「バケット」→「バケットの作成」をクリックします。バケット名を入力し、通常利用とは違うリージョンを選択します。(下記例はシンガポール リージョンを選択しています)

 

② 右下「バケットを作成」をクリックして、バケットを作成します。

 

③ 「プロパティ」→「バージョンニング」を選択し、「バージョニングの有効化」にチェックを入れ「保存」します。

 

レプリケーションの設定

① 「S3」→「バケット」→「レプリケーション元バケット」→「管理」→「レプリケーション」→「今すぐ始める」をクリックします。

 

② 「ソースの設定」「レプリケーション条件」の設定をして「次へ」をクリックします。

ソースの設定 すべてのコンテンツ
・全てのデータをレプリケーションしますプレフィックスまたはタグ
・プレフィックスまたはタグを入力し、
対象のデータのみレプリケーションします
レプリケーション条件 AWS KMSを利用している場合は、KMSの暗号を利用することが可能です

 

③ 送信先バケットは「レプリケーション先」のバケットを選択します。例では作成したS3バケット(シンガポールリージョン)を選択します。

 

④ レプリケーション先のストレージクラスを選択します。例ではバックアップとしてレプリケーションするため、料金の安い「Amazon Glacier」を選択しています。

 

⑤ オブジェクトの所有者を設定する場合は、対象ユーザーのアカウントIDを入力します。

 

⑥ レプリケーション時間のコントロール設定では、レプリケーション時間を早めたい場合に設定します。別途料金が発生するので注意です。選択後「次へ」をクリックします。

 

⑦ IAMロールを指定します。例ではレプリケーション用に新しいIAMロールを設定しております。指定後「次へ」をクリックします。

 

⑧ 確認画面が表示されるので、問題が無ければ「保存する」をクリックします。

 

レプリケーションの確認(手動)

レプリケーション元のバケットに既存にデータがあった場合、手動でレプリケーションする必要があります。

① AWS CLI上でS3のバケットの確認をします。

aws s3 ls

※ AWS CLIが未設定の場合、以下の記事を参照し設定してください。
AWS CLIの使用方法

 

② レプリケーションのコマンドを利用して手動実行します。

aws s3 cp --recursive s3://(レプリケーション元S3バケット名) s3://(レプリケーション先S3バケット名)

 

③ 正常完了すると以下の結果が表示されます。

(例)copy: s3://replication-tokyo-20200720/sample.jpg to s3://replication-singapore-20200720/sample.jpg

 

④ 対象のS3バケットの「概要」から、レプリケーションされたか確認をします。

 

レプリケーションの確認(自動)

① 別のサンプルファイルを「レプリケーション元のS3バケット」にアップロードします。

 

② 「レプリケーション先のS3バケット」にコピーされたか確認をします。