2021年10月29日にLightsailがCloudFormationに対応した旨の記事が上がっていることを発見しました!
LightsailはAWSコンソールから切り離された独自のコンソールだったので、CFnに対応したことは意外です。
しかし、CFnで管理可能になれば以前に紹介していたLightsail + CloudFrontでHTTPS通信が可能なWebサイトを実行することも一発でできるようになりますね。
今回は、サクッとLightsailインスタンスを立ち上げるCFnテンプレートを作成して試してみたので、記事にしました。
参考ドキュメント
少々見つけにくかったのですが、LightsailのCFnドキュメントは以下のURLにありました。
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-instance.html
公式ドキュメントがあるのだからCFnテンプレートの作成は誰でもできるわけですが、今回は少しだけ躓いたポイントもあるので紹介していきます。
ドキュメント内にある必須パラメータに「ブループリントID」と「バンドルID」があるのですが、これが何かご存じでしょうか?
例として出ている記述からある程度予想はつきますが、どのようなパラメータがあるか確認する方法を知らなかったので次にまとめます。
ブループリントID
ブループリントIDは、簡単に説明するとLightsailで実行するOSのことを指しています。
このIDリストは以下のAWS CLIコマンドで確認することができます。
aws lightsail get-blueprints --region ap-northeast-1 --query 'blueprints[].{blueprintId:blueprintId,name:name,group:group,productUrl:productUrl,platform:platform}' --output table
blueprintIdの欄に表示されている[amazon_linux_2]とか[wordpress]などがブループリントIDということになりますね。
バンドルID
バンドルIDはインスタンスのサイズを表します。
こちらもどのような種類があるかはAWS CLIを実行することで確認することができます。
バンドルIDごとのスペックも同時に確認できるのは便利ですね!
aws lightsail get-bundles --region ap-northeast-1 --query 'bundles[].{price:price,cpuCount:cpuCount,ramSizeInGb:ramSizeInGb,diskSizeInGb:diskSizeInGb,bundleId:bundleId,instanceType:instanceType,supportedPlatforms:supportedPlatforms[0]}' --output table
実際にCFnで作成
◆CloudFormationテンプレートはこちら
https://github.com/noname-work/aws-cloudformation/tree/master/lightsail
試しに最小サイズでWordPressイメージを立ち上げてみました。
Lightsailコンソール上では割と早くインスタンスの作成が確認できました。
ブラウザからアクセスしてみると、WordPressのHelloページが表示されていることも確認できましたね。
おわりに
LightsailがCFnに対応したことで、このブログのようにLightsail + CloudFrontによる低コストHTTPS通信のWebサイトを簡単に立ち上げることができるようになります。
以前には以下のステップを手動で設定してセットアップしていたのですが、それがテンプレート1回の実行で全て完了するようになるかもしれません。
Lightsail自体はコーポレートサイトやLPページ、社内ツールのデプロイ先など小さな用途で用いることが多いと思います。
特に社内ツールなんかはEC2で立ち上げずにLightsailに差し替えると大幅なコストカットを実現できるのでおすすめですよ!
ぜひともCFnを一発実行するだけでLightsailの環境が丸っと作れるテンプレートを書いてみてください。
コメントを残す