[Amazon Connect]同一AWSアカウント・同一リージョン内にあるインスタンス間で電話番号を移行してみる

同一AWSアカウント・同一リージョンにあるAmazon Connectインスタンス間で電話番号を移行してみる
2024.03.22

こんにちは、洲崎です。
AWS CLIを使って、同一AWSアカウント・同一リージョン内にあるAmazon Connectインスタンス間で電話番号を移行してみました。

Amazon Connectインスタンス間での電話番号の移行

Amazon Connectで利用する電話番号は、Amazon Connectの「インスタンス」ごとに設定されています。

Amazon Connectのインスタンス間で電話番号を移行したいケースとしては、以下が挙げられます。

開発環境として使っていた電話番号を別の本番環境で利用したい場合

開発環境で電話番号を取っていたが、訳があって別の本番環境で同じ電話番号を利用したいケースです。

Amazon Connectのユーザー認証方式を変更したい場合

あとからAmazon Connectの「ユーザー認証方式」を変更するために、新規で立ち上げたインスタンスに移行するケースです。
個人的には、こちらのケースの方が多いのではと感じます。
Amazon Connectのユーザー認証の方法は以下の3パターンが挙げられます。

  • Amazon Connect上で管理するユーザー名/パスワードを使ってログインを行う
  • AWS Directory Serviceと連係してログイン認証を行う
  • SAML 2.0ベースの外部IDプロバイダーと連係してログイン認証を行う

たまに、最初はAmazon Connectの「ユーザー/パスワード管理」だったが、後から会社の方針などで「SAML 2.0ベースの認証に変更したい」といった話を伺います。
Amazon Connectは仕様上、インスタンス作成後にユーザー認証方式を変更することはできません。
その場合、新たに「SAML2.0ベース」のインスタンスを立ち上げて、電話番号を移行することで対応できます。

Amazon Connectのインスタンス間でリソースを移行する際、電話番号以外にも以下の項目等の検討が必要です。

  • 問い合わせフロー
  • ユーザー
  • キュー
  • クイック接続
  • ルーティングプロファイル
  • セキュリティプロファイル
  • 営業時間
  • エージェントステータス

(参考)Amazon Connect インスタンスをテスト環境から本番環境に移行することは可能ですか?

今回はまず代表的なものとして「電話番号」を、AWS CLIを利用して移行してみます。

注意事項

AWS CLIを利用して電話番号を移行できるのは、Amazon Connectのインスタンス間(移行元・移行先)が同一AWSアカウント・同一リージョンにある場合のみです。
もしAmazon Connectインスタンス間で異なるリージョンまたは異なるAWSアカウントにある場合、AWSサポートケースを作成して申請する必要があります。
(参考)Amazon Connect インスタンスが異なるリージョンまたは異なる AWS アカウントにある

やってみる

早速、インスタンス間で電話番号の移行をやってみます。
classmethod-suzakiからclassmethod-suzaki-saml-2-0に電話番号を移行してみます。

移行元のAmazon ConnectインスタンスのARNを控えます。

Amazon Connectコンソールに入り、移行する電話番号を控えておきます。

キューの「アウトバウンド発信者ID番号」に設定している場合、電話番号の紐付けを解除します。

AWS CLIを実行するターミナルを開きます。
(AWS CLIを利用する環境に特にこだわりがない場合、マネジメントコンソールの左下から起動できるCloudShellが便利です)

以下のコマンドを実行します。
控えた移行元のインスタンスARNと、PhoneNumberの部分は+81形式で電話番号を入力します。

aws connect list-phone-numbers --instance-id {控えた移行元のインスタンスARN} --query 'PhoneNumberSummaryList[?PhoneNumber==`+xxxxxxxxxxx`]'

実行すると、以下のJSONが出力されます。
2行目にあるIdは移行対象の電話番号のIDなので、控えておきます。

  {
        "Id": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
        "Arn": "arn:aws:connect:ap-northeast-1:xxxxxxxxxxxx:instance/xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx/phone-number/xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
        "PhoneNumber": "+81xxxxxxxxxx",
        "PhoneNumberType": "DID",
        "PhoneNumberCountryCode": "JP"
    }

移行先のAmazon ConnectインスタンスARNを控えます。

AWS CLIで以下のコマンドを実行します。
PhoneNumberIdはさきほど控えた電話番号のID、TargetInstanceARNは移行先のインスタンスARNを入力します。

aws connect update-phone-number --phone-number-id [PhoneNumberId] --target-arn [TargetInstanceARN]

以下のJSONが返ってきたら、成功です。

{
    "PhoneNumberId": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
    "PhoneNumberArn": "arn:aws:connect:ap-northeast-1:xxxxxxxxxxxx:phone-number/xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx"
}

移行先のインスタンスで確認すると、電話番号が移行されている確認がとれました!

最後に

同一AWSアカウント・同一リージョンにあるAmazon Connectインスタンス間で電話番号の移行を試してみました。
Amazon Connectのインスタンス間でも電話番号を移行したいケースはあると思います。
もし同一AWSアカウント・同一リージョンであれば、AWS CLIで簡単にできるので試してみてください。

ではまた!コンサルティング部の洲崎でした。