AWS-CloudFormation

Amazon Lightsail のインスタンスをCloudFormationで作ってみた

皆さんこんにちは。エンジニアの川合です。

Amazon LightsailのインスタンスをCloudFormationで管理できるという公式のお知らせを見つけて、すぐに試そうと思っていたのですがかなり遅くなってしまいました。

Amazon Lightsailでは、インスタンスの作成が簡単に出来るようになっているのに、あえてCloudFormationで作る意味もないのかな?と思いましたが物は試しという事でとりあえず触ってみました。

AWS 各種ドキュメント

〇お知らせ
https://aws.amazon.com/jp/about-aws/whats-new/2021/10/amazon-lightsail-support-aws-cloudformation-instances-disks-databases/

〇Amazon Lightsail ドキュメント
https://lightsail.aws.amazon.com/ls/docs/en_us/articles/creating-resources-with-cloudformation

〇CloudFormation Lightsail resource type reference
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_Lightsail.html

YAMLファイルの用意

CloudFormationでインスタンスを作成する際に利用するYAMLファイルのリファレンスは、以下の内容です。
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-instance.html

このリファレンスから、今回利用する以下のYAMLファイルを用意してみました。

AWSTemplateFormatVersion: '2010-09-09'
Description: Amazon Lightsail Instance Template

Resources:
  Lightsail:
    Type: AWS::Lightsail::Instance
    Properties:
      AvailabilityZone: ap-northeast-1a
      BlueprintId: amazon_linux_2
      BundleId: nano_2_0
      InstanceName: kawaitest

※備考※
ドキュメントの雛形同様にAvailabilityZoneを指定して作っていますが、リージョンやAZに関する部分は読み取り専用であまり積極的に利用する部分ではないようです。

用意するYAMLファイルで肝となる部分は、【BlueprintId】と【BundleId】です。
BlueprintId は、利用するイメージを選択する箇所となり、
BundleId は、作成するインスタンスのサイズを指定する部分です。

この部分があえてCloudFormationで実行する事に対するメリットがないと感じた部分で、このパラメーターを調べるには、AWS CLI を使うしかないようです。
インスタンスサイズは今後大きく変わる事はないかと思いますが、利用するイメージは対応OSの追加、バージョン等で変更頻度が高いように感じます。いい感じにマッピング出来れば変わるかと思いますが、今後も情報は追っていきたいと思います。

〇AWS CLIでAmazon Lightsail インスタンスを管理するには
https://aws.amazon.com/jp/premiumsupport/knowledge-center/lightsail-aws-cli-commands/

CloudFormationを実行してみる

今回は、東京リージョンを利用しますのでCloudFormationを実行する際には選択しているリージョンが東京リージョンである事を確認して実行します。
※オレゴンリージョンで検証していたYAMLファイルを間違って実行した際は、東京リージョンのAZを指定しろと怒られました。

リージョン部分以外で特にエラーとなる箇所もありませんので、正常に終了するはずです。

Amazon Lightsai インスタンスの確認

CloudFormationの実行が完了後少しタイムラグがありますが、Amazon Lightsailのインスタンスが作成されている事が確認できます。

YAMLファイルでは、キーペアはしていませんがデフォルトのキーペアが合わせて作成されています。
指定のキーファイルがある場合は、YAMLファイルで指定することが出来ます。

対象のインスタンスをCloudFormationで作成していますので、スタックを削除するとインスタンスも合わせて削除してくれます。

まとめ

とりあえず、ドキュメントをなぞってみてAmazon Lightsailのインスタンスを作成する部分までCloudFormationで実施してみました。

静的IPアドレスの割り当て、ロードバランサーの作成、データベースの作成等まだまだ出来る部分はあるようですので、時間を見つけてもう少し触ってみたいと思います。

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA