コラム
はじめに
こんにちは。BTCクラウドCoEの松波です。今回はECSの起動タイプについて、前回より少し深堀りしてみます。
ECS起動タイプ
前回の記事でも記載しましたが、ECSの起動タイプには大きく分けて以下の2つがあります。
・EC2
・Fargate
実際には、下図のとおりEC2起動タイプがさらにLinuxとWindowsで分かれています。Fargateについては特に記載がありませんが、Linuxのみです。
ECS起動タイプの使い分け
起動タイプが複数あるということはそれらを使い分けることがユーザーには求められます。以下に各起動タイプの特長を簡単に記します。
(1)Fargate
Linux上で稼働するプログラムを使う場合に利用します。
サーバーレスなので、OSやミドルウェアへのパッチ適用タスクから解放されるのが利点となる一方、仮想マシンへのSSHログインができません。
環境初期構築時やインフラ観点でのデバッグを行う場合、SSMセッションマネージャを用いてコンテナに対してログインする必要があり、
それを行うためには事前にアクティベーションコードの登録、コンテナへのSSMエージェント導入、Dockerfileの修正などを実施しておく必要があります。そのあたりが若干煩雑な印象です。
性能面での利点として、スケールアウトのチューニングをする際、EC2起動タイプの場合はコンテナ/タスク設定とEC2のAuto Scalingの設定の両方でチューニングが必要ですが
Fargateは前者のみでチューニングできる点が挙げられます。これからECSを使う場合、まず検討するのはこのタイプになるのではないでしょうか。
(2)EC2起動タイプ(Linux)
Fargate同様、Linux上で稼働するプログラムを使う場合に利用します。
Fargateのメリット・デメリットとは対照的になりますが、OSやミドルウェアへのパッチ適用を行う必要が生じる一方、
仮想マシンへのログインは公開鍵を用いたSSHログインが可能です。
ログインすれば、dockerコマンドを用いたコンテナ状態の確認やOSコマンドを用いたサービス再起動が可能であり、トラブルシューティングの観点で対応しやすいのがメリットです。
(3)EC2起動タイプ(Windows)
Windows固有のミドルウェア(IIS)や.NET Frameworkアプリケーションをコンテナで実行したい場合に利用します。
既存のWindows資源を極力修正せずにコンテナで実行するといった要件の際に採用されることが多いと考えられます。
EC2起動タイプとしてのメリット・デメリットは(2)と同様です。
ECSコンテナエージェント/Fargateコンテナエージェントについて
いずれの起動タイプにおいても、コンテナオーケストレーションを実現するためのミドルウェアが必要となります。
それがECSコンテナエージェントです。(なお、Fargateの場合はFargateコンテナエージェントが導入されますが、ユーザーが特に意識する必要が無いので以下の説明では割愛します。)
ECSエージェントのイメージ図を以下に記載します。
Amazon ECS-optimized AMIを用いてECSを構築している場合は、特に設定せずともECSコンテナエージェントがインスタンスに導入されています。
Linuxの場合はecsサービス、dockerサービスがOS上のサービスとして導入され、ECSコンテナエージェントは1コンテナとして動作しています。
それに対し、Windowsの場合はECSコンテナサービスがOS上のサービスとして動作します。
ちなみに、ECSエージェントはソースコードがgithubで公開されています。詳細な仕様を知りたい人は見てみましょう。ソースはGo言語で書かれてます。(そういえばSSMエージェントもGo言語で書かれてました。)
終わりに
今回はECSの起動タイプとECSコンテナエージェントについて簡単にまとめました。
起動タイプに限った話ではありませんが、要件に応じて適切な構成を選んでいきたいものです。
-
PICK UP
ピックアップ
-
ピックアップコンテンツがありません
-
RANKING
人気の記事
-
-
1
EKSを理解する(第3回)Pod単位のセキュリティ…
EKSを理解する(第3回)Pod単位のセキュリティグループ割り当て
2020/11/27
-
2
Infrastructure as Codeを理解…
Infrastructure as Codeを理解する(第2回)AWS Clou…
2020/11/27
-
3
Terraformを使ってみる(AWS)
Terraformを使ってみる(AWS)
2020/12/23
-
4
DevOps、その遙かなる道程(第1回)
DevOps、その遙かなる道程(第1回)
2019/08/01
-
5
IAMを理解する第2回(IAMポリシー編)
IAMを理解する第2回(IAMポリシー編)
2020/06/02
-
-
ARCHIVE
アーカイブ
-
- March 2021 (1)
- February 2021 (1)
- December 2020 (2)
- November 2020 (2)
- September 2020 (1)
- June 2020 (3)
- April 2020 (2)
- January 2020 (2)
- November 2019 (1)
- October 2019 (1)
- September 2019 (1)
- August 2019 (2)



