UdonTech Advent Calendar 2022の23日目です。
フライング・メリークリスマス 明日は、いよいよクリスマスイブですね。
ところでみなさん、ご存知でしたか?
クリスマスイブは、クリスマス(Christmas:「キリストのミサ」) + イブ(evening:「夜」)という意味なので、24日の夜から25日の日没という意味ですよ。なので25日の夜は、正確にはクリスマスではないんですね。
自己紹介
本当は、AWSの資格の話を書きたかったんですが、忙しくて資格の勉強時間がなかなか取れず(言い訳)・・・。今の職場で初めて触ることになったAWS Copilotについての記事を書こうと思います。
AWS Copilotとは何か
ということで、本題のAWS Copilotの話に移ります。
AWS Copilotは、公式サイトによると以下のような説明がされています。
AWS Copilot は、低レイヤなインフラの手動管理から脱却し、自身のアプリケーションとそのライフサイクルにフ> ォーカスしたい ECS ユーザのためにデザインされました。....
つまり、Copilot を使うことで、アイデアから実装までをより早く、プロダクションレディな形で構築されたインフラに自信をもってデプロイできるようになるわけです。
だそうです!!!!!!
つまり、どういうことかというと「Amazon ECSのデプロイツール」ということなんですね。
AWS Copilotのインストール
# Homebrewでインストール
$ brew install aws/tap/copilot-cli
# 直接ダウンロードでインストール
$ curl -Lo /usr/local/bin/copilot https://github.com/aws/copilot-cli/releases/download/v0.1.0/copilot-darwin-v0.1.0 && chmod +x /usr/local/bin/copilot && copilot --help
# インストール確認
$ copilot --version
copilot version: v1.21.0
上記コマンドで、最新のcopilotがインストールされます。おそらくv.1.2系がインストールされると思います。
AWS Copilotを動かしてみる
あとはこちらのページの内容をまるパクリさせていただきました。
こんな感じのDockerfileを用意してあげます。
FROM nginx
EXPOSE 80
COPY index.html /usr/share/nginx/html
copilotを使ってデプロイを開始します。
# このコマンドが出発点となる
$ copilot init
What would you like to name your application? [? for help] # アプリケーション名を指定
Which service type best represents your service's architecture? [Use arrows to move, type to filter, ? for more help]
> Load Balanced Web Service # インターネットフェイシングなパブリックサービス
Backend Service # プライベートなバックエンドサービス
What do you want to name this Load Balanced Web Service? [? for help] # サービス名を指定
Which Dockerfile would you like to use for nginx-test? [Use arrows to move, type to filter, ? for more help]
# 自動検出されるDockerfileを選択します。copilot init実行配下のフォルダの中のDockerfileも見つけてくれます。
#用意する環境にデプロイをするかどうか聞かれます。
Would you like to deploy a test environment? [? for help] (y/N)
このコマンドで自動的にデプロイまでされちゃいます。
以下のコマンドでcopilotにおける環境一覧が、
copilot env show
以下のコマンドでcopilotにおけるサービス一覧が、
copilot svc show
表示されます。
おまけ
v.1.1系からv.1.2系になるときに大幅なアップデートがあり、私がいる現場でも更新する際にめっちゃ苦労しました・・・。
その苦労話もどこかで記事にしようと思います。