AWS
docker
ECS

Running Container-Enabled Microservices on AWS を受講しました&感想

AWS公式トレーニングの Running Container-Enabled Microservices on AWS を受けてきましたので、研修内容と感想を書きます。

研修情報

クラスの詳細 | AWS Training & Certification

説明

このコースでは、Amazon Elastic Container Service (Amazon ECS) を使用して、コンテナ対応アプリケーションを管理およびスケールする方法を学習します。コンテナ化されたアプリケーションを大規模に実行するという課題に注目し、Amazon ECS を作成および使用して、マイクロサービスベースのコンテナ化されたアプリケーションを開発およびデプロイする方法に関するガイダンスを提供します。ハンズオン演習では、Amazon ECS を使用して、長時間実行されるサービスの処理、コンテナイメージのビルドおよびデプロイ、サービスの連携、需要を満たすためのキャパシティーのスケーリングを行います。また、非同期アプリケーションプロセス向けのコンテナワーカーを実行する方法についても学習します。

  • レベル
    • 上級コース
  • 形態
    • クラスルームトレーニング、ハンズオンラボ
  • 期間
    • 1 日
  • 料金
    • ¥ 70000.00 (JPY)

感想

AWS-ECS を中心にコンテナ周りのワークロードを通しで学ぶことができたのでとても有意義な学びになりました。そもそも Docker わからないだとついていくのが辛いですが、本番ワークロードでコンテナ運用できていないとか、Docker
は開発で少し使うくらいとか、そのあたりの方々に効く内容でした。
 前半は概要の説明で、マイクロサービスの登場とモノリスとの対比、コンテナと Docker の概要。後半は詳細に踏み込み、パイプラインを使ったCI/CD、ECSの説明と監視とスケーリング、コンテナセキュリティ をがっつり一日で詰め込む内容でした。コンテナ管理は ECS 中心となり、Fargate と EKS は説明だけでした。

 ハンズオンが実践的な内容で、最初はしょぼかったアプリケーションが少しずつ強くなっていく様を体験できました。

  1. dockerコマンドでモノリスなアプリケーションを起動し
  2. アプリケーションをマイクロサービスに分割する(といってもソースは用意されているやつ)
  3. docker-compose コマンドで起動できることを確認したあとに
  4. ECS で各コンテナを起動するように設定
  5. CodeCommit → Jenkins → ECR → ECS と CodePipeline で繋ぎ CICD 環境を作成
  6. ECS クラスタとサービスのスケーリング設定(ここは環境都合でハンズオンできなかったのですが…)
  7. git-seacretの設定、Twistlockを使ったコンテナイメージ脆弱性スキャン、認証情報のIAMロール化

構成情報が CloudFormation のながーい定義に詰まっているので、唸りながら読み込んで頭の中でつないでいく感じで、すごく疲れました。初めて ECS をさわったのですが、短い時間でひととおり把握できたので、とてもいい経験になりました。