Amazon ECS の AWS Fargate - Amazon Elastic Container Service

Amazon ECS の AWS Fargate

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

Fargate 起動タイプを使用してタスクやサービスを実行する場合、アプリケーションをコンテナにパッケージ化し、CPU とメモリ要件を指定して、ネットワークとIAM ポリシーを定義して、アプリケーションを起動します。各Fargate タスクは、独自の分離境界を持ち、基盤となるカーネル、CPU リソース、メモリリソース、Elastic Network Interface を別のタスクと共有しません。Fargate のタスク定義を構成するには、requiresCompatibilities タスク定義パラメータを FARGATE に設定します。詳細については、「起動タイプ」を参照してください。

Fargate は、Amazon Linux 2 および Microsoft Windows 2019 Server Full および Core エディション向けのプラットフォームバージョンを提供しています。特に明記されていない限り、このページの情報はすべての Fargate プラットフォームに適用されます。

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

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

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

チュートリアル

コンソールの使用開始方法については、以下を参照してください。

AWS CLI の使用開始方法については、以下を参照してください。

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

以下のキャパシティプロバイダーが利用可能です。

  • Fargate

  • Fargate Spot - 割り込み許容のある Amazon ECS タスクを、AWS Fargate 料金と比較して割引料金で実行します。Fargate Spot は、予備のコンピュートキャパシティーでタスクを実行します。AWS がキャパシティーを戻す必要がある場合、タスクは中断され、2 分間の警告が表示されます。詳細については、「Fargate 起動タイプ用の Amazon ECS クラスター 」を参照してください。

    Fargate Spot は、X86 アーキテクチャを使用する Linux タスクにのみ使用できます。

タスク定義

Fargate 起動タイプを使用するタスクは利用可能な Amazon ECS タスク定義パラメータのすべてをサポートするわけではありません。一部のパラメータはサポートされていません。また、Fargate タスクでは動作が異なるパラメータがあります。詳細については、「タスク CPU とメモリ」を参照してください。

プラットフォームのバージョン

AWS Fargate プラットフォームのバージョンを使って、Fargate タスクインフラストラクチャの特定のランタイム環境を参照できます。これは、カーネルとコンテナのランタイムバージョンの組み合わせです。同一のタスクを多数管理するためのタスク実行時、またはそのためのサービス作成時には、プラットフォームバージョンを選択します。

ランタイム環境の進化に合わせて、新しいプラットフォームバージョンがリリースされます。例えば、カーネルやオペレーティングシステムの更新、新機能の追加、バグ修正、セキュリティの更新があった場合が当てはまります。Fargate プラットフォームのバージョンは、新しいプラットフォームバージョンのリビジョンを行うことで更新されます。各タスクは、そのライフサイクルを通じて、単一のプラットフォームバージョンのリビジョンで実行されます。最新のプラットフォームバージョンのリビジョンを使用する場合は、新たにタスクを開始する必要があります。Fargate で実行される新しいタスクは、常にプラットフォームバージョンの最新リビジョンで実行されます。これにより、タスクは必ず、安全でパッチ適用済みのインフラストラクチャで開始されることが保証されます。

既存のプラットフォームのバージョンに影響を与えるセキュリティ上の問題が見つかった場合、AWS は、そのプラットフォームバージョンのパッチ済みリビジョンを新たに作成します。また、脆弱性のあるリビジョンで実行しているタスクは廃止されます。場合によっては、Fargate で使用しているタスクについて、廃止の予定が通知されることがあります。詳細については、「Amazon ECS での AWS Fargate タスクのメンテナンスに関するよくある質問」を参照してください。

詳細については、「Amazon ECS 向け Fargate Linux プラットフォームのバージョン」および「Amazon ECS 向け Fargate Windows プラットフォームのバージョン」を参照してください。

サービスの負荷分散

AWS Fargate の Amazon ECS サービスは、オプションで Elastic Load Balancing を使用して、サービスのタスク間でトラフィックを均等に分散するように設定できます。

AWS Fargate の Amazon ECS サービスでは、Application Load Balancer と Network Load Balancer のタイプがサポートされています。アプリケーションロードバランサーは、HTTP/HTTPS (またはレイヤー 7) トラフィックをルーティングするために使用されます。ネットワークロードバランサーは、TCP または UDP (またはレイヤー 4)トラフィックをルーティングするために使用されます。詳細については、「ロードバランサーを使用して Amazon ECS サービストラフィックを分散する」を参照してください。

また、このようなサービスのターゲットグループを作成する場合は、ターゲットタイプとして instance ではなく、ip を選択する必要があります。これは、awsvpc ネットワークモードを使用するタスクは、Amazon EC2インスタンスではなく、Elastic Network Interface に関連付けられているためです。詳細については、「ロードバランサーを使用して Amazon ECS サービストラフィックを分散する」を参照してください。

Network Load Balancer を使用して AWS Fargate タスクの Amazon ECS に UDP トラフィックをルーティングするには、プラットフォームバージョン 1.4 移行を使用する場合にのみサポートされます。

使用状況メトリクス

CloudWatch 使用状況メトリクスを使用して、アカウントのリソースの使用状況を把握できます。これらのメトリクスを使用して、CloudWatch グラフやダッシュボードで現在のサービスの使用状況を可視化できます。

AWS Fargate 使用状況メトリクスは、AWS のサービスクォータに対応しています。使用量がサービスクォータに近づいたときに警告するアラームを設定することもできます。AWS Fargate のサービスクォータの詳細については、「AWS Fargate Service Quotas」を参照してください。

AWS Fargate 使用量メトリクスの詳細は、「AWS Fargate用 Amazon Elastic Container Service ユーザーガイド」の「AWS Fargate 使用量メトリクス」を参照してください。