継続は力なり

タイトル通り定期的な更新を心掛けるブログです。

コンテナの環境構築とデプロイをサポートする『AWS Copilot』の概念や用語を理解する

タダです.

前回「Copilot CLI」の導入と Get Started の記事を書きました.

sadayoshi-tada.hatenablog.com

今回は, 「AWS Copilot」(以下,Copilot)を理解するためにどんな概念や用語があるかを確認してツールの使い方を整理していきたいと思います.

ツールのコンセプト

Copilot」のコンセプトは下記ページに載ってます.各用語の意義をまとめます.

github.com

Services

Service は Copilot のサポートされている構成を指す用語です.Service のタイプによって構成される環境が決まり,Copilot が Dockerfile の作成と ECR への保存,Manifest ファイルが作られます.

Services Type

Copilot のサービスタイプは2種類です.

  • Load Balanced Web Service
    • インターネットアクセスが必要な場合に選択するサービスタイプ
    • インターネット向け ALB が前段にいて,背後に Fargate の構成を作れる
    • ユースケースとしては ウェブサイトやフロントエンド API
  • Backend Service
    • インターネット経由での接続はできないが,他のサービスからサービスディスカバリーで接続できるサービスタイプ
    • ユースケースとしては 内向け API サービス

github.com

Environments

Environments は実行環境のステージを表す用語です.実行環境はそれぞれ独立しているのでデバッグしたいためのテスト環境を設ける等やりやすいです.copilot env init と実行することで Environments を作れます.例えばテスト環境を作る場合は下記のようにパラメータを使うことで作れます.

copilot env init --name test --profile xxxx --app test-app

lsshow を使えば現在の Environments を確認できます.

» copilot env ls
test

» copilot env show
Only found one environment, defaulting to: test
About

  Name              test
  Production        false
  Region            ap-northeast-1
  Account ID        XXXXXXXXXXXX

Services

  Name              Type
  ----              ----

Tags

  Key                  Value
  ---                  -----
  copilot-application  test-app
  copilot-environment  test

Applications

Applications は Services と Environments の集合体を指す用語です.Copilot を使う時に最初にアプリケーション名をつけます.copilot init を実行した際に一番最初に問われるのが Applications の名前です.Application も lsshow を使うことで現在の Applications を確認できます.

» copilot env ls
test

» copilot app show
About

  Name              test-app
  URI

Environments

  Name              AccountID           Region
  test              XXXXXXXXXXXX        ap-northeast-1

Services

  Name              Type
  front-end         Load Balanced Web Service

Pipelines

Pipelines はリリースパイプラインを指す用語です.Copilot では自動リリースプロセスのセットアップを簡単にすることを目指しています.ドキュメントでは,CodePipeline を使って GitHub にプッシュした後の自動リリースを行うための設定を紹介されています.

github.com

Manifest

そして,Services のアーキテクチャをコードして定義する Manifest も押さえておくべき用語です.前回の記事でも触れていますが,copilot initcopilot svc initを実行した時にcopilot/<サービス名>/ディレクトリ配下に生成されるファイルが Manifest です.manifest.yml のファイルができます.このファイルは CloudFormation テンプレートに変換されるファイルです.CloudFormation テンプレートは通常 JSONYAML 形式で定義しなければなりませんが,その定義作成の負担がないのは大きなメリットだと思います.ドキュメントのページには Load Balanced Web Service と Backend Service の Manifest ファイルの定義が載っているのでどんな感じかの参考になります.

github.com

まとめ

ツールのことを知るために「Copilot」の概念や用語を整理しました.公式ブログでも「Copilot」のことがアナウンスされました.今後のツールとしてよりよくしていくため「Copilot CLI」を使ってみてフィードバックや機能リクエストをしていきたいですね! 次の記事ではCLI コマンドとそのオプションがどんなものがあり,どんなことができるのかを書きたいと思います.

aws.amazon.com

aws.amazon.com