を使用して、異なるAWSリージョンの Amazon EFS ファイルシステム間でデータを同期する AWS DataSync - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

を使用して、異なるAWSリージョンの Amazon EFS ファイルシステム間でデータを同期する AWS DataSync

作成者: Sarat Chandra Pothula (AWS) と Aditya Ambati (AWS)

コードリポジトリ: aws-efs-crossregion-datasync

環境:PoC またはパイロット

テクノロジー: インフラストラクチャ、ストレージとバックアップ

AWS サービス: AWS CDK、AWS DataSync、Amazon EFS

[概要]

このソリューションは、さまざまなAWSリージョンの Amazon Elastic File System (Amazon EFS) インスタンス間で効率的かつ安全なデータ同期を行うための堅牢なフレームワークを提供します。このアプローチはスケーラブルであり、制御されたリージョン間のデータレプリケーションを提供します。このソリューションは、ディザスタリカバリとデータ冗長化戦略を強化できます。

AWS Cloud Development Kit (AWS CDK) を使用することで、このパターンは をInfrastructure as Code (IaC ) アプローチとして使用し、ソリューションリソースをデプロイします。AWS CDK アプリケーションは、必須の AWS DataSync、Amazon EFS、Amazon Virtual Private Cloud (Amazon VPC)、および Amazon Elastic Compute Cloud (Amazon EC2) リソースをデプロイします。この IaC は、AWSベストプラクティスと完全に一致した、反復可能でバージョン管理されたデプロイプロセスを提供します。

前提条件と制限

前提条件

制約事項

  • このソリューションは、データ転送レートEFS、サイズ制限、リージョンの可用性など、 DataSync および Amazon の制限を継承します。詳細については、AWS DataSync 「クォータ」と「Amazon EFS クォータ」を参照してください。

  • このソリューションは、Amazon EFSのみをサポートします。 は、Amazon Simple Storage Service (Amazon S3) や Amazon FSx for Lustre などの他の AWS サービス DataSync をサポートしています。ただし、このソリューションでは、データを他のサービスと同期するために変更が必要です。

アーキテクチャ

別のリージョンのEFSファイルシステムにデータをレプリケートするためのアーキテクチャ図

このソリューションは、次のAWSCDKスタックをデプロイします。

  • Amazon VPCスタック – ­ このスタックは、プライマリリージョンとセカンダリAWSリージョンの両方で、サブネット、インターネットゲートウェイ、NATゲートウェイを含む仮想プライベートクラウド (VPC) リソースを設定します。

  • Amazon EFSスタック – このスタックは、Amazon EFS ファイルシステムをプライマリリージョンとセカンダリリージョンにデプロイし、それらをそれぞれの に接続しますVPCs。

  • Amazon EC2スタック – このスタックは、プライマリリージョンとセカンダリリージョンでEC2インスタンスを起動します。これらのインスタンスは Amazon EFS ファイルシステムをマウントするように設定されており、共有ストレージにアクセスできます。

  • DataSync ロケーションスタック – このスタックは、 というカスタムコンストラクトを使用してDataSyncLocationConstruct、プライマリリージョンとセカンダリリージョンに DataSync ロケーションリソースを作成します。これらのリソースは、データ同期用のエンドポイントを定義します。

  • DataSync タスクスタック – このスタックは、 というカスタムコンストラクトを使用して、プライマリリージョンに DataSync タスクDataSyncTaskConstructを作成します。このタスクは、送信 DataSync 元と送信先の場所を使用して、プライマリリージョンとセカンダリリージョン間でデータを同期するように設定されています。

ツール

AWS サービス

  • AWS Cloud Development Kit (AWS CDK) は、コードで AWS Cloud インフラストラクチャを定義およびプロビジョニングするのに役立つソフトウェア開発フレームワークです。

  • AWS DataSync は、AWSストレージサービスとの間でファイルまたはオブジェクトデータを移動するのに役立つオンラインデータ転送および検出サービスです。

  • Amazon Elastic Compute Cloud (Amazon EC2) は、AWSクラウドでスケーラブルなコンピューティング容量を提供します。必要な数の仮想サーバーを起動することができ、迅速にスケールアップまたはスケールダウンができます。

  • Amazon Elastic File System (Amazon EFS) は、AWSクラウドで共有ファイルシステムを作成および設定するのに役立ちます。

  • Amazon Virtual Private Cloud (Amazon VPC) は、定義した仮想ネットワークにAWSリソースを起動するのに役立ちます。この仮想ネットワークは、独自のデータセンターで運用する従来のネットワークに似ており、 のスケーラブルなインフラストラクチャを使用する利点がありますAWS。

