目的
開発者としては必須知識となりつつあるコンテナ技術についての学習メモとなります。
今回はAWSのECSについて学んでいきます。
コンテナの活用目的
インフラストラクチャの効率的な構築運用を実現し、
プロダクト開発シーンを取り巻く多様な開発環境の変化に対応する。
活用するメリット
- インフラ管理における無駄な作業を削減
→ アプリケーション開発にリソースを集中できる - インフラ環境のカスタマイズが容易である
→ ユーザーの要件に応じて多様な開発環境を実現できる - 高速なスケーリングが可能となり、パフォーマンスの調整が可能
→ サービス需要に応え、機会損失を防ぐ - フルマネージドでパッケージの脆弱性スキャンが可能となる
→ ユーザーの安心や情報資産を守り、被害を未然に防ぐ
※ AWS ECSではDockerをサポートしているため、Dockerコンテナの実行、及び管理が可能
なぜESCを使うのか?
-
通常コンテナを動かす際はVM上で"docker run"コマンドを実行する
→ VMを複数管理している場合は都度コマンドを実行する必要がある為、大変手間であるとともに、障害やバージョンアップの対応が煩雑。 -
ECSはクラスターという単位でインスタンスの集まりを管理する事が可能。
この際にクラスター管理を行う事から (コンテナ)オーケストレーター と呼ぶ。
コンテナを大規模に実行する事が可能な フルマネージド なコントロールプレーン
コンテナオーケストレーター
どのコンテナをどう動かすか命令を出すサービス
- また AWS Fargate という実行環境を利用するにより、コンテナをサーバーレスで動作させる事ができ、EC2上での動作に比べてより多くの管理業務をフルマネージドで実行する事が可能となる。
Layer Name | ECS on EC2 | ECS on Fargate |
---|---|---|
アプリケーションコンテナ | User | User |
ホストのスケーリング | User | AWS |
コンテナエージェント設定 | User | AWS |
ホストOS / ライブラリ設定 | User | AWS |
ハンズオン
~編集中~