継続は力なり

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

『AWS Copilot CLI』のコマンドとパラメーターから『AWS Coplilot』の理解を深める

タダです.

AWS Copilot CLI」のコマンドとそのパラメーターでまだまだ知らないことが多いのでこの記事でコマンドとパラメーターを確認して,「AWS Copilot」の理解を深めたいと思います.

参照したドキュメント github.com

なお,CLI のバージョンは 0.4.0 で確認しております.

 » copilot -v
copilot version: v0.4.0

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 ServiceBackend Serviceを指定する
--tag string サービスのコンテナイメージにタグを付与するために使う
-h, --help ヘルプ情報を出したい時に使う

copilot app

copilot appコマンドはアプリケーションを作ったり,情報を参照するなどアプリケーションに関するコマンドです.各パラメーターを見ていきます.

copilot app init

copilot app initでは

パラメーター 用途
--domain string Route53 で既存のドメイン名でアプリケーションを作成する
--resource-tags stringToString リソースタグを付与する
-h, --help ヘルプ情報を出したい時に使う

github.com

copilot app ls

copilot app ls は Copilot で展開しているアプリを表示してくれるコマンドでパラメーターはヘルプ関連のみです.

パラメーター 用途
-h,--help ヘルプ情報を出したい時に使う

github.com

copilot app show

copilot app showではアプリケーションの設定,環境やサービスの情報を表示します.

パラメーター 用途
--json JSON で結果を返したい時に使う
-n, --name string アプリを指定して情報を表示したい時に使う
-h, --help ヘルプ情報を出したい時に使う

github.com

copilot app delete

copilot app deleteではアプリケーションの関連リソースを削除します.

パラメーター 用途
--env-profiles stringToString プロファイルを指定して削除するために使う
—yes 確認をスキップするために使う
-h, --help ヘルプ情報を出したい時に使う

github.com

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 指定する時に使う.

github.com

copilot env ls

copilot env lsはアプリケーションの全環境を表示するコマンドです.

パラメーター 用途
--json JSON で結果を返したい時に使う
-a, --app string アプリを指定して情報を表示したい時に使う
-h, --help ヘルプ情報を出したい時に使う

github.com

copilot env shw

copilot env showではデプロイした環境の情報を表示するコマンドです.

パラメーター 用途
--json JSON で結果を返したい時に使う
-a, --app string アプリを指定して情報を表示したい時に使う
--resources 環境内にあるリソースを表示する時に使う
-h, --help ヘルプ情報を出したい時に使う

github.com

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 ServiceBackend Serviceを指定する
--port uint16 Load Balanced Web Service,Backend Serviceで使うポートを指定する時に使う

github.com

copilit svc show

copilot svc showは環境ごとのエンドポイント,キャパシティ,関連リソースなどデプロイされたサービスに関する情報を表示するコマンドです.

パラメーター 用途
-a, --app string アプリ名を指定する時に使う
--json JSON 形式で出力したい時に使う
-n, --name string サービス名を指定する時に使う
--resources サービスで使っているリソースを表示する時に使う
-h, --help ヘルプ情報を出したい時に使う

github.com

copilot svc ls

copilot svc lsは特定のアプリケーションのすべての Copilot サービスを一覧表示するコマンドです.

パラメーター 用途
-a, --app string アプリ名を指定する時に使う
--json JSON 形式で出力したい時に使う
--local ローカルの開発しているサービスを表示する時に使う
-h, --help ヘルプ情報を出したい時に使う

github.com

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 ヘルプ情報を出したい時に使う

github.com

copilot svc status

copilot svc statusはサービスの状態/タスクの状態/関連するCloudWatchアラームを含んだデプロイされたサービスのステータスを表示するコマンドです.

パラメーター 用途
-a, --app string アプリ名を指定する時に使う
-e, --env string 環境名を指定する時に使う
--json JSON 形式で出力したい時に使う
-n, --name string サービス名を指定する時に使う
-h, --help ヘルプ情報を出したい時に使う

github.com

copilot svc package

copilot svc packageは環境にサービスをデプロイするために使用されるCloudFormationテンプレートを生成する時に使うコマンドです.

パラメーター 用途
-e, --env string 環境名を指定する時に使う
-n, --name string サービス名を指定する時に使う
--output-dir string CloudFormation テンプレートを出力するディレクトリを指定する時に使う
--tag string コンテナイメージのタグを指定する時に使う
-h, --help ヘルプ情報を出したい時に使う

