タダです.
前回「Copilot CLI」の導入と Get Started の記事を書きました.
今回は, 「AWS Copilot」(以下,Copilot)を理解するためにどんな概念や用語があるかを確認してツールの使い方を整理していきたいと思います.
ツールのコンセプト
「Copilot」のコンセプトは下記ページに載ってます.各用語の意義をまとめます.
Services
Service は Copilot のサポートされている構成を指す用語です.Service のタイプによって構成される環境が決まり,Copilot が Dockerfile の作成と ECR への保存,Manifest ファイルが作られます.
Services Type
Copilot のサービスタイプは2種類です.
- Load Balanced Web Service
- Backend Service
Environments
Environments は実行環境のステージを表す用語です.実行環境はそれぞれ独立しているのでデバッグしたいためのテスト環境を設ける等やりやすいです.copilot env init
と実行することで Environments を作れます.例えばテスト環境を作る場合は下記のようにパラメータを使うことで作れます.
copilot env init --name test --profile xxxx --app test-app
ls
や show
を使えば現在の 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 も ls
や show
を使うことで現在の 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 にプッシュした後の自動リリースを行うための設定を紹介されています.
Manifest
そして,Services のアーキテクチャをコードして定義する Manifest も押さえておくべき用語です.前回の記事でも触れていますが,copilot init
かcopilot svc init
を実行した時にcopilot/<サービス名>/
ディレクトリ配下に生成されるファイルが Manifest です.manifest.yml
のファイルができます.このファイルは CloudFormation テンプレートに変換されるファイルです.CloudFormation テンプレートは通常 JSON か YAML 形式で定義しなければなりませんが,その定義作成の負担がないのは大きなメリットだと思います.ドキュメントのページには Load Balanced Web Service と Backend Service の Manifest ファイルの定義が載っているのでどんな感じかの参考になります.
まとめ
ツールのことを知るために「Copilot」の概念や用語を整理しました.公式ブログでも「Copilot」のことがアナウンスされました.今後のツールとしてよりよくしていくため「Copilot CLI」を使ってみてフィードバックや機能リクエストをしていきたいですね! 次の記事ではCLI コマンドとそのオプションがどんなものがあり,どんなことができるのかを書きたいと思います.