この記事は、ユニファ Advent Calendar 2021の17日目の記事です。
こんにちは、プロダクトエンジニアリング部の杉本です。
タイトルの通りですが、AWS Toolkit for VS Code(以下、AWS Toolkit)がECS Execをサポートしたのでさっそく試してみました。 aws.amazon.com
ECS Execを利用する方法や運用については、下記の記事もぜひご覧ください。
Amazon ECS Execを使ってrails consoleを動かしてみる - ユニファ開発者ブログ
AWS ECSのserviceにアクセスする方法 - ユニファ開発者ブログ
Setup
ECS関連機能は執筆時点最新の v1.34.0
で追加されています。*1
AWS Toolkitはすでにあるcredentialsを読み込んでくれるので、profileを選択するだけでAWSリソースを参照することができます。 profileは新しく作成することも可能です。*2
ECS Execを有効にするには、cliで enableExecuteCommand: true
に定義を更新する必要がありました。
aws ecs update-service \ --cluster $cluster \ --service $service \ --enable-execute-command
が、それも今回追加された機能でサービスを選択して Enable Command Execution
することができます。素晴らしいですね。
ECS Exec
それでは実際にコマンドを実行してみましょう。
コンテナを選択して Run command in container
を選択。
コマンドパレットに実行するコマンドを入力。
VSCodeのOUTPUTで、実行ログが得られました 🎉
例なので適当に hostname
にしていますが、実際には
- ECS Scheduled Tasksで定期実行しているコマンドをテストするために即時実行する。
- あれ、この環境変数通ってるかしら?の確認。
など、所々で「地味に便利」を味わうことができています。
所感
ローカルから実行できるという点ではcliの方がもちろん便利ですが、AWS Toolkitの場合はすでにロード済みのリソースから選択するのでTaskID等を調べる手間を省くことができます。 さくっと使えるので、デバッグ利用が前提のECS Execには非常にうれしい機能追加だと思いました。
AWS Toolkitはcliほどになる必要はないですが、Lambda実行や今回のECS Execのように開発効率を上げるような機能があり、大変ありがたいです。 「こんな機能もほしいんだよな〜」という方は、ぜひFeedbackやPRを送ってみましょう。
https://github.com/aws/aws-toolkit-vscode#feedback
引き続き、アップデートに注目していきたいですね!