AWS Fargateとは? - Amazon ECS

AWS Fargateとは?

AWS Fargate Fargate はAmazon ECSで使用できるテクノロジーであり、サーバーやAmazon EC2インスタンスの クラスターを管理することなくコンテナを実行できます。Fargate を使用すると、コンテナを実行するために仮想マシンのクラスターをプロビジョニング、設定、スケールする必要はありません。これにより、サーバータイプの選択、クラスターをスケールするタイミングの決定、クラスターのパッキングの最適化を行う必要がなくなります。

Fargate 起動タイプまたは Fargate 容量プロバイダーを使用して Amazon ECS タスクやサービスを実行する場合、アプリケーションをコンテナにパッケージ化し、オペレーションシステム、CPU とメモリ要件を指定し、ネットワークと IAM ポリシーを定義して、アプリケーションを起動します。各 Fargate タスクは、独自の分離境界を持ち、基本となるカーネル、CPU リソース、メモリリソース、Elastic Network Interface を別のタスクと共有しません。

Fargate アーキテクチャの詳細については、「Amazon Elastic Container Service デベロッパーガイド」の「Fargate 起動タイプを使用する場合」を参照してください。

このトピックでは、Fargate タスクおよびサービスのさまざまなコンポーネントを説明し、Amazon ECSでFargateを使用する際の特別な考慮事項について説明します。

コンポーネント

クラスター

Amazon ECSクラスターは、タスクまたはサービスの論理グループです。クラスターを使用して、アプリケーションを分離できます。タスクが Fargate で実行されると、クラスターリソースは Fargate によって管理されます。

タスク定義

タスク定義は、アプリケーションを形成する 1 つ以上のコンテナを記述するテキストファイルです。JSON 形式にあります。最大 10 個のコンテナを記述するために使用できます。タスク定義はアプリケーションのブループリントとして機能します。それは、アプリケーションのさまざまなパラメータを指定します。たとえば、オペレーティングシステムのパラメータ、使用するコンテナ、アプリケーションで開くポート、タスクのコンテナで使用するデータボリュームなどの指定に使用できます。タスク定義で使用できる特定のパラメータは、お客様の特定のアプリケーションのニーズによって異なります。

アプリケーションスタック全体は 1 つのタスク定義にある必要はありません。むしろ、複数のタスク定義間にまたがってアプリケーションを展開することをお勧めします。関連するコンテナを独自のタスク定義に結合し、それぞれが単一のコンポーネントを表すことにより、これを行えます。

[Tasks] (タスク)

タスクはクラスター内のタスク定義のインスタンス化です。Amazon ECS でアプリケーションのタスク定義を作成後、クラスターで実行するタスクの数を指定できます。スタンドアロンタスクを実行することもできますし、サービスの一部としてタスクを実行することもできます。

サービス

Amazon ECS サービスを使用すると、Amazon ECS クラスターで必要な数のタスクを同時に実行して維持できます。仕組みとしては、タスクがいずれかの理由で失敗または停止した場合に、Amazon ECS サービススケジューラがタスク定義に基づいて別のインスタンスを起動することによって動作します。これは、それを置き換え、サービス内の必要な数のタスクを維持するために行われます。

オペレーティングシステムと CPU アーキテクチャ

以下のオペレーティングシステムがサポートされています。

  • Amazon Linux 2

  • Windows Server 2019 Full

  • Windows Server 2019 Core

Fargate で Windows コンテナを使用する場合は、AWS Fargate の Windows コンテナに関する考慮事項 を確認してください。

Amazon ECS タスク定義には、ARM と X86_64 の 2 つのアーキテクチャを使用できます。

Fargate で Windows コンテナを実行する場合、X86_64 CPU アーキテクチャを備えている必要があります。

Fargate で Linux コンテナを実行する場合、ARM ベースのアプリケーションに X86_64 CPU アーキテクチャ、または ARM64 アーキテクチャを使用できます。詳細については、「Amazon ECSの 64-bit ARM ワークロードの操作」を参照してください。

リージョン

Fargate で Linux コンテナをサポートするリージョンの情報については、「AWS Fargate の Linux コンテナをサポートしているリージョン」を参照してください。

Fargate で Windows コンテナをサポートするリージョンの情報については、「AWS Fargate の Windows コンテナをサポートしているリージョン」を参照してください。

AWS Fargate の Windows コンテナに関する考慮事項

AWS Fargate の Windows コンテナは以下のオペレーティングシステムをサポートしています。

  • Windows Server 2019 Full

  • Windows Server 2019 Core

AWS が、オペレーティングシステムのライセンス管理を行うため、追加の Microsoft ライセンスは必要ありません。

AWS Fargate の Windows コンテナは、awslogs ドライバをサポートしています。詳細については、「awslogs ログドライバーを使用する」を参照してください。

タスクは Linux コンテナまたは Windows コンテナのいずれかを実行できます。両方のコンテナタイプを実行する必要がある場合は、個別のタスクを作成する必要があります。

Fargate の Windows コンテナでは、以下の機能はサポートされていません。

  • グループ管理サービスアカウント (gMSA)

  • Amazon FSx

  • ENI トランキング

  • タスク用 App Mesh サービスとプロキシの統合

  • タスク用 Firelens ログルーターの統合

  • 設定可能なエフェメラルストレージ

  • EFS ボリューム

  • Fargate Spot キャパシティープロバイダー

  • イメージボリューム

    Dockerfile volume オプションは無視されます。代わりに、タスクの定義でバインドマウントを使用します。詳細については、「バインドマウント」を参照してください。

開始チュートリアル

以下のチュートリアルは、Fargate で Amazon ECS の使用開始に役立ちます。

Amazon Elastic Container Service の詳細については、Amazon ECS とは?を参照してください。

料金

AWS FargateのAmazon ECSでは、タスクで使用する vCPU とメモリリソースに対して料金が発生します。詳細については、Fargateの料金を参照してください。

Fargate はSavings Plans も提供しており、AWS使用量を大幅に節約できます。詳細については、 Savings Plans ユーザーガイドを参照してください

請求を表示するには、AWS Billing and Cost Management コンソール請求およびコスト管理ダッシュボードに移動します。請求書には、料金の明細が記載された使用状況レポートへのリンクが記載されています。AWS アカウント請求の詳細については、AWS Account Billingを参照してください。

AWSの請求、アカウント、イベントについてのご質問は、こちらにお問い合わせくださいAWS Support。      

AWS環境のコスト、セキュリティ、およびパフォーマンスの最適化に役立つサービスである Trusted Advisor の概要については、こちらを参照してくださいAWS Trusted Advisor