事の起こり
AWS上にWordPressサーバを建てていたときに、CloudFormationのサンプル1をもとにyamlを書いていた。
PHPのバージョン引き上げるのにamazon-linux-extrasを使いたかったこともあり、Amazon LinuxからAmazon Linux 2に変更したところCloudFormationが通らなくなった。
問題のコード
AutoScalingのインスタンス起動時にこけていることはわかっていたので、コードを消したり戻したりを繰り返した結果以下のコードが原因と判明。
yum update -y aws-cfn-bootstrap
aws-cfn-bootstrapが何者かよくわからずに使っていたので公式のドキュメント2を改めてよく読むと以下の記述があった。
Amazon Linux AMI イメージ
AWS CloudFormation ヘルパースクリプトは Amazon Linux AMI イメージにプレインストールされています。
Amazon Linux AMI の最新バージョンでは、スクリプトは /opt/aws/bin にプレインストールされています。
以前の Amazon Linux AMI バージョンでは、スクリプトを含む aws-cfn-bootstrap パッケージは、Yum リポジトリにあります。
その他のプラットフォーム用パッケージのダウンロード
Amazon Linux AMI イメージと Microsoft Windows (2008 以降) を除く Linux/Unix ディストリビューション用に、aws-cfn-bootstrap パッケージをダウンロードできます。
Amazon LinuxにプレインストールされているならAmazon Linux 2にもあると勝手に思っていたけど、そんなことどこにも書いてないんですね。
updateをinstallに変えたら無事通りました。
結論
いい加減WordPressやめてAmplifyでReactとかVue.jsを使ったページ作れって話なんですが、そこまでの気力がなかったので妥協した結果がこれでした。
いろいろ勉強にはなったんですがやっぱり楽するための苦労は妥協すべきではないですね。