AWS Fargate よくある質問

全般

AWS Fargate は、Amazon Elastic Container Service (ECS) と Amazon Elastic Kubernetes Service (EKS) の両方で動作する、コンテナのためのサーバーレスコンピューティングエンジンです。AWS Fargate では、サーバーのプロビジョニングと管理が不要になるため、アプリケーションの構築に集中しやすくなります。また、アプリケーションごとにリソースを指定してその分のみ料金を支払うことができ、設計によるアプリケーションの分離によりセキュリティが強化します。

AWS Fargate は、サーバーレスで従量制料金のコンピューティングエンジンであり、サーバーを管理することなくアプリケーションの構築に集中することができます。AWS Fargate は Amazon ECS と Amazon EKS の両方と互換性があります。AWS Fargate では、基盤となるインフラストラクチャリソースの管理を可能な限り AWS に移行することで、クラウドアプリケーションのスケールと管理が容易になり、開発チームはビジネス上の問題を解決するコードの作成に集中できます。サーバー管理、リソース割り当て、スケーリングなどのタスクを AWS に移行すると、運用態勢が改善されるだけでなく、アイデアからクラウドでの運用までのプロセスが加速され、総保有コスト (TCO) が削減されます。複数の CPU アーキテクチャとオペレーティングシステムがサポートされているため、さまざまなアプリケーションでコスト、俊敏性、スケールにおけるサーバーレスのメリットを享受できます。

Amazon ECS は非常にスケーラブルで高性能なコンテナ管理サービスであり、Amazon EKS はフルマネージド型の Kubernetes サービスです。どちらのサービスも、コンテナを AWS Fargate にスケジューリングでき、マネージドスケジューリングによってコンテナの可用性を自動的にスケール、負荷分散、最適化することで、コンテナ化されたアプリケーションの構築と運用を簡素化します。

AWS Fargate では、各ワークロードは専用のシングルユース、シングルテナントのコンピュートインスタンス上で実行されます。各ワークロードは仮想化の境界によって分離され、各 Amazon ECS タスクまたは Kubernetes ポッドは新しくプロビジョニングされたインスタンス上で実行されます。 AWS Fargate アーキテクチャの詳細については、AWS Fargate セキュリティホワイトペーパーを参照してください。

分離モデルとセキュリティのため AWS Fargate を選択します。また、Amazon Elastic Compute Cloud (EC2) インスタンスのプロビジョンや管理をせずにコンテナを起動したい場合にも Fargate を選択する必要があります。AWS Fargate には、AWS のサービスやサードパーティツールとの統合機能が組み込まれているため、アプリケーションを監視し、メトリクスやログを収集できます。また、AWS Fargate では、お支払いはコンピューティングリソースの使用分のみで、初期費用はかかりません。Amazon EC2 インスタンスをより細かく制御したり、より幅広いカスタマイズオプションが必要な場合は、AWS Fargate を使用せずに Amazon ECS または Amazon EKS を使用してください。現在 AWS Fargate でサポートされていない GPU ワークロードには Amazon EC2 を使用してください。

はい。Amazon ECS を使用する場合、AWS Fargate では、Amazon Elastic Container Registry (Amazon ECR) で Arm 互換のコンテナイメージやマルチアーキテクチャのコンテナイメージを使用して、Arm ベースのアプリケーションを実行することができます。Amazon ECS タスク定義で CPU アーキテクチャを Arm64 と指定するだけで、Arm ベースの AWS Graviton プロセッサを搭載した AWS Fargate をターゲットにすることができます。 現在 AWS Fargate ではサポートされていない Arm ワークロードを Amazon EKS 上で実行するには、Amazon EC2 を使用します。

はい。AWS Fargate は、お客様の Windows コンテナを実行するためのサーバーレスアプローチを提供します。サーバーのプロビジョニングや管理の必要性を排除し、アプリケーションごとにリソースを指定して支払うことができます。AWS Fargate はタスクレベルの独立性を提供し、必要なパッチやアップデートを行うことで、安全なコンピューティング環境を提供します。サポートされている Windows Server のバージョンについては、「Windows プラットフォームバージョン」のドキュメントページを参照してください。

AWS Fargate はサーバーレスのコンピューティングエンジンであるため、お客様は AWS Fargate で実行される基礎的なコンピューティングインスタンスを管理する必要はありません。そのため、AWS Fargate はお客様にかわって Windows OS ライセンスを管理し、そのためのコストは AWS Fargate の料金に組み込まれています。 

