タダです.
「AWS Copilot CLI」のコマンドとそのパラメーターでまだまだ知らないことが多いのでこの記事でコマンドとパラメーターを確認して,「AWS Copilot」の理解を深めたいと思います.
参照したドキュメント github.com
なお,CLI のバージョンは 0.4.0 で確認しております.
» copilot -v copilot version: v0.4.0
- AWS Copilot CLI のコマンドの種類
- copilot init
- copilot app
- copilot env
- copilot svc
- copilot task
- copilot pipeline
- copilot deploy
- copilot storage
- copilot version
- copilot completion
- copilot docs
- まとめ
AWS Copilot CLI のコマンドの種類
「AWS Copilot CLI」が使えるコマンドとして次のものがあり,copilot helpを叩くとコマンドを確認できます.それぞれのコマンドとオプションをhelpを叩いて行くことでさらに詳細を確認できますので見ていきます.
- init
- app
- env
- svc
- task
- pipeline
- deploy
- storage
- version
- completion
- docs
» copilot help 👩<200d>✈️ Launch and manage applications on Amazon ECS and AWS Fargate. Commands Getting Started 🌱 init Create a new ECS application. docs Open the copilot docs. Develop ✨ app Commands for applications. Applications are a collection of services and environments. env Commands for environments. Environments are deployment stages shared between services. svc Commands for services. Services are long-running Amazon ECS services. task Commands for tasks. One-off Amazon ECS tasks that terminate once their work is done. Release 🚀 pipeline Commands for pipelines. Continuous delivery pipelines to release services. deploy Deploy your service. Addons 🧸 storage Commands for working with storage and databases. Settings ⚙️ version Print the version number. completion Output shell completion code. Flags -h, --help help for copilot Examples Displays the help menu for the "init" command. `$ copilot init --help`
copilot init
copilot initコマンドは新しい ECS で動作するアプリケーションを作るためのコマンドです.各パラメーターを見ていきます.
| パラメーター | 用途 |
|---|---|
| -a, --app string | アプリケーション名を指定する時に使う |
| --deploy | テスト環境にデプロイするために指定する時に使う |
| -d, --dockerfile string | Dockerfile へのパスを指定する時に使う |
| --port uint16 | ポート指定する場合に使う |
| --profile string | AWS CLI で設定済みのプロファイル指定したい時に使う |
| -s, --svc string | サービズ名を指定する時に使う |
| -t, --svc-type string | サービスタイプを指定する時に使うLoad Balanced Web ServiceかBackend Serviceを指定する |
| --tag string | サービスのコンテナイメージにタグを付与するために使う |
| -h, --help | ヘルプ情報を出したい時に使う |
copilot app
copilot appコマンドはアプリケーションを作ったり,情報を参照するなどアプリケーションに関するコマンドです.各パラメーターを見ていきます.
copilot app init
copilot app initでは
| パラメーター | 用途 |
|---|---|
| --domain string | Route53 で既存のドメイン名でアプリケーションを作成する |
| --resource-tags stringToString | リソースタグを付与する |
| -h, --help | ヘルプ情報を出したい時に使う |
copilot app ls
copilot app ls は Copilot で展開しているアプリを表示してくれるコマンドでパラメーターはヘルプ関連のみです.
| パラメーター | 用途 |
|---|---|
| -h,--help | ヘルプ情報を出したい時に使う |
copilot app show
copilot app showではアプリケーションの設定,環境やサービスの情報を表示します.
| パラメーター | 用途 |
|---|---|
| --json | JSON で結果を返したい時に使う |
| -n, --name string | アプリを指定して情報を表示したい時に使う |
| -h, --help | ヘルプ情報を出したい時に使う |
copilot app delete
copilot app deleteではアプリケーションの関連リソースを削除します.
| パラメーター | 用途 |
|---|---|
| --env-profiles stringToString | プロファイルを指定して削除するために使う |
| —yes | 確認をスキップするために使う |
| -h, --help | ヘルプ情報を出したい時に使う |
copilot env
copilot envはデプロイメントステージに関連するコマンドです.各パラメーターを見ていきます.
copilot env init
copilot env initではサービスが動作する新しい環境を作成するコマンドです.
| パラメーター | 用途 |
|---|---|
| --aws-access-key-id string | アクセスキーを指定する時に使う |
| --aws-secret-access-key string | シークレットアクセスキーを指定する時に使う |
| --aws-session-token string | 一時的な認証情報を指定する時に使う |
| --default-config | default で指定した認証情報を使う時に使う |
| -n, --name string | 環境名を指定するために使う |
| --prod | 本番環境用のサービスを含んでいる場合に指定する |
| --profile string | プロファイルを指定する時に使う |
| -a,--app string | プアプリケーション名を指定する時に使う |
| -h, --help | ヘルプ情報を出したい時に使う |
| --import-private-subnets strings | 既存のプライベートサブネットを指定する時に使う SubnetID を指定する |
| --import-public-subnets strings | 既存のパブリックサブネットを指定する時に使う SubnetID を指定する |
| --import-vpc-id string | 既存の VPC を指定する時に使う VPCID を指定する |
| --override-private-cidrs strings | プライベートサブネットとして使う |
| --override-public-cidrs strings | パブリックサブネットとして使う |
| --override-vpc-cidr ipNet | VPC の CIDR 指定する時に使う. |
copilot env ls
copilot env lsはアプリケーションの全環境を表示するコマンドです.
| パラメーター | 用途 |
|---|---|
| --json | JSON で結果を返したい時に使う |
| -a, --app string | アプリを指定して情報を表示したい時に使う |
| -h, --help | ヘルプ情報を出したい時に使う |
copilot env shw
copilot env showではデプロイした環境の情報を表示するコマンドです.
| パラメーター | 用途 |
|---|---|
| --json | JSON で結果を返したい時に使う |
| -a, --app string | アプリを指定して情報を表示したい時に使う |
| --resources | 環境内にあるリソースを表示する時に使う |
| -h, --help | ヘルプ情報を出したい時に使う |
copilot env delete
copilot env deleteはアプリケーションから環境を削除するコマンドです.環境内に実行中のアプリケーションがある場合はまずcopilot svc deleteを実行する必要があります.
| パラメーター | 用途 |
|---|---|
| -a,--app sting | アプリケーション名を指定する時に使う |
| -n,--name string | 環境名を指定する時に使う |
| --profiles string | プロファイルを指定して削除するために使う |
| —yes | 確認をスキップするために使う |
| -h, --help | ヘルプ情報を出したい時に使う |
copilot svc
copilot svcはサービスに関するコマンドです.各パラメーターを見ていきます.
copilot svc init
copilot svc initは新規のサービスを作るためのコマンドです.
| パラメーター | 用途 |
|---|---|
| -d, --dockerfile string | Dockerfile へのパスを指定する時に使う |
| -n, --name string | サービス名を指定する時に使う |
| -t, --svc-type string | サービスタイプを指定する時に使うLoad Balanced Web ServiceかBackend Serviceを指定する |
| --port uint16 | Load Balanced Web Service,Backend Serviceで使うポートを指定する時に使う |
copilit svc show
copilot svc showは環境ごとのエンドポイント,キャパシティ,関連リソースなどデプロイされたサービスに関する情報を表示するコマンドです.
| パラメーター | 用途 |
|---|---|
| -a, --app string | アプリ名を指定する時に使う |
| --json | JSON 形式で出力したい時に使う |
| -n, --name string | サービス名を指定する時に使う |
| --resources | サービスで使っているリソースを表示する時に使う |
| -h, --help | ヘルプ情報を出したい時に使う |
copilot svc ls
copilot svc lsは特定のアプリケーションのすべての Copilot サービスを一覧表示するコマンドです.
| パラメーター | 用途 |
|---|---|
| -a, --app string | アプリ名を指定する時に使う |
| --json | JSON 形式で出力したい時に使う |
| --local | ローカルの開発しているサービスを表示する時に使う |
| -h, --help | ヘルプ情報を出したい時に使う |
copilot svc logs
copilot svc logsはデプロイしたサービスのログを表示するコマンドです.
| パラメーター | 用途 |
|---|---|
| -a, --app string | アプリ名を指定する時に使う |
| --end-time string | JSON 形式で出力したい時に使う |
| -e, --env string | 環境名を指定する時に使う |
| --follow | ログをストリーミングするかどうかを指定する時に使う |
| --json | JSON 形式で出力したい時に使う |
| --limit int | 返されるログイベントの最大数を指定する時に使い,デフォルトは 10 で返却される |
| -n, --name string | サービス名を指定する時に使う |
| --since duration | 5秒/2分/3時間といった時間を指定してそれよりも新しいログのみを表示したい時に使う なお,start-time / since のいずれか一方のみ指定できない |
| --start-time string | 特定の日付以降のログのみを返す時に使う--start-time 2006-01-02T15:04:05+00:00 --end-time 2006-01-02T15:05:05+00:00 のように指定する |
| --tasks strings | 特定のタスク ID を指定すればそのタスクのログを返す |
| -h, --help | ヘルプ情報を出したい時に使う |
copilot svc status
copilot svc statusはサービスの状態/タスクの状態/関連するCloudWatchアラームを含んだデプロイされたサービスのステータスを表示するコマンドです.
| パラメーター | 用途 |
|---|---|
| -a, --app string | アプリ名を指定する時に使う |
| -e, --env string | 環境名を指定する時に使う |
| --json | JSON 形式で出力したい時に使う |
| -n, --name string | サービス名を指定する時に使う |
| -h, --help | ヘルプ情報を出したい時に使う |
copilot svc package
copilot svc packageは環境にサービスをデプロイするために使用されるCloudFormationテンプレートを生成する時に使うコマンドです.
| パラメーター | 用途 |
|---|---|
| -e, --env string | 環境名を指定する時に使う |
| -n, --name string | サービス名を指定する時に使う |
| --output-dir string | CloudFormation テンプレートを出力するディレクトリを指定する時に使う |
| --tag string | コンテナイメージのタグを指定する時に使う |
| -h, --help | ヘルプ情報を出したい時に使う |
copilot svc deploy
copilot svc deployは環境にサービスをデプロイするためのコマンドです.
| パラメーター | 用途 |
|---|---|
| -e, --env string | 環境名を指定する時に使う |
| -n, --name string | サービス名を指定する時に使う |
| --resource-tags stringToString | リソースのタグを指定する時に使う |
| --tag string | コンテナイメージのタグを指定する時に使う |
| -h, --help | ヘルプ情報を出したい時に使う |
サービスのデプロイまでのステップ
なお,サービスのデプロイステップは次の5段階を経て行われます.
- ローカルの Dockerfile をイメージをビルドする
- タグを --tag で指定した値,もしくは最新の
git shaで指定した値でタグ付けする - コンテナイメージを ECR にプッシュする
- マニフェストファイルとアドオンで作ったリソースを CloudFormation でパッケージ化する
- ECS タスク定義とサービスの作成および更新を行う
copilot svc delete
copilot svc deleteはアプリケーションからサービスを削除する時に使うコマンドです.
| パラメーター | 用途 |
|---|---|
| -e, --env string | 環境名を指定する時に使う |
| -n,--name string | サービス名を指定する時に使う |
| —yes | 確認をスキップするために使う |
| -h, --help | ヘルプ情報を出したい時に使う |
copilot task
copilot task run
copilot task runはv0.3.0で追加されたコマンドで,単発のタスクをデプロイして実行します.
| パラメーター | 用途 |
|---|---|
| --app string | アプリケーションの名前を指定する時に使うオプションパラメーター default/subnets/security-groupsでは指定できない |
| --command string | オプションパラメーターでデフォルトのコマンドを上書きするためにdocker runに渡されるコマンドを指定する時に使う |
| --count int | オプションパラメーターでタスクの数を指定する時に使う デフォルトのタスク数は1 |
| --cpu int | オプションパラメーターで各タスクに予約する CPU ユニットの数を指定する時に使う デフォルトの CPU ユニット数は256 |
| --default | オプションパラメーターでデフォルトのクラスタとデフォルトのサブネットでタスクを実行する時に使う app/env/subnets では指定できない |
| --dockerfile string | Dockerfile へのファイルパスを指定する時に使う デフォルトのファイルパスはコマンド実行時のディレクトリ直下 |
| --env string | オプションパラメーターで環境名を指定する時に使う default/subnets/security-groupsでは指定できない |
| --env-vars stringToString | オプションパラメーターで環境変数を指定する時に使う |
| --execution-role string | オプションパラメーターでコンテナエージェントに AWS の API 呼び出しの権限を付与するロールを指定する時に使う |
| --follow | オプションパラメーターでログをストリーム配信するかどうかを指定する時に使う |
| --image string | オプションパラメーターで Dockerfile をビルドする代わりに実行するイメージを指定する時に使う |
| --memory int | オプションパラメーターでタスクごとに確保するメモリ量を MiB 単位で指定する時に使う デフォルトの確保量は 512 MiB |
| --resource-tags stringToString | オプションパラメーターでタグを指定する時に使う app/env では指定できない |
| --subnets strings | オプションパラメーターでサブネット ID を指定する時に使う app/env/default では指定できない |
| --tag string | オプションパラメーターでコンテナイメージにlatestタグを追加する時に使う |
| -n, --task-group-name string | オプションパラメーターで タスクのグループ名を指定する時に使う 同じグループ名のタスクは同じリソースのセットを共有する |
| --task-role string | オプションパラメーターでタスクで使うロール名を指定する時に使う |
| -h, --help | ヘルプ情報を出したい時に使う |
copilot pipeline
copilot pipelineはアプリケーションを継続的デプロイするためのパイプラインに関連するコマンドです.各パラメーターを見ていきます.
copilot pipeline init
copilot pipeline initはパイプラインを作るためのコマンドです.
| パラメーター | 用途 |
|---|---|
| -e, --environments strings | パイプラインにステージを追加する時に使う |
| -b,--git-branch string | パイプラインをキックするブランチを指定する時に使う |
| -t, --github-access-token string | GitHub のアクセストークンをしている時に使い,ファイルでも指定可 |
| -u, --github-url string | サービスで使っている GitHub のリポジトリ URL を指定する時に使う |
| -h, --help | ヘルプ情報を出したい時に使う |
copilot pipeline update
copilot pipeline updateはマニフェストファイルからアプリケーションに関連付けられた環境を使用してワークスペース内のサービスのパイプラインをデプロイするためのコマンドです.
| パラメーター | 用途 |
|---|---|
| —yes | 確認をスキップするために使う |
| -h, --help | ヘルプ情報を出したい時に使う |
copilot pipeline show
copilot pipeline showはアプリケーション用にデプロイされたパイプラインの構成情報を表示するコマンドです.
| パラメーター | 用途 |
|---|---|
| -a, --app string | アプリ名を指定する時に使う |
| --json | JSON 形式で出力したい時に使う |
| -n, --name string | パイプライン名を指定する時に使う |
| --resources | パイプラインで使っているリソースを表示する時に使う |
| -h, --help | ヘルプ情報を出したい時に使う |
copilot pipeline status
copilot pipeline statusはデプロイ済みのパイプラインのステージステータスを表示するコマンドです.
| パラメーター | 用途 |
|---|---|
| -a, --app string | アプリ名を指定する時に使う |
| —yes | 確認をスキップするために使う |
| -h, --help | ヘルプ情報を出したい時に使う |
copilot pipeline delete
copilot pipeline deleteはパイプラインを削除する時に使うコマンドです.
| パラメーター | 用途 |
|---|---|
| --delete-secret | パイプラインのソースリポジトリに関連付けられた Secrets Manager の秘密情報を削除する時に使う |
| -n, --name string | パイプライン名を指定する時に使う |
| -h, --help | ヘルプ情報を出したい時に使う |
copilot deploy
copilot deplyはcopilot svc deployのエイリアスとなっているコマンドで,サービスをデプロイするために使います.
copilot storage
copilot storage init
copilot storage initはサービスに関連する新しいストレージリソースを作成するコマンドです.リソースとしては S3 と DynamoDB を指定でき,copilot svc deployでサービスと一緒にデプロイされます.v 0.1.0の頃にはなかったのでv0.2.0で追加されたコマンドでもあります.
| パラメーター | 用途 |
|---|---|
| -t, --storage-type string | DynamoDB か S3 のどちらをストレージとして使うかを指定する時に使う |
| -n, --name string | 作成するストレージ名を指定する時に使う |
| -s, --svc string | 関連づけるサービス名を指定する時に使う |
※DynamoDB を指定する時にのみ合わせて使えるパラメータ
| パラメーター | 用途 |
|---|---|
| --lsi stringArray | LSI を指定する時に使う<keyName>:<dataType>のフォーマットで指定する |
| --no-lsi | LSI の設定をスキップする時に使う |
| --no-sort | ソートキーの設定をスキップする時に使う |
| --partition-key string | パーティションキーを指定する時に使う<keyName>:<dataType>のフォーマットで指定する |
| --sort-key string | ソートキーを指定する時に使う<keyName>:<dataType>のフォーマットで指定する |
copilot version
copilot version は 「AWS Copilot CLI」のバージョンを表示してくれるコマンドでパラメーターはヘルプ関連のみです.
| パラメーター | 用途 |
|---|---|
| -h,--help | ヘルプ情報を出したい時に使う |
copilot completion
copilot completionはbash や zsh といったシェルの補完のためのコマンドでパラメーターはヘルプ関連のみです.
| パラメーター | 用途 |
|---|---|
| -h,--help | ヘルプ情報を出したい時に使う |
copilot docs
copilot docsは「AWS Copilot CLI」のドキュメントページを開いてくれるコマンドです.パラメーターはヘルプ関連のみです.
| パラメーター | 用途 |
|---|---|
| -h,--help | ヘルプ情報を出したい時に使う |
まとめ
「AWS Copilot CLI」のコマンドとそのパラメーターをそれぞれで見ていきました.CLI ツールでできることを確認してまた「AWS Coplit」のツールの理解が深まりました.現時点のコマンドとパラメーターをざっと見て,copilot storageとcopilot pipelineも使ったことがないので試して別の記事で学んだことをまとめます.