github.com

copilot svc deploy

copilot svc deployは環境にサービスをデプロイするためのコマンドです.

パラメーター 用途
-e, --env string 環境名を指定する時に使う
-n, --name string サービス名を指定する時に使う
--resource-tags stringToString リソースのタグを指定する時に使う
--tag string コンテナイメージのタグを指定する時に使う
-h, --help ヘルプ情報を出したい時に使う

github.com

サービスのデプロイまでのステップ

なお,サービスのデプロイステップは次の5段階を経て行われます.

  1. ローカルの Dockerfile をイメージをビルドする
  2. タグを --tag で指定した値,もしくは最新のgit shaで指定した値でタグ付けする
  3. コンテナイメージを ECR にプッシュする
  4. マニフェストファイルとアドオンで作ったリソースを CloudFormation でパッケージ化する
  5. ECS タスク定義とサービスの作成および更新を行う

copilot svc delete

copilot svc deleteはアプリケーションからサービスを削除する時に使うコマンドです.

パラメーター 用途
-e, --env string 環境名を指定する時に使う
-n,--name string サービス名を指定する時に使う
—yes 確認をスキップするために使う
-h, --help ヘルプ情報を出したい時に使う

github.com

copilot task

copilot task run

copilot task runv0.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 オプションパラメーターでコンテナエージェントに AWSAPI 呼び出しの権限を付与するロールを指定する時に使う
--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 ヘルプ情報を出したい時に使う

github.com

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 ヘルプ情報を出したい時に使う

github.com

copilot pipeline update

copilot pipeline updateマニフェストファイルからアプリケーションに関連付けられた環境を使用してワークスペース内のサービスのパイプラインをデプロイするためのコマンドです.

パラメーター 用途
—yes 確認をスキップするために使う
-h, --help ヘルプ情報を出したい時に使う

github.com

copilot pipeline show

copilot pipeline showはアプリケーション用にデプロイされたパイプラインの構成情報を表示するコマンドです.

パラメーター 用途
-a, --app string アプリ名を指定する時に使う
--json JSON 形式で出力したい時に使う
-n, --name string パイプライン名を指定する時に使う
--resources パイプラインで使っているリソースを表示する時に使う
-h, --help ヘルプ情報を出したい時に使う

github.com

copilot pipeline status

copilot pipeline statusはデプロイ済みのパイプラインのステージステータスを表示するコマンドです.

パラメーター 用途
-a, --app string アプリ名を指定する時に使う
—yes 確認をスキップするために使う
-h, --help ヘルプ情報を出したい時に使う

github.com

copilot pipeline delete

copilot pipeline deleteはパイプラインを削除する時に使うコマンドです.

パラメーター 用途
--delete-secret パイプラインのソースリポジトリに関連付けられた Secrets Manager の秘密情報を削除する時に使う
-n, --name string パイプライン名を指定する時に使う
-h, --help ヘルプ情報を出したい時に使う

github.com

copilot deploy

copilot deplycopilot 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 DynamoDBS3 のどちらをストレージとして使うかを指定する時に使う
-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>のフォーマットで指定する

github.com

copilot version

copilot version は 「AWS Copilot CLI」のバージョンを表示してくれるコマンドでパラメーターはヘルプ関連のみです.

パラメーター 用途
-h,--help ヘルプ情報を出したい時に使う

github.com

copilot completion

copilot completionbashzsh といったシェルの補完のためのコマンドでパラメーターはヘルプ関連のみです.

パラメーター 用途
-h,--help ヘルプ情報を出したい時に使う

github.com

copilot docs

copilot docsは「AWS Copilot CLI」のドキュメントページを開いてくれるコマンドです.パラメーターはヘルプ関連のみです.

パラメーター 用途
-h,--help ヘルプ情報を出したい時に使う

まとめ

AWS Copilot CLI」のコマンドとそのパラメーターをそれぞれで見ていきました.CLI ツールでできることを確認してまた「AWS Coplit」のツールの理解が深まりました.現時点のコマンドとパラメーターをざっと見て,copilot storagecopilot pipelineも使ったことがないので試して別の記事で学んだことをまとめます.

関連記事

sadayoshi-tada.hatenablog.com

sadayoshi-tada.hatenablog.com