AWS Fargate の Service Quotas は、特定のアカウントの特定のリージョンで使用されている vCPU コアの数に基づいています。新しい AWS アカウントは、初期はクォータが低く、時間の経過とともに増加する可能性があります。標準の AWS サービスクォータ増加プロセスを通じて、これらのソフトリミットの引き上げをリクエストできます。大規模 (10,000 コア) を必要とするワークロードの場合、AWS はマルチアカウント戦略を推奨しています。

Compute SLA は、AWS Fargate に毎月最低 99.99% の稼働率を保証しています。AWS は、対象コンテナサービスについて以下の 2 つの SLA コミットメントを行っています。(1) マルチ AZ 配置された対象コンテナサービスを管理するマルチ AZ 対象コンテナサービス SLA、および (2) 対象コンテナサービスタスクとポッドを個別に管理する単一タスク/ポッド SLA。「AWS Fargate と Amazon エラスティックコンテナサービスの SLA」のページを参照してください。

同じリージョン内でタスクを実行している複数のアベイラビリティーゾーンで、毎月の課金期間中の稼働率が 99.99% 未満であれば、Compute SLA 対象の AWS Fargate SLA クレジットの資格があります。SLA の利用規約に関するすべての詳細、およびクレジット請求方法の詳細については、「Compute SLA の詳細ページ」を参照してください。

AWS Fargate の使用

  • Seekable OCI (SOCI) は、AWS Fargate での Amazon ECS タスクの起動時間を短縮するのに役立ちます。SOCI は、AWS によってオープンソース化されたテクノロジーで、これによりコンテナイメージの遅延読み込みを行うことで、コンテナをより高速に起動できます。SOCI の使用を開始する方法については、「ドキュメント」と「ブログ記事」をご覧ください。
  • zstd 圧縮コンテナイメージにより AWS Fargate の起動時間を短縮します。コンテナイメージのレイヤーは、効率化のためにデフォルトで gzip 形式を使用して圧縮されます。ただし、containerd は「zstd」と呼ばれる代替形式をサポートしており、この形式はより迅速に解凍されるため、AWS Fargate を使用する場合のタスク起動時間が短縮されます。 zstd でコンテナイメージを構築する方法の詳細については、こちらの「ブログ記事」を参照してください

アプリケーションの要件を理解し、リクエストのサイズを適切に設定するため、ローカルまたは開発環境でアプリケーションをロードテストすることをお勧めします。 AWS Compute Optimizer を使用すると、ワークロードのサイズが小さすぎたり大きすぎたりした場合に推奨事項を提示できます。

AWS Fargate では、各 ECS タスクまたは Kubernetes ポッドに、仮想プライベートクラウド (VPC) に接続された専用の Elastic Network Interface (ENI) が与えられます。コンテナ化されたワークロードに出入りするすべてのトラフィックは、この ENI を通過します。そのため、VPC セキュリティグループVPC ネットワーク ACL を使用して ENI を保護し、VPC フローログを使用してトラフィックフローを監視できます。

AWS Fargate で実行される各ワークロードには、20 GiB の一時ストレージへのフルアクセスが付与され、ワークロードの実行中の一時ストレージとして使用できます。ワークロードが停止すると、この 20 GiB ボリュームに保存されているデータはすべて消去されます。この一時ストレージボリュームは、Amazon ECS では最大 200 GiB、Amazon EKS では最大 175 GiB まで拡張できます。 Amazon Elastic File System (EFS) を使用すると、AWS Fargate で実行されているワークロードに永続的なストレージを提供できます。

コンテナ内からコンテナを構築する一般的なアプローチでは、AWS Fargate のセキュリティモデルでは利用できない特権モード (Docker の Docker など)、またはプラットフォームバージョン 1.4 では AWS Fargate が containerd を利用しているため使用できない、コンテナへの Docker ソケットのマウントが必要になることがよくあります。あるいは、Kaniko のようなルートレスなイメージビルドプロジェクトを AWS Fargate のセキュリティモデルにデプロイすることもでき、コンテナイメージを構築するための実行可能な選択肢となります。

セキュリティとコンプライアンス

AWS Fargate は PCI DSS、SOC、FIPS 140-2、FedRAMP、HIPAA など、さまざまなコンプライアンスプログラムの基準を満たしています。詳細およびプログラムの全リストについては、「対象の AWS クラウドセキュリティサービス」のドキュメントを参照してください。 

はい。AWS Fargate は HIPAA 対応サービスです。AWS と事業提携契約 (BAA) を締結している場合、AWS Fargate にデプロイされているコンテナを使用して、暗号化された保護医療情報 (PHI) を処理できます。詳細については、「HIPAA コンプライアンス」のページを参照してください。 PHI の処理、保存、転送を予定しているものの、AWS との BAA をまだ締結していない場合、詳細についてお問い合わせください。 

