ユニファ開発者ブログ

ユニファ株式会社プロダクトデベロップメント本部メンバーによるブログです。

AWS Toolkit for VS Code が ECS Exec をサポートしたので試してみる

この記事は、ユニファ Advent Calendar 2021の17日目の記事です。

adventar.org

こんにちは、プロダクトエンジニアリング部の杉本です。

タイトルの通りですが、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

f:id:unifa_tech:20211210121628p:plain

AWS Toolkitはすでにあるcredentialsを読み込んでくれるので、profileを選択するだけでAWSリソースを参照することができます。 profileは新しく作成することも可能です。*2

f:id:unifa_tech:20211210121725p:plain

f:id:unifa_tech:20211210123156p:plain

ECS Execを有効にするには、cliで enableExecuteCommand: true に定義を更新する必要がありました。

aws ecs update-service \
  --cluster $cluster \
  --service $service \
  --enable-execute-command

が、それも今回追加された機能でサービスを選択して Enable Command Execution することができます。素晴らしいですね。

f:id:unifa_tech:20211210123557p:plain

ECS Exec

それでは実際にコマンドを実行してみましょう。

コンテナを選択して Run command in container を選択。

f:id:unifa_tech:20211210123914p:plain

コマンドパレットに実行するコマンドを入力。

f:id:unifa_tech:20211210124306p:plain

VSCodeのOUTPUTで、実行ログが得られました 🎉

f:id:unifa_tech:20211210124248p:plain

例なので適当に 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

引き続き、アップデートに注目していきたいですね!

unifa-e.com