Amazon ECS に AWS Fargate - Amazon Elastic Container Service

英語の翻訳が提供されている場合で、内容が矛盾する場合には、英語版がオリジナルとして取り扱われます。翻訳は機械翻訳により提供されています。

Amazon ECS に AWS Fargate

AWS Fargate は、 Amazon ECS 実行するには コンテナ 管理する必要がなく のサーバーまたはクラスタ Amazon EC2 インスタンス。あり AWS Fargate、プロビジョニングする必要がなくなりました。 仮想マシンのクラスタを構成、または拡張してコンテナを実行します。これにより、 サーバの種類の選択、クラスタの拡張時期の決定、クラスタのパッキングの最適化。

タスクとサービスを Fargate 起動タイプ、 アプリケーションをコンテナにパッケージ化し、CPU とメモリの要件を指定し、 ネットワーキングと IAM ポリシーを設定し、アプリケーションを起動します。各 Fargate タスク は独自の分離境界を持ち、基盤となるカーネル、CPUリソース、 メモリーリソース、または別のタスクとの弾力的なネットワークインターフェースです。

このトピックでは、 Fargate 業務とサービス、 および は、 Fargate 付き Amazon ECS.

Amazon ECS に AWS Fargate は、次の地域でサポートされています。サポートされる可用性 ゾーンIDは適宜記載する。

リージョン名 リージョン

米国東部 (オハイオ)

us-east-2

米国東部(バージニア北部)

us-east-1

米国西部 (北カリフォルニア)

us-west-1 (usw1-az1 および usw1-az3 のみ)

米国西部 (オレゴン)

us-west-2

アフリカ (ケープタウン)

af-south-1

アジアパシフィック (香港)

ap-east-1

アジアパシフィック (ムンバイ)

ap-south-1

アジアパシフィック (ソウル)

ap-northeast-2

アジアパシフィック (シンガポール)

ap-southeast-1

アジアパシフィック (シドニー)

ap-southeast-2

アジアパシフィック (東京)

ap-northeast-1 (apne1-az1apne1-az2 および apne1-az4 のみ)

カナダ (中部)

ca-central-1 (cac1-az1 および cac1-az2 のみ)

中国 (北京)

cn-north-1 (cnn1-az1 および cnn1-az2 のみ)

中国 (寧夏)

cn-northwest-1

欧州 (フランクフルト)

eu-central-1

欧州 (アイルランド)

eu-west-1

欧州 (ロンドン)

eu-west-2

欧州 (パリ)

eu-west-3

ヨーロッパ (ミラノ)

eu-south-1

欧州 (ストックホルム)

eu-north-1

南米 (サンパウロ)

sa-east-1

中東 (バーレーン)

me-south-1

AWS GovCloud (米国東部)

us-gov-east-1

AWS GovCloud (US-West)

us-gov-west-1

以下 ウォークスルーは、 AWS Fargate 付き Amazon ECS:

タスク定義

Amazon ECS タスクオンタスクオン Fargate は、 できます。まったくサポートされていないパラメータもあれば、 Fargate タスク。

次のタスク定義パラメータは、では無効です Fargate タスク:

  • disableNetworking

  • dnsSearchDomains

  • dnsServers

  • dockerSecurityOptions

  • extraHosts

  • gpu

  • ipcMode

  • links

  • pidMode

  • placementConstraints

  • privileged

  • systemControls

次のタスク定義パラメータは、 Fargate タスク、ただし 次のような制限があります。

  • linuxParameters – Linux固有のオプションを指定する場合 コンテナに適用されている capabilitiesadd パラメータはサポートされていません。は devices, sharedMemorySize、および tmpfs パラメーターは 対応しています。詳細については、以下を参照してください。 Linuxパラメータ.

  • volumes – Fargate タスクのみサポートバインド ホスト ボリュームをマウントするので、 dockerVolumeConfiguration パラメータは です はサポートされていません。詳細については、以下を参照してください。 ボリューム.