はい。AWS GovCloud (米国) リージョンで AWS Fargate が利用可能です。 AWS GovCloud (米国) リージョンは Amazon の単独クラウドインフラストラクチャおよびサービスで、クラウド上で機密性の高いワークロードを実行する政府機関および請負業者、教育機関、その他の米国内のお客様の特定の規制およびコンプライアンス要件に対応するよう設計されています。AWS Fargate が利用可能な AWS リージョンの一覧については、「リージョン表」または「ドキュメント」をご覧ください。 

統合

AWS Fargate は、ファーストパーティの AWS サービスとサードパーティーの Amozon パートナーネットワーク (APN) ソリューションの両方を含む柔軟な統合モデルを提供しています。一般的な統合メカニズムは、AWS Fargate タスク内でサイドカーコンテナを実行し、プライマリアプリケーションコンテナとやりとりします。たとえば、ランタイムセキュリティエージェントやログルーターは、プライマリアプリケーションとやりとりし、分析レビューのために一元化されたシステムにデータを送信します。

AWS には、Amazon CloudWatch アラーム、Amazon CloudWatch Logs、Amazon CloudWatch Events、AWS CloudTrail ログ、AWS Trusted AdvisorAWS Compute Optimizer など、AWS Fargate リソースのさまざまな側面を監視して対応するためのツールがいくつか用意されています。一般的なアプローチは、CloudWatch Container Insights を利用してログを収集および分析し、運用ダッシュボードを表示することです。アプリケーションロギングには CloudWatch と Splunk 用のログドライバーが組み込まれていますが、Amazon ECS 用の FireLens をタスク定義パラメータで使用して AWS サービスまたは AWS パートナーネットワーク (APN) の宛先にログをルーティングできます。

料金とコストの最適化

AWS Fargate では、コンテナ化されたアプリケーションによってプロビジョニングされた vCPU、メモリ、ストレージリソースに対する料金が発生します。vCPU とメモリリソースは、コンテナイメージを取得した時点から Amazon ECS タスクまたは EKS ポッドが終了するまでを対象として計算され、最も近い秒に切り上げられます。1 分の最低料金が適用されます。デフォルトでは、すべての AWS Fargate タスクとポッドで 20 GB の一時ストレージを利用できます。設定した追加のストレージに対してのみ料金をお支払いいただきます。 AWS Fargate は、Amazon EC2 インスタンスの場合と同様に、スポットおよびコンピューティングの Savings Plan 料金オプションをサポートします。詳細については、「料金ページ」をご覧ください。

  • AWS では、AWS Fargate タスク用のスポットインスタンスを提供しています。これは、オンデマンドインスタンスよりも低価格で利用できるスペアコンピューティングキャパシティを利用します。スポットインスタンスを使用することで、中断対背の高い Amazon ECS タスクを AWS Fargate 料金から最大 70% 割引で実行できます。 
  • AWS は AWS Fargate に Savings Plans を導入しました。これは、1 年間または 3 年間にわたって特定の量 (1 時間あたりの USD で測定) のコンピューティング能力を使用するという契約と引き換えに割引を受けることができる、リザーブドインスタンスと同様の割引モデルです。 
  • AWS が設計した AWS Graviton プロセッサは、Amazon EC2、AWS マネージドコンテナ、およびその他のマネージドサービスで実行するクラウドワークロードに最高の料金パフォーマンスを提供します。AWS Graviton は、同等の x86 ベースのインスタンスよりも最大 40% 優れた料金パフォーマンスを提供します。AWS Graviton プロセッサはエネルギー効率が高く、同等の EC2 インスタンスと比較して、同じパフォーマンスで消費電力を最大 60% 削減します。 
  • AWS Fargate は AWS Compute Optimizer に含まれており、非効率的な設定を簡単に特定して修正します。

AWS Graviton プロセッサはアマゾン ウェブ サービスのコアによりカスタム構築され、クラウドワークロードに最適な料金パフォーマンスを提供します。AWS Graviton プロセッサを搭載した AWS Fargate は、同等の Intel x86 ベースの Fargate と比較して、最大 40% の料金対性能の向上と 20% の低コスト化を実現し、アプリケーションサーバー、ウェブサービス、ハイパフォーマンスコンピューティング、メディア処理などのさまざまなワークロードに対応します。コンテナ化されたワークロードを実行するためのパフォーマンスとコストを最適化しながら、AWS Fargate の同じサーバーレスの利点を得ることができます。