Data Pipeline を使用して 1 回限りのコピーを行ったり、Amazon S3 バケットのスケジュールに従った同期を自動化したりする方法を教えてください。

最終更新日: 2020 年 6 月 18 日

2 つの Amazon Simple Storage Service (Amazon S3) バケット間でデータをワンタイムタスクとして、またはスケジュールに従い同期することで転送したいと考えています。AWS Data Pipeline を使用して、バケット間でコピーまたは同期オペレーションをセットアップする方法を教えてください。

解決方法

注意: Data Pipeline の使用は、S3 バケット間でデータを転送するためのオプションの 1 つです。その他のオプションとして、S3 バッチオペレーションの使用、レプリケーションの有効化、AWS コマンドラインインターフェイス (AWS CLI) での cp コマンドまたは sync コマンドの実行などがあります。

1.    AWS Identity and Access Management (IAM) ユーザーまたはロールに、Data Pipeline を使用するための十分なアクセス許可があることを確認します。

2.    IAM ユーザーまたはロールにより AWS Data Pipeline コンソールにサインインします。コンソールが Data Pipeline をサポートする AWS リージョンに設定されていることを確認します。

重要: レプリケート元バケットとレプリケート先バケットは同じリージョンにある必要はなく、バケットがパイプラインと同じリージョンにある必要はありません。ただし、リージョン間のデータ転送にはコストが発生します。Amazon S3 のデータ転送料金を確認してください。

3.    [Create Pipeline] をクリックします。

4.    [Name] にパイプラインの名前を入力します。

5.    [Source] で、[Build using a template] を選択します。次に、[Run AWS CLI command] を選択します。

6.    [AWS CLI command] で、[copy operation] をセットアップするには、次のコマンドを入力します。

aws s3 cp s3://source-AWSDOC-EXAMPLE-BUCKET1 s3://destination-AWSDOC-EXAMPLE-BUCKET2

注意: copy コマンドは、コピー元バケット内のオブジェクトと同じキー名を持つコピー先バケット内のオブジェクトをすべて上書きします。

sync operation を設定するには、次のコマンドを入力します。

aws s3 sync s3://source-AWSDOC-EXAMPLE-BUCKET1 s3://destination-AWSDOC-EXAMPLE-BUCKET2

注意: sync コマンドはレプリケート元バケットとレプリケート先バケットを比較し、差分のみを転送します。

7.    [Run] では、ワンタイムコピーまたは同期ジョブの [on pipeline activation] を選択します。または、スケジュールされたコピーまたは同期には [on a schedule] を選択し、ユースケースに基づいて [Run every]、[Starting]、および [Ending] フィールドに入力します。

8.    [Logging で、[Enabled] を選択してから、ログの S3 の場所を入力します。または、ログが必要ない場合は、[Disabled] を選択できます。

9.    [IAM ロール] では、[Default role] または [Custom role] を選択できます。デフォルトのロールには、s3:CreateBuckets3:DeleteObjects3:Get*s3:List* および s3:Put* に対する Amazon S3 アクセス許可があります。

注意: バケットが AWS Key Management Service (AWS KMS) によりデフォルトで暗号化されている場合は、AWS KMS キーを使用するためのアクセス許可を Data Pipeline ロールに付与する必要があります。

10.    [Activate] を選択します。

注意: オプションで、バケットのルートレベルのプレフィックスごとに複数のパイプラインを作成することで、パフォーマンスを最適化できます。