RevComm Tech Blog

コミュニケーションを再発明し 人が人を想う社会を創る

AWS Support への問い合わせを Slack からできるようにしてみた

この記事は、RevComm Advent Calender 7 日目の記事です。

RevComm インフラチーム所属の平島です。主にクラウド (AWS) を担当しています。 今回は、最近 RevComm で導入した AWS Support App in Slack について紹介したいと思います。

AWS Support App in Slack とは

2022 年 8 月 24 日に発表された比較的新しいサービスです(公式ブログ)。 Slack のチャットを通じて AWS Support への問い合わせや回答への対応ができるようになります。

以前は言語の選択ができず英語でしかケースの起票ができなかったため、導入したものの社内でなかなか使ってもらえませんでした。

ところが最近、いつの間にか日本語も選択できるようになっていました!

日本語話者のエンジニアが使う上での障壁が 1 つなくなりました。 今後社内でのさらなる利活用が期待できそうです。

前提条件

  • Slack を利用していること
  • AWS Support のプランが Business plan 以上であること

導入方法

IAM Role を作成する

Slack からの AWS Support への接続を許可するための IAM Role、また role にアタッチする policy を作成します。

policy は AWS Support アプリへのアクセスの管理 - AWS Support を参考にカスタムの policy を作成してもいいですが、既に以下の AWS Managed Policy が用意されているので RevComm ではこちらを採用しました。

  • AWSSupportAppFullAccess
  • AWSSupportAppReadOnlyAccess

ケースの閲覧だけでなく、ケースの起票や返信をする場合は AWSSupportAppFullAccess をアタッチする必要があります。

role の 信頼関係には以下を指定します。

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

Slack channel を作成

Slack で AWS Support App を利用する channel を作成します。

channel は public/private どちらでも利用できますが、セキュリティの観点から、 private channel を採用し関係者のみを招待して使うことが推奨されています。

Slack と AWS を連携させる

Slack Workspace の認証

AWS Management Console (以下、コンソール)から Support Center にアクセスし、左メニューから「AWS Support App in Slack」を選択します。 「Authorize workspace」をクリックすると、認証画面に遷移するので「Allow」をクリックします。

Slack channel を登録する

左メニューから Slack Configuration を選択します。 ここで Slack 上で表示するアカウント名を変えることもできます。

「Add channel」ボタンをクリックして channel の登録作業をします。

Slack workspace、 Slack channel、 Permissions (IAM Role) はそれぞれ事前に作成したものを選択します。

private channel を使う場合は Channel ID が必要になります。 Channel ID は channel のリンク URL の最後のスラッシュ以降の文字列で、C01234A5BCD のような形式のものです。

通知設定(Notifications)はサポートの利用状況に応じて選択してください。 RevComm は今のところ問い合わせが頻発するような状況ではないため、とりあえずすべての通知を ON にしています。

channel に AWS Support App を招待する

作成した Slack channel に AWS Support app を招待する必要があります。 channel 内で /invite @awssupport を入力します。

(補足)複数の AWS アカウントで利用する場合

複数のAWS アカウントで AWS Support App in Slack を利用する場合、

  • アカウントごとに channel を作成する
  • 1つの channel で複数アカウントに対応させる

という選択肢が考えられますが、RevComm では後者を採用しています。 1 つの channel で複数アカウントに対応させるためにには、それぞれのアカウントで

  • IAM Role の作成
  • Slack WorkSpace の認証
  • Slack channel の登録

が必要になります。 複数のアカウントで設定をすると、例えばケース起票の際にプルダウンでアカウントが選択できるようになります。

使い方

AWS と連携させた channel 内で、以下のコマンドをチャット欄に入力して操作します。

  • ケース起票: /awssupport create または /awssupport create-case
  • ケース検索: /awssupport search または /awssupport search-case
  • Service Quota (上限緩和)申請: /awssupport quota

これらのコマンドをチャット欄に入力すると、対応する入力フォームが表示されます。

ケースの起票

/awssupport create をチャット欄に入力し送信すると、ケース起票用のモーダルが表示されます。 指示にしたがって 3 ページにわたり必要事項を埋めていきます(コンソール での起票作業の場合と全く同じ内容です)。

モーダルの 3 ページ目に 「Select Language」 のプルダウンがあるので、日本語で用件を書いた場合は「日本語」を選択してください。

最後まで入力して「Review」をクリックすると、以下のように入力内容がメッセージとして表示されます。

修正する場合は「Edit」を押すと再度モーダルが開き、編集することができます。 起票を取りやめる場合は、このメッセージ自体を削除してください。

スクリーンショットなどのファイルを添付する場合は

  1. 「Attach file」をクリック
  2. チャット欄で「+」ボタンからファイルを添付
  3. @AWS Supportのメンションをつけて送信

すると、ファイルがアップロードされ Review の内容が更新されます。

内容に問題がなければ「Create case」をクリックします。 ケースの起票に成功したら、以下のような通知が届きます。

以降、当該ケースに関するサポートとのやりとりはこのスレッドに追加で通知されます。

備考

  • コンソールから起票した場合でも channel に通知が届きます。
  • 言語で English を選択した場合はオペレーターとのやりとりに Live Chat も選択でき、Slack 上で直接オペレータとチャットができるようです(こちらはまだ試していません)。

AWS Support からの回答への対応(返信 / 解決)

AWS Support からの通知には「See details」のボタンが設置されています。 これをクリックすると、ケースの詳細がメッセージとして表示されます。 メッセージ下部には以下のようにボタンが設置されています。

「Reply」を押すと返信用のモーダルが表示されます。

「Resolve」または「Reopen」を押すとケースを解決または再開できます。

ケースの検索

/awssupport search をチャット欄に入力し送信すると、ケース検索のフォームが表示されます。

検索条件を入力し「Search」を押すと結果が表示されます。

検索結果の各ケースの「See details」を押すと詳細が表示され、回答への返信やケースの解決または再開ができます。

Service Quota (上限緩和)申請

/awssupport quota をチャット欄に入力し送信すると、Service Quota 申請用のモーダルが表示されます。

デフォルト・現在の設定値が両方とも表示されるのが便利です。

必要事項を記入し終えたら「Submit」を押して申請完了です。

まとめ

今回は AWS Support App in Slack の導入方法と使い方について紹介しました。 コンソール での操作と比較して感じたメリットとしては

  • ログインの手間が省ける
  • (ブラウザで発生する)画面遷移時のロード時間がない or 体感で少ない
  • ケース起票者以外の関係者でもサポートからの回答がきたことに気づきやすい
  • ケースを探す際に Slack 検索を使ってキーワード検索ができる
    • /awssupport search ではできない

といったところでしょうか。

一方で、障害や不具合の発生時にサポートに問い合わせる際は、コンソールでリソースの ID を調べつつ文章を書くことも多いです。 その場合、結局コンソールにログインするため、「ログインの手間が省ける」がメリットになる状況は限定的かもしれません。

導入したてなこともあり社内で活用されてるとはまだまだ言い難い状況ですが、より便利な使い方を模索して、多くの社内のエンジニアに使ってもらえるようにしていきたいです。