タスク定義が、 Fargate、あなたは では、タスク定義を登録するときに以下を指定できます。

  • の AWS マネジメントコンソール、 適合性が必要 フィールド、 指定 FARGATE.

  • の AWS CLI、 --requires-compatibilities オプション。

  • の Amazon ECS API、 requiresCompatibilities フラグ。

ネットワークモード

Amazon ECS のタスク定義 Fargate ネットワークモードを に設定する必要があります。 awsvpc。 は awsvpc ネットワークモードは各タスクを提供します 独自の柔軟なネットワーク・インターフェイスを備えています。詳細については、以下を参照してください。 とのタスクネットワーキング awsvpc ネットワーク モード.

また、サービスの作成時または手動によるネットワーク構成も必要です。 タスクの実行。詳細については、以下を参照してください。 タスクネットワーキング.

タスクCPUとメモリ

Amazon ECS のタスク定義 Fargate CPU とメモリを タスクレベルです コンテナ レベルで CPU とメモリを指定することもできます。 用 Fargate これはオプションです。ほとんどのユースケースは、 これらのリソースは、タスクレベルでのみ指定します。以下の表は、有効な タスク レベルのCPUとメモリの組み合わせ。

CPU値

メモリ値

256 (0.25 vCPU)

0.5 GB、1 GB、2 GB

512 (0.5 vCPU)

1 GB、2 GB、3 GB、4 GB

1024(1 vCPU)

2 GB、3 GB、4 GB、5 GB、6 GB、7 GB、8 GB

2048 (2 vCPU)

4 GB~16 GB(1 GB刻み)

4096(4 vCPU)

8 GB~30 GB(1 GB刻み)

タスク リソース制限

Amazon ECS のタスク定義 Fargate は、 ulimits パラメータから コンテナに設定するリソース制限を定義します。

Fargate タスクは、 nofile リソース制限パラメータで、 Fargate 上書きされます。は nofile リソース制限は、オープン数に制限を設定します。 コンテナが使用できるファイル。デフォルト nofile ソフトリミットは 1024 ハードリミットは 4096 用 Fargate タスク。これらは タスクでより大きな ファイル数。次に、タスク定義のスニペットを示します。 nofile 制限が2倍になりました:

"ulimits": [ { "name": "nofile", "softLimit": 2048, "hardLimit": 8192 } ]

調整できるその他のリソース制限の詳細については、以下を参照してください。 リソース制限.

Logging

Amazon ECS のタスク定義 Fargate は、 awslogs, splunkfirelens、および fluentd ログ ドライバ ログ構成用。

awslogs ログ ドライバは、 Fargate タスクを ログ情報の送信先 Amazon CloudWatch Logs. タスクのスニペットを次に示します。 awslogsログ ドライバが構成されている定義:

"logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group" : "/ecs/fargate-task-definition", "awslogs-region": "us-east-1", "awslogs-stream-prefix": "ecs" }

の使用法の詳細については、 awslogs ログ ドライバ、タスク内のログドライバ、タスクナイノ コンテナログの送信先の定義 CloudWatch Logs、を参照 awslogs Log Driver の使用.

の詳しい情報は、 firelens ログ ドライバ、タスク内のログドライバ、タスクナイノ 定義、参照 カスタムログルーティング.

の使用法の詳細については、 splunk ログ ドライバ、タスク内のログドライバ、タスクナイノ 定義、参照 例: 。splunk ログ ドライバ.

Amazon ECS タスクの実行 IAM 役割

任意のタスク実行があります IAM 指定できる役割 Fargate 皆さんが Fargate API呼び出しを行うタスク Amazon ECR. API呼び出しは、コンテナイメージのプルだけでなく、 CloudWatch 保存 コンテナアプリケーションログ。詳細については、以下を参照してください。 Amazon ECS タスクの実行 IAM 役割.

タスク定義の例

以下は、 Fargate 起動タイプ:

