terraformでAWSリソースの変更
業務でAWSリソースをterraformを用いて変更しようとしたところ、いろいろと考慮すべき点があったので、備忘録として残しておきます。
今回はEC2インスタンスの変更について記載しますが、他のリソース変更についても記事を残して行く予定です。
エラーが出るEC2インスタンスタイプの変更
intelアーキテクチャからt4gファミリーへの変更を行う際は以下のようなエラーがでます。
│ Error: updating EC2 Instance (i-0515e532dac1baa6c) type: modifying EC2 Instance (i-0515e532dac1baa6c) attribute: InvalidInstanceAttributeValue: 't4g.micro' is not a valid instance type for instance 'i-0515e532dac1baa6c' of architecture 'x86_64'.
│ status code: 400, request id: ********************
│
│ with aws_instance.kenshou,
│ on main.tf line 3, in resource "aws_instance" "kenshou":
│ 3: resource "aws_instance" "kenshou" {
│
x86_64からArmのアーキテクチャへの切り替えはできないため、他のインスタンスタイプを選択するかAMIの変更対応を行なった上で変更対応する必要があります。
現在のインスタンスタイプがどのプロセッサを使用しているかは以下の公式サイトを参照してください。
参考: インスタンスタイプ - Amazon EC2 | AWS
エラーが出るかもしれないEC2インスタンスタイプの変更(解決可能)
古いバージョンのT2インスタンスの場合T3へと更新できない可能性があります。
それはENA拡張ネットワーキングをサポートしていない場合です。
問題がないAMIについては以下の公式ガイダンスに載っています。
参考: Linux インスタンスにおける Elastic Network Adapter (ENA) を使用した拡張ネットワーキングの有効化
また、対応インスタンスがENAの適用を行う方法もあるので、もし上記のリストを満たしていない場合でも最終的にT3インスタンスへと変更することができます。
終わりに
今回はEC2インスタンスタイプの変更時のエラーについて記載しましたが、以上二つは自分が実際に体験した範囲のものなので、実際にはより多くの変更時エラーが発生する可能性があります。