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

最終更新日: 2020 年 12 月 23 日

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

解決方法

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

注: AWS CLI コマンドの実行中にエラーが発生した場合は、最新の AWS CLI バージョンを使用していることを確認してください

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

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

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

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

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

5.    [Source] (ソース) で、[Build using a template] (テンプレートを使用して構築) を選択します。次に、[Run AWS CLI command] (AWS CLI コマンドを実行) を選択します。

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] (アクティブ化) を選択します。

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