{ "containerDefinitions": [ { "command": [ "/bin/sh -c \"echo '<html> <head> <title>Amazon ECS Sample App</title> <style>body {margin-top: 40px; background-color: #333;} </style> </head><body> <div style=color:white;text-align:center> <h1>Amazon ECS Sample App</h1> <h2>Congratulations!</h2> <p>Your application is now running on a container in Amazon ECS.</p> </div></body></html>' > /usr/local/apache2/htdocs/index.html && httpd-foreground\"" ], "entryPoint": [ "sh", "-c" ], "essential": true, "image": "httpd:2.4", "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group" : "/ecs/fargate-task-definition", "awslogs-region": "us-east-1", "awslogs-stream-prefix": "ecs" } }, "name": "sample-fargate-app", "portMappings": [ { "containerPort": 80, "hostPort": 80, "protocol": "tcp" } ] } ], "cpu": "256", "executionRoleArn": "arn:aws:iam::012345678910:role/ecsTaskExecutionRole", "family": "fargate-task-definition", "memory": "512", "networkMode": "awsvpc", "requiresCompatibilities": [ "FARGATE" ] }

タスクストレージ

Fargate タスクでは、次のストレージタイプがサポートされています。

  • 永続的ストレージの場合 Amazon EFS ボリューム。詳細については、「Amazon EFS ボリューム」を参照してください。

  • 非永続ストレージの場合エフェメラルストレージ。

Fargate の各 Amazon ECS タスクはプロビジョニング時に次のエフェメラルストレージを受け取ります。

Fargate プラットフォームバージョン 1.4.0 以降を使用したタスク

プラットフォームバージョン 1.4.0 以降を使用する Fargate タスクの Amazon ECS では、各タスクに 20 GB のエフェメラルストレージが割り当てられます。ストレージの容量は調整できません。

2020 年 5 月 28 日以降に開始されるプラットフォームバージョン 1.4.0 以降のタスクでは、エフェメラルストレージは、AWS Fargate 管理の暗号化キーを使用して AES-256 暗号化アルゴリズムで暗号化されます。

Fargate プラットフォームバージョン 1.3.0 以前を使用したタスク

プラットフォームバージョン 1.3.0 以前を使用する Fargate タスクの Amazon ECS の場合、各タスクは次のエフェメラルストレージを受け取ります。

  • 10 GB の Docker Layer ストレージ

  • ボリュームマウント用の追加 4 GB。これはタスク定義内のvolumesmountPoints および volumesFrom パラメータを使用してマウントしコンテナ間で共有できます。

    注記

    host および sourcePath パラメータは、Fargate タスクでサポートされていません。

タスクとサービス

研修終了後、 Amazon ECS のタスク定義 Fargate 準備が整いましたが サービス作成時に行う決定。

タスクネットワーキング

Amazon ECS のタスク Fargate は、 awsvpc ネットワークモード は、各タスクに柔軟なネットワーク インターフェイスを提供します。タスクを実行したり、 このネットワーク モードのサービスでは、 ネットワークインタフェースおよびネットワークインタフェースに適用する1つ以上のセキュリティグループ。

パブリックサブネットを使用している場合は、 ネットワークインタフェース。について Fargate パブリックサブネット内のタスクを コンテナイメージ、パブリック IP アドレスをタスクのエラスティック インターネットへのルートまたは NAT ゲートウェイを使用して、 インターネットへのリクエスト。について Fargate タスクをプライベート サブネットで プライベート サブネットでは、NAT ゲートウェイを 要求をインターネットにルーティングします。詳細については、以下を参照してください。 とのタスクネットワーキング awsvpc ネットワーク モード.

以下は、 Fargate サービス:

"networkConfiguration": { "awsvpcConfiguration": { "assignPublicIp": "ENABLED", "securityGroups": [ "sg-12345678" ], "subnets": [ "subnet-12345678" ] } }

サービス負荷 バランスをとる

あなたの Amazon ECS サービス Fargate をオプションで設定して、 Elastic Load Balancing へ サービス内のタスク全体にトラフィックを均等に分散します。

Amazon ECS サービス Fargate は、 Application Load Balancer および Network Load Balancer ロードバランサーのタイプ。 Application Load Balancerは、HTTP/HTTPS (またはレイヤー 7) トラフィックをルーティングするために使用されます。 Network Load Balancerはルーティングに使用されます TCP または UDP (レイヤー 4) トラフィック。詳細については、以下を参照してください。 ロードバランサーのタイプ.

