助け合いフォーラム

AWS

AWS ソリューションアーキテクト - アソシエイト(SAA-C02)
問題ID : 24708
問題を開く
Amazon ECSで利用できるコンテナ起動タイプのうち「AWS Fargate」の説明で正しいものはどれか

正解

タスクが実行されていない時は料金が発生しない

解説

ECSで実行・管理するコンテナは、コンテナを実行する環境によって主に「AWS Fargate」と「EC2起動タイプ」があります。

○AWS Fargate(Fargate起動タイプ)
AWS Fargateはコンテナ向けのサーバーレスコンピューティングエンジンです。コンテナ実行環境のCPUやメモリのスペック、アクセス権限(IAM)などを設定するだけで、サーバーの環境構築や管理をすることなくコンテナを実行できます。
Fargateの利用料金は、タスクで指定したCPU/メモリに応じて課金されます。実行したタスクのリソース使用量に対して料金が発生するので、不定期にタスクが実行されるシステムや、常にタスクが実行可能な状態でなければならないシステムなどに向いています。

○EC2起動タイプ
EC2起動タイプはユーザーが管理するEC2インスタンス上でコンテナを実行します。コンテナを実行するEC2インスタンス、ネットワーク、IAMなどを設定すると、ECSがAWS CloudFormationのスタックを作成および実行して、構築したコンテナ実行環境をECSに登録します。EC2起動タイプでは通常のインスタンスと同様に、OSやミドルウェアのアップデート、スケーリングなどのサーバー管理をユーザーで実施する必要があります。
EC2起動タイプの利用料金は、指定したEC2インスタンスタイプに応じて課金されます。インスタンスの起動時間に対して料金が発生するので、インスタンス起動中に多数のタスクが実行されるシステムなどに向いています。

各選択肢を確認していきます。

・コンテナ実行環境のCPUやメモリは自動的に選択される
コンテナ実行環境のCPUやメモリはユーザーが選択します。誤った選択肢です。

・タスクが実行されていない時は料金が発生しない
Fargateの利用料金は、タスクで指定したCPU/メモリに応じて課金されます。実行したタスクのリソース使用量に対して料金が発生するので、タスクが実行されていない時は料金が発生しません。本選択肢が正解です。

・インスタンスタイプと起動時間に応じて料金が発生する
上記の通り、Fargateは実行したタスクのリソース使用量に対して料金が発生します。
インスタンスタイプと起動時間に応じて料金が発生するのは「EC2起動タイプ」です。誤った選択肢です。

・ユーザーがコンテナ実行環境のOSやミドルウェアを管理する
Fargateはサーバーの環境構築や管理をすることなくコンテナを実行できます。
ユーザーがコンテナ実行環境のOSやミドルウェアを管理するのは「EC2起動タイプ」です。誤った選択肢です。

参考

【Amazon ECS(Elastic Container Service)】
Amazon ECS(Elastic Container Service)はコンテナを実行、管理するサービスです。「コンテナ」とはアプリケーションと実行環境をパッケージ化する仮想化技術の一種のことです。
コンテナによる仮想化を用いてアプリケーションを開発・実行するためのソフトウェアに「Docker」があります。Amazon ECSでは、Docker環境で動作するDockerコンテナをサポートしています。
なお、ECSのようなコンテナを管理する仕組みを「コンテナオーケストレーション」といいます。

[コンテナ実行環境]


[ECSでコンテナを管理する]


【コンテナイメージ】
アプリケーションとその実行環境を、コンテナのひな形としてパッケージ化したものを「コンテナイメージ」といいます。コンテナを動作させるソフトウェアである「コンテナエンジン」が、コンテナイメージから「コンテナ」を起動します。コンテナイメージは異なる環境にそのまま持ち込むことができるので、例えばテスト環境から作成したコンテナイメージを本番環境にコピーしてコンテナを起動すれば、同一の環境を構築できます。

【ECSの主要要素】
ECSの主要要素に「クラスター」「タスク」「サービス」があります。

