Amazon ECS タスク定義を作成し、Amazon EFS を使用して EC2 インスタンスにファイルシステムをマウントする - AWS 規範ガイダンス

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

Amazon ECS タスク定義を作成し、Amazon EFS を使用して EC2 インスタンスにファイルシステムをマウントする

作成者: Durga Prasad Cheepuri (AWS)

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

テクノロジー: コンテナとマイクロサービス CloudNative、管理とガバナンス、ストレージとバックアップ、ウェブとモバイルアプリ

AWS サービス: Amazon ECS、Amazon EFS

[概要]

このパターンは、Amazon Elastic Container Service (Amazon ECS) タスク定義を作成しますが、このタスク定義により、Amazon Web Services (AWS) クラウド内のAmazon Elastic Compute Cloud (Amazon EC2) インスタンスで実行され、Amazon Elastic File System (Amazon EFS) を使用してファイルシステムをマウントします。Amazon EFS を使用する Amazon ECS タスクは、タスク定義で指定したファイルシステムを自動的にマウントし、これらのファイルシステムを AWS リージョンのすべてのアベイラビリティーゾーンのタスクのコンテナで使用できるようにします。

永続ストレージと共有ストレージの要件を満たすには、Amazon ECS と Amazon EFS を同時に使用できます。たとえば、Amazon EFS を使用してアプリケーションの永続的なユーザーデータやアプリケーションデータを保存し、可用性を高めるために異なるアベイラビリティーゾーンで実行されるアクティブ/スタンバイ ECS コンテナペアを使用できます。Amazon EFS により、ECS コンテナと分散ジョブワークロードからparallel アクセスできる共有データを保存することもできます。

Amazon ECS で Amazon EFS を使用するには、タスク定義に 1 つ以上のボリューム定義を追加できます。ボリューム定義には、Amazon EFS ファイルシステム ID、アクセスポイント ID、AWS Identity and Access Management (IAM) 認証または転送中の Transport Layer Security (TLS) 暗号化の設定が含まれています。タスク定義内のコンテナ定義により、コンテナの実行時にマウントされるタスク定義ボリュームを指定できます。Amazon EFS ファイルシステムを使用するタスクを実行すると、Amazon ECS はファイルシステムがマウントされ、アクセスが必要なコンテナで使用できるようにします。

前提条件と制限

前提条件

制約事項

  • 1.35.0 より前のバージョンの Amazon ECS コンテナエージェントは、EC2 起動タイプを使用するタスク用の Amazon EFS ファイルシステムをサポートしません。

アーキテクチャ

次の図は、Amazon ECS により、タスク定義を作成し、ECS コンテナ内の EC2 インスタンスに Amazon EFS ファイルシステムをマウントするアプリケーションの例を示しています。

AWS クラウド architecture showing ECS task definition, ECS service, and EFS file system interaction.

この図表は、次のワークフローを示しています:

  1. Amazon EFS ファイルシステムを作成します。

  2. コンテナにより、タスク定義を作成します。

  3. Amazon EFS ファイルシステムをマウントするようにコンテナインスタンスを設定します。タスク定義はボリューム マウントを参照するため、コンテナ インスタンスは Amazon EFS ファイル システムを使用できます。ECS タスクは、タスクが作成されたコンテナインスタンスと関係なく、同じ Amazon EFS ファイルシステムにアクセスできます。

  4. タスク定義の 3 つのインスタンスにより、Amazon ECS サービスを作成します。

テクノロジースタック

  • Amazon EC2

  • Amazon ECS

  • Amazon EFS

ツール

  • Amazon EC2」— Amazon Elastic Compute Cloud (Amazon EC2) は、AWS クラウドでスケーラブルなコンピューティング容量を提供します。Amazon EC2 を使用して必要な分だけ仮想サーバーを起動し、スケールアウトまたはスケールインできます。

  • Amazon ECS」— Amazon Elastic Container Service (Amazon ECS) は、クラスターでコンテナの実行、停止、管理に使用される、高度にスケーラブルで高速のコンテナ管理サービスです。AWS Fargate が管理するサーバーレスインフラ上でタスクやサービスを実行できます。または、インフラストラクチャをより詳細に制御するために、管理する EC2 インスタンスのクラスターでタスクとサービスを実行できます。

  • Amazon EFS」— Amazon Elastic File System (Amazon EFS)は、AWS クラウドサービスやオンプレミスのリソースで使用できる、シンプルでスケーラブルな、フルマネージドされた伸縮自在な NFS ファイルシステムを提供します。

  • AWS CLI」— AWS コマンドラインインターフェイス (AWS CLI) はオープンソースのツールで、コマンドラインシェルのコマンドで AWS サービスと対話します。最小限の構成で、コマンドプロンプトからブラウザベースの AWS マネジメントコンソールで提供される機能と同等の機能を実装する AWS CLI コマンドを実行できます。

エピック

タスク説明必要なスキル
AWS マネジメントコンソールを使用して Amazon EFS ファイルシステムを作成します。
  1. Amazon EFS ファイルシステムを作成」し、コンテナを含む VPC を選択します。注:別の VPC をご使用の場合は、「VPC ピアリング接続を設定してください」。

  2. ファイルシステム ID をメモします。

AWS DevOps
タスク説明必要なスキル
Amazon EFS ファイルシステムでタスク定義を作成します。

新しい Amazon ECS コンソール」または「従来の Amazon ECS コンソール」を以下の設定で使用して、タスク定義を作成します。

  • 新しいコンソールを使用する場合は、アプリケーション環境に Amazon EC2 インスタンスを選択します。クラシックコンソールを使用する場合は、起動タイプとして EC2 を選択します。

  • ボリュームを追加します。ボリューム名を入力し、ボリュームタイプに EFS を選択し、先にメモしたファイルシステム ID を選択します。ルートディレクトリには、Amazon ECS コンテナホストでホストする Amazon EFS ファイルシステムパスを選択します。

AWS DevOps
AWS CLI を使用してタスク定義を作成します。
  1. タスク定義用の入力パラメータプレースホルダーを含む JSON テンプレートを作成するには、以下のコマンドを実行してください。

    aws ecs register-task-definition --generate-cli-skeleton
  2. JSON テンプレートでタスク定義を作成します。

    aws ecs register-task-definition --cli-input-json file://<path_to_your_json_file>
  3. task_definition_parameters.json ファイル (添付済み) に基づき、JSON テンプレートに入力パラメータを入力します。: 入力パラメータの詳細については、「タスク定義パラメータ (Amazon ECS ドキュメント)」およびregister-task-definition「(AWS CLI コマンドリファレンス)」を参照してください。

AWS DevOps

関連リソース

添付ファイル

このドキュメントに関連する追加コンテンツにアクセスするには、次のファイルを解凍してください。「attachment.zip