Amazon ECSの機能追加まとめ

Pocket

こんにちは!HEROです。

遅ればせながら今回はre:inventで発表された、Amazon ECSのアップデートについてご紹介します。

◯Amazon ECS

Amazon ECS はEC2 Container Serviceの略で非常にスケーラブルかつ高性能なコンテナ管理サービスであり、Docker コンテナをサポートしています。
今までアプリケーションの実行環境毎にサーバを用意するのが普通でしたがDockerを使うと、例えば時間帯ごとに必要なリソースを同じサーバの中で管理をすることでコストを約半分に出来ます。
サーバではなく、サーバの中にコンテナをいくつも用意してそのコンテナをサーバとしてやりくりするイメージですね。

過去記事で概要もご紹介しておりますのでぜひ参考にして下さい。
https://recipe.kc-cloud.jp/archives/7417
https://recipe.kc-cloud.jp/archives/7415

◯Amazon ECSアップデート

さて、本題に入って行きましょう。
2015年のre:inventでも多くのサービスアップデートや新サービスの発表がありました。
Amazon ECSで何がアップデートされたか見ていきます。

機能アップデートとしては以下の3つになります。
• ECS CLIを提供
• Dockerコンテナ設定オプション追加
• AZを意識したスケジューリング

■ECS CLIを提供
これは言わずとしれたECSのためのコマンドラインですね。
クラスタやタスクのプログラムによる作成(ecs-cli up)、更新(ecs-cli scale)、監視(ecs-cli ps)がローカルの開発環境から実行可能になりました。
Amazon ECS CLIを動かすのはオープンソースツール Docker Composeとなります。
Docker Composeには複数のコンテナ―を1つにまとめて展開できる、といった機能なんかもあります。
詳細な利用方法などはAmazon ECS Developer Guideをぜひ参照してみてください。
※ECS CLIにはバグもあるみたいですが、AWSならすぐに解決してくれることでしょう。
【参考URL】
https://docs.docker.com/compose/

■Dockerコンテナ設定オプション追加
Amazon ECSを利用するに辺り、開発のスピードを早めるためのかゆいところに手が届くアップデートがありました!
・Dockerラベル
・ワーキングディレクトリ
・ネットワーク無効化
・特権実行
・読み取り専用のルートファイルシステム
・ログの構成
・追加ホスト(/etc/hostsへのホストの追加)
・Multilevel Security (MLS)システムのセキュリティオプションの追加
・DNSサーバ
・DNS検索ドメイン
・Ulimits
う~ん、多いですね!素晴らしい!

■AZを意識したスケジューリング
この機能はAmazon ECSサービススケジューラといい、タスク定義のスケジューリングを実行する機能です。この機能自体は元々あったのですが、今回でアベラビリティゾーン(AZ)の検知が可能になりました。
ECSで新しいタスクがローンチされたら、AWSのアベラビリティゾーンで冗長されるようになり、単一のAZの障害ですべてのタスクで同時に障害が発生するというようなリスクを低減、アプリケーションレベルでの耐障害性が向上させることができます。
簡単に言うと、EC2の冗長化構成と同様な構成を、コンテナで実現するイメージです。ELBと連携し、アプリケーションを別AZにフェイルオーバーします。

いかがでしたでしょうか?
より強力になったAmazon ECSをぜひお試し下さい!
次回もお楽しみに!