2022年9月15日に開発・エンジニア向けオンライン勉強会「雲勉」を開催しました。
今回のテーマは「ECS入門 〜CloudFront + ELB + ECS FargateでWebサイトを公開〜」です。
Amazon ECS についての解説とハンズオンをクラウドインテグレーション事業部の松田啓佑が行ないました。今回の雲勉のゴールは、「Amazon ECS と AWS Fargate が何かを理解する」「ECS を利用した基本的なシステム構築手法をイメージできるようになる」ことです。
この記事では発表内容の一部をご紹介します。 詳しく知りたい方やハンズオンを実際にやってみたいという方は記事最後の YouTube にてアーカイブ動画をご覧ください!
Amazon ECS とは
管理するコンテナが複数の場合、オペレーションミスが発生するリスクが生じます。そのリスクを減らし、面倒な管理作業から開放してくれるのが Amazon ECS を始めとするフルマネージドコンテナオーケストレーションサービスです。管理するコンテナの数が増えれば増えるほど必要になります。
ちなみに AWS が提供するフルマネージドコンテナオーケストレーションサービスは ECS と EKS という2つがあります。
AWS Fargate とは
AWS Fargateは、Amazon ECS で利用可能なサーバレスコンテナ実行環境です。AWS Fargate を利用することで、管理者はインスタンスの運用から開放されます。
データプレーンのAmazon EC2 と AWS Fargate を比較すると、AWS Fargate の方が若干コストは高くなります。しかし、ランニングコストは高くても、インスタンスの管理が不要なため運用コストで安くなるので、特別な理由がない限りは Amazon Fargate の利用を検討すべきとのことでした。
Amazon ECS の構成要素
Amazon ECS は「クラスター」「タスク」「タスク定義」「サービス」の4つの要素で構成されています。
クラスター=「ただの箱」とイメージするとわかりやすい
- サービスとタスクを分離するための論理グループ
- 実行環境や IAM権限の境界線
タスク=アプリケーションを実行するコンテナ群
- アプリケーションの実行単位
- 一つ以上のコンテナから構成される
タスク定義=タスクの金型
- タスクを構成するテンプレート
- アプリケーションを構成する1つ以上のコンテナを定義する
- JSON形式で記述される
サービス=タスクの管理人
- 起動タイプを指定(AWS Fargate or Amazon EC2)
- タスク実行数を定義
- タスク数を維持
- ELB(Elastic Load Balancing)と連携
Amazon ECS においてコンテナを実行する
Amazon ECS において、コンテナを実行させるには「タスクから実行」「サービスから実行」の2つの方法があります。
「タスクから実行」ではコンテナが終了するとタスクも終了するため、ロングランニングのアプリケーションやプログラムには「サービスから実行する」が適しているとのことです。
ハンズオン
ハンズオンでは、Amazon ECS、AWS Fargate、ELB、Amazon CloudFront を使用してWebサイトの公開を行ないました。
一緒にやってみたい方はぜひアーカイブ動画をご覧ください!
まとめ
今回、Amazon ECS の入門ということで概要から構成要素などをご紹介しました。 雲勉では初心者向けから上級者向けまで様々なコンテンツを発信していますので、ぜひお気軽にご参加いただけると嬉しいです。 過去のテーマについてはアイレットの YouTube チャンネルにてアーカイブ動画をアップしていますのでぜひご覧ください!
次回の雲勉は9月29日、テーマは「【初心者向け】EKS を触ってみよう ~Kubernetes 知らない人大集合~」です。
ぜひご参加ください!