Upgrade to Pro — share decks privately, control downloads, hide ads and more …

多数のWebサービスをECS/Fargate構成で効率よく構築・運用するなら copilot-cli

多数のWebサービスをECS/Fargate構成で効率よく構築・運用するなら copilot-cli

JAWS FESTA 2024 in 広島 にて登壇した際の資料です。

interu (Teruo Adachi)

October 12, 2024
Tweet

More Decks by interu (Teruo Adachi)

Other Decks in Technology

Transcript

  1. © SonicGarden 8 copilot-cliのサポート範囲 • ECS / EC2構成 • EKS

    / Fargate • EKS / EC2 未サポート • ECS / Fargate • AppRunner • Static Site サポート
  2. © SonicGarden 11 概念 Application Environment Service Service Job Pipeline

    Application Service、Environment、Pipeline といった概念を取りまとめたもの Environment ステージング環境や本番環境など必要になる環境を指す概念 VPC、Subnet、AZ、SecurityGroupなどの設定を含む Service AWS 上で実⾏したいコードとそれに必要なインフラストラクチャリソースを指す概念 サービスのタイプを選択可能(appRunner,webサービス,apiサービス,workerサービス) Pipeline Environment や Service の変更をデプロイするリリースパイプラインを指す概念 Job バッチ処理などイベントによって起動されるECS タスクを指す概念
  3. © SonicGarden 12 概念ごとにコマンド実⾏(例) $ copilot app init sample --resource-tags

    project-name=sample $ copilot env init --name production $ copilot env deploy --name production $ copilot svc init --name web --svc-type "Load Balanced Web Service" $ copilot svc deploy --name web --env production $ copilot pipeline init --name web-production --pipeline-type 'Workloads' $ copilot pipeline deploy --name web-production Application の作成 Environment の作成 Service の作成 Pipeline の作成
  4. © SonicGarden 25 効率的にできた? • copilot-cli がAWSリソース作成の煩雑さを吸収 ◦ 構築コスト⼤幅減 •

    githubでmain/stagingへのmergeでサービスのリリースだけ でなくインフラの更新もリリース ◦ 運⽤コスト⼤幅減 できました! 理由は他にも‧‧‧
  5. © SonicGarden 26 ① copilot-cliのYAMLのgenerator 左のような設定の値を決めるだけで、 Dockerfile や copilot-cli の

    manifest.yml を ⾃動作成するツールを社内開発 $ bundle exec sfgen $ bundle exec sfgen check RailsのWebサービスの新規構築もすぐにできる! → 新規構築コスト⼤幅減
  6. © SonicGarden 30 copilot-cliを利⽤することで 構築時間 6 時間 → 1 時間

    うち30分程度は CloudFormation の実⾏待ち時間
  7. © SonicGarden 32 恩恵 • AWSの進化に copilot-cli が追従してくれる • マルチ環境対応

    ◦ staging/productionでAWSアカウントの分離も容易 • 環境削除もコマンド⼀発 • 作成したリソースへの⾃動タグ付け ◦ Cost/ResourceExplorerで楽に分析できる $ copilot app delete