Fargate
1. サービス概要¶
AWS Fargate は、コンテナを実行するためのサーバーレスコンピューティングエンジンである。
ユーザーは、コンテナを実行するための EC2 インスタンスなどのインフラストラクチャを管理することなく、Docker コンテナをデプロイ、実行、スケーリングできる。
Fargate は、コンテナの実行に必要なコンピューティングリソースを自動的にプロビジョニングし、ユーザーはアプリケーション開発とデプロイに集中できる。
これにより、インフラストラクチャの管理コストを削減し、開発者の生産性を向上させることができる。
主なユースケースとして、
- Web アプリケーションのデプロイ
- マイクロサービスアーキテクチャの構築
- API バックエンドの実行
- バッチ処理の実行
- 機械学習ワークロードの実行
などが挙げられる。
AWS Fargate は、これらのユースケースに対応するための様々な機能と、AWS の他のサービスとの統合を提供する。
2. 主な特徴と機能¶
2.1 サーバーレスコンテナ実行¶
Fargate は、サーバーレスでコンテナを実行できるため、EC2 インスタンスなどのインフラストラクチャの管理が不要である。
ユーザーは、コンテナイメージを指定するだけで、コンテナを実行できる。
2.2 コンテナの自動スケーリング¶
アプリケーションの需要に応じて、コンテナの数を自動的にスケーリングできる。
これにより、リソースの利用率を最適化し、コストを削減できる。
2.3 柔軟なリソース設定¶
コンテナに必要な CPU、メモリ、ストレージなどのリソースを柔軟に設定できる。
これにより、アプリケーションの要件に合わせたリソース構成を実現できる。
2.4 Docker イメージのサポート¶
Fargate は、Docker コンテナイメージをサポートしており、Docker CLI や Docker API を使って、コンテナイメージをプッシュ/プルできる。
Amazon ECR などのコンテナレジストリと統合できる。
2.5 ロードバランシング¶
アプリケーションロードバランサー(ALB)やネットワークロードバランサー(NLB)と統合することで、コンテナ化されたアプリケーションのトラフィックを分散し、可用性を高めることができる。
2.6 統合性と拡張性¶
AWS Fargate は、Amazon ECS、Amazon EKS、AWS App Runner などのコンテナオーケストレーションサービスと統合できる。
また、AWS の他のサービス(IAM, VPC, CloudWatch など)とも密接に統合されており、コンテナベースのアプリケーション開発とデプロイメントを効率的に行える。
2.7 セキュリティ¶
Fargate は、コンテナアプリケーションをセキュアに実行するための様々な機能を提供する。
コンテナイメージの脆弱性スキャン、ネットワーク隔離、IAM によるアクセス制御など、セキュリティ対策が組み込まれている。
3. アーキテクチャおよび技術要素¶
- 開発者は、Docker イメージを Amazon ECR などのコンテナレジストリにプッシュ。
- ECS タスク定義または EKS Pod 定義を作成し、実行するコンテナイメージ、リソース、ネットワーク設定などを定義。
- Fargate を使用して、コンテナをデプロイ。
- 必要に応じて、ロードバランサーを設定し、トラフィックを分散。
- Fargate は、コンテナの実行に必要なコンピューティングリソースを自動的にプロビジョニング。
AWS Fargate は、AWS のインフラ上に構築されており、高い可用性とスケーラビリティを提供する。
コンテナの実行に必要なインフラストラクチャは AWS が管理するため、ユーザーはサーバー管理を意識する必要はない。
4. セキュリティと認証・認可¶
AWS Fargate は、コンテナアプリケーションのセキュリティを確保するために、以下の機能を提供する:
- IAM 統合: AWS Identity and Access Management (IAM) を利用して、Fargate タスクへのアクセスを制御する。
- VPC 内での実行: Fargate タスクは Virtual Private Cloud (VPC) 内で実行され、ネットワーク隔離を実現。
- タスクロール: Fargate タスクに IAM ロールを割り当て、AWS リソースへのアクセスを制御。
- データ暗号化: コンテナイメージ、タスクデータなどは暗号化される。
- コンテナイメージの脆弱性スキャン: ECR イメージスキャン機能を利用し、脆弱性を検出。
これらのセキュリティ対策により、コンテナアプリケーションとそのデータを安全に保護する。
5. 料金形態¶
AWS Fargate の料金は主に以下に基づきる:
- 仮想 CPU: タスクで使用される仮想 CPU の量に応じて課金。
- メモリ: タスクで使用されるメモリの量に応じて課金。
- ストレージ: タスクで使用されるストレージの量に応じて課金。
- データ転送: データ転送量に応じて課金。
6. よくあるアーキテクチャ・設計パターン¶
AWS Fargate は、様々なコンテナアプリケーションのデプロイメントに利用できる。
一般的なパターンは以下の通りである:
- Web アプリケーションのデプロイ: Web アプリケーションをコンテナ化し、Fargate でデプロイし、ロードバランサーでトラフィックを分散。
- マイクロサービスアーキテクチャ: マイクロサービスごとにコンテナをデプロイし、Fargate で実行。
- API バックエンド: API バックエンドをコンテナ化し、Fargate でデプロイし、API Gateway と連携。
- バッチ処理の実行: バッチ処理ジョブをコンテナ化し、Fargate で実行。
- 機械学習ワークロードの実行: 機械学習モデルをコンテナ化し、Fargate で実行。
7. 設定・デプロイ手順(ハンズオン例)¶
- AWS マネジメントコンソールから Amazon ECS または Amazon EKS を開き、クラスターを作成。
- ECS タスク定義または EKS Pod 定義を作成し、Fargate 起動タイプを選択。
- 実行するコンテナイメージ、リソース、ネットワーク設定などを定義。
- Fargate を使用して、コンテナをデプロイ。
- 必要に応じて、ロードバランサーを設定し、トラフィックを分散。
- アプリケーションにアクセスし、動作を確認。
8. 試験で問われやすいポイント¶
8.1 サーバーレスコンテナ実行¶
- 特徴: EC2 インスタンスなどのインフラストラクチャの管理が不要。
- メリット: コンテナイメージを指定するだけで、コンテナを実行可能。
- 試験対策: サーバーレスのメリット、管理範囲が問われる。
8.2 コンテナの自動スケーリング¶
- 機能: アプリケーションの需要に応じて、コンテナ数を自動的にスケーリング。
- 目的: リソースの利用率を最適化、コストを削減。
- 試験対策: 自動スケーリングの仕組み、メリットが問われる。
8.3 柔軟なリソース設定¶
- 設定項目: CPU, メモリ, ストレージなどのリソースを柔軟に設定。
- 利点: アプリケーションの要件に合わせたリソース構成。
- 試験対策: リソース設定の方法、柔軟性が問われる。
8.4 Docker イメージのサポート¶
- 連携: Docker CLI、Docker API、Amazon ECR。
- 利用: コンテナイメージをプッシュ、プル。
- 試験対策: Docker イメージの利用方法、ECR との連携が問われる。
8.5 ロードバランシング¶
- 連携サービス: ALB, NLB。
- 目的: アプリケーションのトラフィックを分散、可用性を高める。
- 試験対策: ロードバランサーの設定方法、利用目的が問われる。
8.6 料金体系¶
- 課金対象: 仮想 CPU, メモリ, ストレージの使用量、データ転送量。
- 最適化: リソース使用量の最適化がコスト削減に有効。
- 試験対策: 料金体系、課金対象が問われる。
8.7 類似・関連サービスとの比較¶
- Amazon ECS: コンテナオーケストレーションサービス。Fargate は ECS で利用可能な実行環境。
- Amazon EKS: Kubernetes をベースとしたコンテナオーケストレーションサービス。Fargate は EKS で利用可能な実行環境。
- AWS Lambda: イベント駆動型のサーバーレスコンピューティングサービス。Fargate はコンテナベースのワークロードに特化。
8.8 試験で頻出となる具体的な問われ方と答え¶
- Q: AWS Fargate は何を提供するサービスか?
- A: コンテナを実行するためのサーバーレスコンピューティングエンジンである。
- Q: AWS Fargate でユーザーが管理する必要のあるインフラストラクチャは何か?
- A: ユーザーは、インフラストラクチャの管理を行う必要はない。
- Q: AWS Fargate は、どのようなコンテナイメージをサポートしているか?
- A: Docker コンテナイメージをサポートしている。
- Q: AWS Fargate でロードバランシングを行うには、どのようなサービスと統合するか?
- A: アプリケーションロードバランサー(ALB)やネットワークロードバランサー(NLB)と統合する。
- Q: AWS Fargate の料金はどのように計算されるか?
- A: 仮想 CPU、メモリ、ストレージの使用量、データ転送量に基づいて計算される。