長いEC2リソースIDが利用可能になりました

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

昨年11月、大きな仕様変更の注意喚起がAWSより出されました。

これは、2016年中に、EC2の

  • インスタンス
  • レザベーション(インスタンス起動リクエスト毎に発行されるID)
  • ボリューム
  • スナップショット

を示すリソースIDが、長いフォーマットに変更されるというものです。詳細はAWSのFAQに記載された「より長い EC2 および EBS のリソース ID」をご覧下さい。

今回、移行期間中の検証を目的に、長いフォーマットでの利用を選択することが可能になりました!

幾つか注意事項をまとめます。

  • 今回長いフォーマットが選択できるようになったのは、インスタンスIDとレザベーションID。EBSボリュームIDとスナップショットIDの対応は4月頃を予定しているとのこと。
  • 長いフォーマットの利用選択はIAMユーザー毎及びリージョン毎に設定できる。
  • 再度旧来のフォーマットに戻すことも可能。
  • 利用選択する前に作られたリソースは旧来のフォーマットのまま。
  • 2016年3月7日以降に作成されたAWSアカウントは、デフォルトで長いインスタンスIDとリザベーションIDになる。旧来のフォーマットに戻すことは可能。

やってみた

まずは普通にEC2インスタンスを起動した状態です。短いインスタンスIDになっています。

EC2_Management_Console

レザベーションIDも、以下のように短いIDとなっています。

EC2_Management_Console 2

それでは長いフォーマットを選択してみましょう。EC2 Dashboard画面から[Resource ID length management]をクリックします。

EC2_Management_Console 3

[Resource ID length management]が表示されます。[Use Longer IDs]にチェックが入っていないことがわかります。

EC2_Management_Console 4

[Use Longer IDs]にチェックを入れます。なお、反映には数分かかります。

EC2_Management_Console 5

チェック後にEC2インスタンスを起動すると...以下のように長いフォーマットのインスタンスIDになっています!

EC2_Management_Console 6

レザベーションIDも同様に長いフォーマットになっています。

EC2_Management_Console 7

前述の通り、この設定はIAMアカウント毎及びリージョン毎に有効となります。Longer IDsを有効にしたのは東京リージョンなので、オレゴンリージョンで設定を確認すると...

EC2_Management_Console 8

以下のように、[Use Longer IDs]にチェックがついていない状態になっています。

EC2_Management_Console 9

この設定は、チェックを外すだけですぐ解除でき、短いIDの利用に戻すことができます。

なお、今回はAWS管理コンソール上から行いましたが、もちろんCLIやSDKからも可能です。

さいごに

リソースIDに依存したシステムやスクリプトがある場合には、桁溢れや正規表現のアンマッチなどに注意する必要があります。今後は長いフォーマットがデフォルトになりますので、2016年中にしっかりとテストしておきましょう!