○クラスター
1つ以上のタスクまたはサービスで構成される論理グループです。クラスターでは、コンテナが動作するVPCやサブネットなどを設定します。

○タスク
ECSで管理するコンテナの実行単位です。タスク内のコンテナは、実行するコンテナイメージ、CPUやメモリのスペック、タスクロールなどを定義した「タスク定義」に基づいて起動されます。なお、タスクロールとはコンテナが他のAWSサービスを利用する際に設定するアクセス権限(IAMロール)のことです。

○サービス
クラスター内で必要なタスク数を維持する機能です。あるタスクが異常終了して必要なタスク数を下回った場合、サービスが新しいタスクを起動して自動復旧します。サービスでは、起動するタスクのタスク定義、必要なタスク数、ELBとの連携などを設定します。

[ECSにおける「クラスター」「タスク」「サービス」の関連図]


【ECSの起動タイプ】
ECSで実行・管理するコンテナは、コンテナを実行する環境によって主に「AWS Fargate」と「EC2起動タイプ」があります。

○AWS Fargate(Fargate起動タイプ)
AWS Fargateはコンテナ向けのサーバーレスコンピューティングエンジンです。コンテナ実行環境のCPUやメモリのスペック、アクセス権限(IAM)などを設定するだけで、サーバーの環境構築や管理をすることなくコンテナを実行できます。
Fargateの利用料金は、タスクで指定したCPU/メモリに応じて課金されます。実行したタスクのリソース使用量に対して料金が発生するので、不定期にタスクが実行されるシステムや、常にタスクが実行可能な状態でなければならないシステムなどに向いています。

○EC2起動タイプ
EC2起動タイプはユーザーが管理するEC2インスタンス上でコンテナを実行します。コンテナを実行するEC2インスタンス、ネットワーク、IAMなどを設定すると、ECSがAWS CloudFormationのスタックを作成および実行して、構築したコンテナ実行環境をECSに登録します。EC2起動タイプでは通常のインスタンスと同様に、OSやミドルウェアのアップデート、スケーリングなどのサーバー管理をユーザーで実施する必要があります。
EC2起動タイプの利用料金は、指定したEC2インスタンスタイプに応じて課金されます。インスタンスの起動時間に対して料金が発生するので、インスタンス起動中に多数のタスクが実行されるシステムなどに向いています。

【Amazon ECR(Elastic Container Registry)】
Amazon ECR(Elastic Container Registry)はコンテナイメージを登録・管理するサービスです。ECRに登録されたコンテナイメージをECSが参照し、コンテナ(タスク)を起動できます。ECRのようにコンテナイメージを登録・管理する仕組みを「コンテナレジストリ」といいます。


【マイクロサービス】
マイクロサービスとは最小限の機能を持つ独立したサービスのことです。例えば、オンラインショッピングサービスの機能を「商品管理機能」「ユーザー管理機能」「ショッピングカート機能」「決済機能」に分け、それぞれが自律して動作するのがマイクロサービスです。
マイクロサービスの主なメリットは、ある機能に障害が発生したりアップデートした場合に他の機能への影響を最小限にできること、機能を別のサービスに流用することが容易になるので開発コストの削減に繋がることなどが挙げられます。
コンテナはマイクロサービスの実現に適しています。ひとつのサービスをひとつのコンテナで実行することで効率的にマイクロサービスを構築できます。
なおマイクロサービスとは反対に、大きな機能を一つに総括したシステムをモノリシックなシステムといいます。

上に戻る

[ECS] 軽微な誤りの報告

公開日 2022/08/26

正解の選択肢「タスクが実行していない時は料金が発生しない」についてですが、
「タスクを実行していない時は〜」または「タスクが実行されていない時は〜」が一般的と思われます。


t tnishita2

2022/08/26 21:38

もしくは「タスクが動作していない時は〜」。

スタッフからの返信

s staff_satomi

2022/08/29 10:16

tnishita2様 ご指摘の点を修正いたしました。 ご報告下さり、誠にありがとうございます。

この投稿に対して返信しませんか?