アキタイムズ

イベント参加レポと小ネタを中心に投稿しています。

JAWS-UG名古屋のECS Copilotハンズオンに参加しました

JAWS-UG名古屋 ECSハンズオン会

ここ数ヵ月は毎月参加しているJAWS-UG名古屋の、ECSハンズオン会に参加して来ました。

jawsug-nagoya.doorkeeper.jp

ワークショップの内容

今回実施するワークショップはこちら。

catalog.us-east-1.prod.workshops.aws

また、補足資料も公開されております。

zenn.dev

Cloud9でワークショップ用のリポジトリをPULLして来て、それを元にバックエンド、フロントエンドのECSタスクを立てる構成でした。

今回はtodoのApplicationをfrontend、backendのServiceで実現するという構成でした。 ApplicationService、そしてEnvironment(ex. ネットワーク、ECSクラスタ、LB)とPipelineという4つの概念の紹介がハンズオン内にありました。

改めて、Copilot CLIのドキュメントを読むと理解が深まりました。

aws.github.io

Copilotに関するコマンド抜粋

# Applicationの初期化
cd ~/environment/copilot-primer-workshop/code
copilot app init todo
# Applicationの一覧を確認
copilot app ls
# Environmentの作成/ここでmanifest.ymlが作成
copilot env init
#Envの一覧を確認
copilot env ls
# Manifestファイルに従ってEnvironmentをデプロイ
copilot env deploy
# Serviceの作成
cd ~/environment/copilot-primer-workshop/code
copilot svc init
# Serviceにストレージリソースの追加
copilot storage init
# Serviceのデプロイ
copilot svc deploy
# Serviceのステータス確認
copilot svc status
# Applicationに関連するリソースの削除
copilot app delete

1時間ちょっとで、フロントエンドとバックエンドのサービス作成まで出来ました!凄い!

感想など

  • 個人的に、対話型でここまで簡単にリソースが構築できるのは驚きました。(よしなにDynamoDBをServiceにくっつける事が出来たり)
  • ある程度バックグラウンドの知識が無いとどうしても「何が構築されているか」のイメージは付きにくい部分はあるとは思いますが、デプロイの為の環境構築という観点では、以前取り組んだことのあるCDK Workshopよりも取り組みやすい印象を受けました。
  • CICDパイプラインの作成までは取り組みませんでしたが、copilot pipeline initでCodePipelineの雛型(CodeBuildのbuildspec.ymlも)を作成してくれるのはとても便利そうです。

裏側で様々なリソースが作成されるので

  • copilot app delete
  • EIPを取得した場合は解放
  • IAMユーザーの削除

など後片付けにも注意は必要で、前提知識がそれなりに要求されるハンズオンでしたがその分非常に満足度が高かったです。

来月開催のEKS会も、まだEKS触れていなかったので非常に楽しみです。

運営の皆様、ありがとうございました!