

# Amazon ECS の AWS Fargate 用のアーキテクト
<a name="AWS_Fargate"></a>

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

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

Fargate は、Amazon Linux 2 (プラットフォームバージョン 1.3.0)、Bottlerocket オペレーティングシステム (プラットフォームバージョン 1.4.0)、および Microsoft Windows 2019 Server Full Edition および Core Edition 用のプラットフォームバージョンを提供しています。特に指定がない限り、この情報はすべての Fargate プラットフォームに適用されます。

Fargate で Linux コンテナをサポートするリージョンの情報については、「[AWS Fargate 上の Linux コンテナ](AWS_Fargate-Regions.md#linux-regions)」を参照してください。

Fargate で Windows コンテナをサポートするリージョンの情報については、「[AWS Fargate 上の Windows コンテナ](AWS_Fargate-Regions.md#windows-regions)」を参照してください。

## チュートリアル
<a name="fargate-walkthrough"></a>

コンソールの使用開始方法については、以下を参照してください。
+ [Fargate 用の Amazon ECS Linux タスクを作成する方法について説明します。](getting-started-fargate.md)
+ [Fargate 用の Amazon ECS Windows タスクを作成する方法について説明します。](Windows_fargate-getting_started.md)

AWS CLI の使用開始方法については、以下を参照してください。
+ [AWS CLI を使用して、Fargate 用の Amazon ECS Linux タスクを作成する](ECS_AWSCLI_Fargate.md)
+ [AWS CLI を使用して、Fargate 用の Amazon ECS Windows タスクを作成する](ECS_AWSCLI_Fargate_windows.md)

## キャパシティープロバイダー
<a name="fargate-spot"></a>

以下のキャパシティプロバイダーが利用可能です。
+ Fargate
+ Fargate Spot - 割り込み許容のある Amazon ECS タスクを、AWS Fargate 料金と比較して割引料金で実行します。Fargate Spot は、予備のコンピュートキャパシティーでタスクを実行します。AWS がキャパシティーを戻す必要がある場合、タスクは中断され、2 分間の警告が表示されます。詳細については、「[Fargate 用の Amazon ECS クラスター](fargate-capacity-providers.md)」を参照してください。

## タスク定義
<a name="fargate-task-defintion"></a>

Fargate タスクは、利用可能な Amazon ECS タスク定義パラメータのすべてをサポートするわけではありません。一部のパラメータはサポートされていません。また、Fargate タスクでは動作が異なるパラメータがあります。詳細については、「[タスク CPU とメモリ](fargate-tasks-services.md#fargate-tasks-size)」を参照してください。

## プラットフォームのバージョン
<a name="fargate-platform-versions"></a>

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

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

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

詳細については、「[Amazon ECS 向け Fargate プラットフォームバージョン](platform-fargate.md)」を参照してください。

## サービスの負荷分散
<a name="fargate-tasks-services-load-balancing"></a>

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

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

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

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

## 使用状況メトリクス
<a name="fargate-usage-metrics"></a>

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

AWS Fargate 使用状況メトリクスは、AWS のサービスクォータに対応しています。使用量がサービスクォータに近づいたときに警告するアラームを設定することもできます。AWS Fargate のサービスクォータに関する詳細については、「*Amazon Web Services 全般のリファレンス*」の「[Amazon ECS のエンドポイントとクォータ](https://docs.aws.amazon.com/general/latest/gr/ecs-service.html)」を参照してください。

AWS Fargate 使用状況メトリクスの詳細については、「[AWS Fargate 使用状況メトリクス](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/monitoring-fargate-usage.html)」を参照してください。