【レポート】NEW LAUNCH! AWS Fargateの紹介 #reinvent #CON214
CON214: Introduction to AWS Fargate
re:Invent 2017にて、セッション「CON214: Introduction to AWS Fargate」を聴講してきましたので、レポートします。
スピーカーは次のお二人です。
- Anthony Suarez - GM, Amazon ECS & ECR
- Deepak Dayama - Senior Project Manager, 912
また、今回の発表より、ECSやECRのアイコンが変わっています。かわいいですね。
Building an Echosystem
- パッケージング
- ディストリビューション
- イミュータブルインフラストラクチャ
カスタマーはコンテナをスケールさせる
- 450+%の成長
- コンテナの起動数は、毎週で数億
- インスタンスの起動数は、毎週で100万
AWSにおけるプロダクションワークロード
- VPCのネットワーキングモード
- タスクプレースメント
- AWSとのより深い連携
- ECS CLI(1.1.0から対応)
- グローバルフットプリント
- 強力なスケジューリングエンジン
- オートスケーリング
- CloudWatch metrics
みなさんがECSを成長させてきた
- ユーザーがECSを使うことでフィードバック、ユースケースを学び、機能を追加してきた
- でも、開発者はアプリケーション開発にフォーカスしたい
Fargate
Fargate!
コンピュータの消費モデルを変える
- インスタンスの管理不要
- タスクベースのAPI
- リソースベースのフライング
= 結果として「シンプル」「簡単」「パワフル」
Fargateを用いたワークロード
- VPCのネットワーキングモード
- タスクプレースメント
- AWSとのより深い連携
- ECS CLI(1.1.0から対応)
- グローバルフットプリント
- 強力なスケジューリングエンジン
- オートスケーリング
- CloudWatch metrics
- ロードバランサ
EKSを2018年にサポート
バックエンドがEKSでFargateが立ち上げられるようになる。
Under the Hood
- ユースケースは
- マイクロサービス
- バッチジョブ
- クラウドへのマイグレーション
どうやってコンテナを動かすのか?
従来は
- コンテナを立てたいだけではあるが、従来ではEC2インスタンスを管理(意識)する必要があった
- ECSはAZへの配置などのオーケストレーションを担っている
- 各EC2インスタンスがECS Optimized AMIを使い、Dockerエンジンを所持し、ECS Agentを所有していた
Fargateでは
- それらの管理が不要に
ECSとの互換性が協力
- Task Definitionを作るときに、FargateかECSか選べる
- 同じTask Definitionで立ち上げることができる
Demo
ECS CLIを用いたFargateのコンテナを起動するデモを披露。
ECS CLIは以下からダウンロード可能。
Networking
- タスクに対してENIをアタッチできる
- インターネット接続が必要なタスクだけ付け、不要なタスクは付けない
Load Balancing
- ALBとNLBが連係可能
クラスタレベルの分離
- クラスタによって何の機能を必要としてるか変わる
- クラスタ毎にカスタマイズできる
パーミッションの層
- クラスタパーミッション
- クラスタ内のタスクの閲覧と起動
- アプリケーション(タスク)パーミッション
- アプリケーション内でAWSのアプリ
- ハウスキーピングパーミッション
- ECRイメージのプル、CloudWatch Logsへのプッシュなど
レジストリのサポート
- ECR
- パブリックリポジトリ
- カスタムリポジトリ(近日公開)
可視化とモニタリング
- CloudWatch LogsとCloudWatch Eventsのサポート
- サービスレベルのメトリクス
ストレージ
- エフェメラルストレージ backed by EBS
- コンテナストレージ領域は10GB
- タスク間の共有ボリューム領域は4GB
設定と料金
- タスクレベルのCPUとメモリの指定
- 秒単位の課金
- タスクレベルのリソースで独立して構成可能
構成管理
- CloudFormationも利用可能
- あるサービスはFargate、あるサービスはECSなどといった使い分けも可能
感想
ECSの一つの選択肢として増えたFargate。Fargateで動かす場合、ECSで動かす場合、EKSで動かす場合と、それぞれのメリット・デメリットを理解しながら最適な構築方法を選定しなければいけないと感じました。いずれにせよアプリケーションレイヤーはDocker Imageでしかないという点が素晴らしいと思います!何はともあれDockernizeは推し進めていきたいと思います!