コードリポジトリ

このパターンのコードは、 GitHub Amazon EFS Cross-Region DataSync Project リポジトリで使用できます。

ベストプラクティス

AWS CDK 「」で を使用して IaC プロジェクト TypeScript を作成するベストプラクティス「」で説明されているベストプラクティスに従います。

エピック

タスク説明必要なスキル

プロジェクトリポジトリをクローンします。

次のコマンドを入力して、Amazon EFS Cross-Region DataSync Project リポジトリをクローンします。

git clone https://github.com/aws-samples/aws-efs-crossregion-datasync.git
AWS DevOps

npm 依存関係をインストールします。

次のコマンドを入力します。

npm ci
AWS DevOps

プライマリリージョンとセカンダリリージョンを選択します。

クローンされたリポジトリで、 src/infa ディレクトリに移動します。Launcher.ts ファイルで、 PRIMARY_AWS_REGIONSECONDARY_AWS_REGIONの値を更新します。対応するリージョンコード を使用します。

const primaryRegion = { account: account, region: '<PRIMARY_AWS_REGION>' }; const secondaryRegion = { account: account, region: '<SECONDARY_AWS_REGION>' };
AWS DevOps

環境を起動します。

次のコマンドを入力して、使用するAWSアカウントとAWSリージョンをブートストラップします。

cdk bootstrap <aws_account>/<aws_region>

詳細については、 AWSCDKドキュメントの「ブートストラップ」を参照してください。

AWS DevOps

AWS CDK スタックを一覧表示します。

次のコマンドを入力して、アプリ内のAWSCDKスタックのリストを表示します。

cdk ls
AWS DevOps

AWS CDK スタックを合成します。

次のコマンドを入力して、AWSCDKアプリで定義された各スタックのAWS CloudFormation テンプレートを生成します。

cdk synth
AWS DevOps

AWS CDK アプリケーションをデプロイします。

次のコマンドを入力して、すべてのスタックをAWSアカウントにデプロイします。変更に対する手動承認は必要ありません。

cdk deploy --all --require-approval never
AWS DevOps
タスク説明必要なスキル

プライマリリージョンのEC2インスタンスにログインします。

  1. AWS Systems Manager の一機能である Session Manager を使用して、プライマリリージョンのEC2インスタンスにログインします。手順については、AWS「Systems Manager Session Manager を使用して Linux インスタンスに接続する」を参照してください。

  2. ディレクトリを Amazon EFSマウントパスに変更します。

    cd /mnt/efs
AWS DevOps

一時ファイルを作成します。

次のコマンドを入力して、Amazon EFSマウントパスに一時ファイルを作成します。

sudo dd if=/dev/zero \ of=tmptst.dat \ bs=1G \ seek=5 \ count=0 ls -lrt tmptst.dat
AWS DevOps

DataSync タスクを開始します。

次のコマンドを入力して、一時ファイルをプライマリリージョンからセカンダリリージョンにレプリケートします。 <ARN-task>は DataSync タスクの Amazon リソースネーム (ARN) です。

aws datasync start-task-execution \ --task-arn <ARN-task>

コマンドは、タスク実行ARNの を次の形式で返します。

arn:aws:datasync:<region>:<account-ID>:task/task-execution/<exec-ID>

AWS DevOps

データ転送のステータスを確認します。

次のコマンドを入力して DataSync 実行タスクを記述します。ここで、 <ARN-task-execution>はタスク実行ARNの です。

aws datasync describe-task-execution \ --task-execution-arn <ARN-task-execution>

PrepareStatus、、およびVerifyStatusすべての に値 がある場合TransferStatus、 DataSync タスクは完了しますSUCCESS

AWS DevOps

セカンダリリージョンのEC2インスタンスにログインします。

  1. AWS Systems Manager の一機能である Session Manager を使用して、セカンダリリージョンのEC2インスタンスにログインします。手順については、AWS「Systems Manager Session Manager を使用して Linux インスタンスに接続する」を参照してください。

  2. ディレクトリを Amazon EFSマウントパスに変更します。

    cd /mnt/efs
AWS DevOps

レプリケーションを検証します。

次のコマンドを入力して、一時ファイルが Amazon EFS ファイルシステムに存在することを確認します。

ls -lrt tmptst.dat
AWS DevOps

関連リソース

AWS ドキュメント

その他のAWSリソース