既存の EC2 インスタンスタイプの変更後に、インスタンスが起動しなくなった時の話

記事タイトルとURLをコピーする

みなさん、こんにちは。AWS CLI が好きなテクニカルサポート課の市野です。

EC2 インスタンスの変更時に、AMI が対応しているアーキテクチャや仮想化タイプであることを確認し問題ないと思っていたのに、インスタンスタイプ変更後に起動しない事象でハマってしまったためその時のメモです。

事象の発生までの道のり

t2.micro として構築されているインスタンスを t3a.micro に変更して起動を試みた時にそれは起こりました。

インスタンスの停止&停止状態となるまで待機

aws ec2 stop-instances \
  --instance-id ${INSTANCE_ID} && \
aws ec2 wait instance-stopped \
  --instance-ids ${INSTANCE_ID}
{
    "StoppingInstances": [
        {
            "CurrentState": {
                "Code": 64,
                "Name": "stopping"
            },
            "InstanceId": "i-xxxxxxxxxxxxxxxxx",
            "PreviousState": {
                "Code": 16,
                "Name": "running"
            }
        }
    ]
}
hoge@MacBook-Air ~ %

インスタンスタイプの変更

aws ec2 modify-instance-attribute \
  --instance-id ${INSTANCE_ID} \
  --instance-type t3a.micro
# 戻り値なし
hoge@MacBook-Air ~ %

インスタンスの起動&実行中となるまで待機

aws ec2 start-instances \
  --instance-id ${INSTANCE_ID} && \
aws ec2 wait instance-running \
  --instance-ids ${INSTANCE_ID}

An error occurred (Unsupported) when calling the StartInstances operation: The requested configuration is currently not supported. Please check the documentation for supported configurations.
hoge@MacBook-Air ~ %

インスタンスタイプ変更後の起動のタイミングでエラーが発生し、起動することができない状態に陥ってしまいました。

なお、エラーメッセージとして The requested configuration is currently not supported. Please check the documentation for supported configurations. と表示され、リクエストした構成が今はサポートされていないと言われているようです。

念の為、AWS マネジメントコンソールからの起動を行っても、以下のようなエラーメッセージの表示がされました。
AWS CLI での実行時と同様ですね。

原因と対策

結論としては、利用したいインスタンスタイプが、EC2 の起動を試みていた AZ で利用ができない状態だったようです。

具体的には、私の検証環境で ap-northeast-1c と表示される AZ(AZ ID としては apne1-az1)で t3a インスタンスを起動をしようとしていたことに起因していたようです。

確認方法

確認方法:AWS CLI での場合

ec2 describe-instance-type-offerings サブコマンドを利用することにより、確認をすることが可能です。

以下は、東京リージョンに存在するアベイラビリティーゾーン内で、t3a.micro インスタンスを対象に調査を行う例です。
なお、インスタンスタイプに、ワイルドカード(*)を利用し、広く調査をすることも可能です。

aws ec2 describe-instance-type-offerings \
  --location-type availability-zone \
  --filters \
    "Name=location,Values=ap-northeast-1*" \
    "Name=instance-type,Values=t3a.micro" \
  --output table

# 実行後、以下のように結果が得られます。(結果は 2022-09-14 時点での結果となります。)
------------------------------------------------------------
|               DescribeInstanceTypeOfferings              |
+----------------------------------------------------------+
||                  InstanceTypeOfferings                 ||
|+--------------+-------------------+---------------------+|
|| InstanceType |     Location      |    LocationType     ||
|+--------------+-------------------+---------------------+|
||  t3a.micro   |  ap-northeast-1d  |  availability-zone  ||
||  t3a.micro   |  ap-northeast-1a  |  availability-zone  ||
|+--------------+-------------------+---------------------+|

上記の通り、ap-northeast-1a と ap-northeast-1d だけが利用可能とのことです。

確認方法:AWS マネジメントコンソールでの場合

AWS マネジメントコンソールでの手順は UI が変わってしまうとかえって混乱の元になってしまう点が難点ですが、一応現時点では以下の手順で確認ができます。

  1. EC2 メニューへ移動し、左ペインの「インスタンス」→「インスタンスタイプ」をクリックし、インスタンスタイプメニューへ移動します。
  2. (初回ご利用時)一覧表上部の歯車アイコンをクリックし、ポップアップ画面の設定メニュー内で、属性列の「アベイラビリティーゾーン」を有効化します。
  3. 一覧表の、アベイラビリティーゾーン列に、利用可能なアベイラビリティーゾーンが列記されます。

注意点

上記の確認で、利用したいインスタンスタイプが利用したいアベイラビリティーゾーンで問題なく利用できる場合は、以下の要件に抵触していないか、今一度、確認する必要があると思います。

  • 新しいインスタンスタイプの要件が満たされていない
  • AMI がインスタンスタイプをサポートしていない
  • インスタンスがクラスタープレイスメントグループに属している

参考文献:インスタンスタイプ変更のトラブルシューティング

おすすめ

以下のブログで、弊社の佐竹が定期的に東京リージョンで構築可能なインスタンスタイプのアベイラビリティーゾーン別の一覧表をまとめていますので、東京リージョンをお使いの場合はご参考にしていただくと良いかと思います。

blog.serverworks.co.jp

市野 和明 (記事一覧)

マネージドサービス部・テクニカルサポート課

お客様から寄せられたご質問や技術検証を通じて得られた気づきを投稿していきます。

情シスだった前職までの経験で、UI がコロコロ変わる AWS においては GUI で手順を残していると画面構成が変わってしまって後々まごつくことが多かった経験から、極力変わりにくい AWS CLI での記事が多めです。

X(Twitter):@kazzpapa3(AWS Community Builder)