1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【2025年版】SlackからEC2の起動/停止を操作する(Lambda未使用)

Posted at

概要

Lambdaを使用せず、SlackからEC2の起動・停止を実現する方法を見つけましたのでまとめました。結論、「Amazon Q Developer in chat applications (旧称: AWS Chatbot)」のみで実現できます。

1. Amazon Q Developerの設定

1-1. ワークスペースの設定

AWSコンソールから「Amazon Q Developer in chat applications」を開き、「新しいクライアントを作成」後、Slack側で許可します。

image.png
image.png

これだけでワークスペースの設定は完了です。

1-2. 新しいチャネルの設定

クライアント作成後、チャンネルを設定しましょう。基本的には流れに沿って「名前」「Slackチャンネル」「権限」を設定するだけです。権限周りで躓いたので、簡単に解説しておきます。該当部分は以下の画像の通りです。

image.png

1-3. チャネルロール

チャネルロールは、Amazon Q Developerが実行するロールです。新規作成とすると、以下の信頼ポリシーを記述したロールが作成されます。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "chatbot.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}

今回はEC2の起動・停止を行いますので、該当ポリシーを付与する必要があります。検証のため、一旦「AmazonEC2FullAccess」を付与します。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "ec2:*",
            "Resource": "*"
        }
    ]
}

1-4. チャネルガードレールポリシー

チャネルガードレールポリシーは、Amazon Q Developerが実行可能な範囲を制限することができます。 チャネルロールで過剰な権限が付与されていても、このガードレールポリシーで制御していれば範囲外の操作を行うことができません。 検証のため、一旦「AmazonEC2FullAccess」を設定します。

2. Slackの設定

「新しいチャネルの設定」で設定したSlackチャンネルに「Amazon Q Developer」を追加します。「チャンネルの詳細」-「インテグレーション」-「アプリを追加する」から追加できます。
image.png

これで事前準備は整いました。

3. 動作確認

Amazon Q Developerにはたくさんのコマンドが登録されており、適当にリソース名をつけてメンションするとそのリソースに対するコマンドを一覧で出してくれます。必要な操作を見つけましょう。

@Amazon Q ec2

image.png

EC2の停止コマンドは以下です。

ec2 stop-instances --instance-ids i-0zb42fbbd80ad2qc7 --region ap-northeast-1

コマンドを実行してすぐに処理が走るわけではなく、こちらがOKしないと動いてくれないようでした。
image.png

※権限がないと、権限エラーのエラーログを出力してくれます。エラーログを見て必要な部分を修正しましょう。

まとめ

大体どの記事もLambdaを使用するパターンでしたので本当に実現できるか疑問でしたが、知っていれば簡単に実現できましたね。Lambdaを用いるとランタイムのサポート対応をしないといけなくなるので、ぜひこちらを利用してみてください。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?