これらのサービスのターゲットグループを作成する場合は、 ip ターゲットタイプとして instance。 これは、 awsvpc ネットワークモードは、弾力性のあるネットワークに関連付けられています インターフェース、 Amazon EC2 インスタンス。詳細については、以下を参照してください。 サービス・ロード・バランシング.

を使用する Network Load Balancer UDPトラフィックを Amazon ECS に Fargate タスクは プラットフォームバージョン1.4の使用時にサポートされ、以下の 地域:

  • 米国東部(バージニア州北部) - us-east-1

  • 米国西部(オレゴン州) - us-west-2

  • EU(アイルランド) - eu-west-1

  • アジア太平洋(東京) - ap-northeast-1

プライベートレジストリ認証

Amazon ECS のタスク Fargate は、 Docker Hub、基本認証を使用。プライベート レジストリ認証を有効にすると、 タスク定義でプライベートDockerイメージを使用できます。

プライベート レジストリ認証を使用するには、 AWS Secrets Manager 含む プライベートレジストリの資格情報。次に、コンテナ定義内で、 指定 repositoryCredentials 秘密のARNを が作成されました。タスク定義の次のスニペットは、 パラメータ:

"containerDefinitions": [ { "image": "private-repo/private-image", "repositoryCredentials": { "credentialsParameter: "arn:aws:secretsmanager:region:aws_account_id:secret:secret_name" } } ]

詳細については、以下を参照してください。 タスクのプライベート レジストリ認証.

Clusters

クラスタには、 Fargate および EC2 起動タイプ。クラスタを AWS マネジメントコンソール、 Fargate および EC2 タスク数は別々に表示されます。

詳細については、以下を参照してください。 Amazon ECS クラスター、作成のウォークスルーを含む クラスタ、を参照 Amazon ECS クラスター.

ファーゲートスポット

Amazon ECS 容量プロバイダにより、 Fargate およびFargate Spotの容量 皆さんの Amazon ECS タスク。

Fargate Spot を使用すると、中断耐性を実行できます。 Amazon ECS タスクを割引価格で 比較すると Fargate 価格。Fargate Spotは、タスクを予備のコンピューティング容量で実行します。いつ AWS 容量を戻す必要があるため、タスクが2分間の警告で中断されます。詳細については、以下を参照してください。 AWS Fargate キャパシティープロバイダー.

利用指標

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

AWS Fargate 使用メトリックは次に対応: AWS サービス クォータ。構成は 使用率がサービスクォータに近づいたときに警告するアラーム。詳細については、 について Fargate サービス クォータ、参照 AWS Fargate サービス クォータ.

詳細については、以下を参照してください。 AWS Fargate 使用メトリック、参照 Fargate 使用メトリックスAWS Fargate 用 Amazon Elastic Container Service ユーザーガイド.

タスクの廃止

A Fargate タスクは、次の場合に終了するようスケジュールされています: AWS は、 タスクをホストしている基盤となるハードウェアの修復不可能な障害、またはセキュリティの問題 パッチが必要です。ほとんどのセキュリティパッチは、必要なく透過的に処理される またはタスクの再起動が必要になった場合。ただし、特定の問題については、 タスクを再起動する必要があります。

タスクが定年退職日に達すると、タスクは AWS. タスクがサービスの一部である場合、タスクは自動的に停止され、 サービス スケジューラは、新しいサービス スケジューラを開始して交換します。スタンドアロンのタスクを使用している場合は、 すると、タスクの廃止通知を受け取ります。詳細については、以下を参照してください。 タスクの廃止.

貯蓄プラン

貯蓄プランは、 AWS 使用。あなた 1年または3年の期間にわたり、1時間当たり米ドルで一貫した使用量を約束する。 より低価格でご利用になれます。詳細については、 貯蓄プランユーザー ガイド.

の節約計画を作成するには Fargate 使用、使用 計算 Savings Plans タイプ。開始するには、以下を参照してください。 を使ってみる Savings PlansSavings Plans ユーザーガイド.