ENECHANGE Developer Blog

ENECHANGE開発者ブログ

AWS サミットレポート - コンテナ化アプリケーションのAWSでの構築・運用指針 -

AWS Summit Tokyo 2019 レポート

こんにちわ ENECHANGEのMariMurotaniです

「コンテナ化アプリケーションのAWSでの構築・運用指針」

のセッションを受講してまいりました。

こちらのセッションでは、AWSをつかったサーバーレスアーキテクチャについて現在利用可能なサービスと、それぞれのどのような点が優れているかという事について紹介されていました。いくつか面白いトピックがありましたので、かいつまんでご紹介させていただきます。オートスケールのチューニングやサーバーのCPU/メモリスペックの設定など適正値が明確に算出し辛い非機能要件的な部分をAWSのサービスが全てカバーしてくれてなおかつセキュリティ対応もAWS側でやってくれる安心安全なサービスらしいです。

f:id:mari-murotani:20190626134711j:plain:w250

AWS Fargate

https://aws.amazon.com/jp/fargate/

  • サーバーやクラスターの管理なしでコンテナを実行するためのエンジン - コンテナを実行するために仮想マシンのクラスターをプロビジョニング、設定、スケールする必要がない サーバータイプの選択、クラスターをスケールするタイミングの決定、クラスターのパッキングの最適化を行う必要がなくなる スケーリングが自動でシームレスに行われる

AWS ECS

https://aws.amazon.com/jp/ecs/

  • コンテナの設定や管理を自律的に連携させるサービス - 上述のAWS Fargateの機能(1 - 3)を使える Dockerコンテナのサポート スケールに応じたパフォーマンスの維持 Dockerコンテナの数がいくつ増えても同じ時間で起動出来る KubernatesはECSのネイティブではないが EKSでサポートしているので上流の互換性が担保されている EKS(https://aws.amazon.com/jp/eks/) Kubernates系のCLIツールが利用できる

AWS App Mesh

https://aws.amazon.com/jp/app-mesh/ - アプリケーションレベルのネットワーキングを提供して様々なインフラの通信を用意にするサービス -

最近、様々なマイクロサービスを利用するインフラストラクチャとして「サービスメッシュ」という概念が生まれてきた それをサービスとして実現したものがAWS App Meshでネットワークの概念をアプリケーションの手間にもってきてアプリ開発者がネットワークの設定を気にしないで設定出来るようにできる

サービスのディスカバリを行う トラフィック管理、可視性などサービス間のコミュニケーション管理をする事ができる IAMでどのサービス間の許可をするかどうかサービス単位で設定できる お互いどのサービスが通信しているかどういうのを可視化して見えるようにする APIGatewayやLoadBalancingがその中に統合できる

その他、Firecracker(https://aws.amazon.com/jp/blogs/news/firecracker-lightweight-virtualization-for-serverless-computing/)でKVMが再度話題にのぼったりしていましたが、やはりこのセッションで一番面白そうな話題はApp Meshでしょうか・・・・環境ごとの接続設定や概念的なネットワークの構成管理などは未だに人が行っていてコミュニケーション/業務スキルの領域になっているので抽象化が定着してほしいなと思いました。 ネットワーク図を書いたらインフラが勝手にできあがるかインフラからネットワーク図をリバース・エンジニアリングして描画する時代に早くなってほしいです!

また、将来Dockerごとワンクリック/ワンコマンドでdeployする日が近づいているのではないのでしょうか?まだまだ本番運用ではデプロイやオートスケーリングの速度の問題など、懸念事項はありますが、既にDocker化されている開発環境などがある場合は一度試してみるのも価値があると思います。 アプリケーションエンジニアがより物理的なリソース制限に縛られずにアプリ開発ができるようになるというのはまさに夢のような話ですね!

おまけ (会場の様子)

f:id:mari-murotani:20190626134715j:plain f:id:mari-murotani:20190626134719j:plain