CloudFormationを用いたEC2 AutoScalingGroupスタックの作成

CloudFormationを用いたEC2 AutoScalingGroupスタックの作成

20新卒入社の加島です。

最近はAWSをやっているのでAWSの周辺で検証をしてみようかと思います。

今回はCloudFormation(以下CFn)を用いたEC2 Auto Scaling Groupスタックの作成を目指します。

目次

    目標とする構成

    次の図の通りです:
    目標構成図

    VPCの中にサブネットを切って、そのサブネットの中にAuto Scaling によってインスタンスが作られるというのを目指します。

    Auto Scaling Groupには起動設定が食わせてあり、インスタンスはこの起動設定に応じて適切に作成されます。

    ネットワークスタックの作成

    Auto Scaling Groupスタックの作成の前に、まず、VPCを作っていきましょう。

    チュートリアル: 別の AWS CloudFormation スタックのリソース出力を参照するのステップ1を参考にしています。

    まず次のようなyaml形式のファイルを作りましょう。
    大雑把には以下を行うテンプレートです。

    • VPCを作る
    • サブネットを切る
    • インターネットゲートウェイを作る
    • VPCにインターネットゲートウェイをアタッチする
    • ルートテーブルを作成する
    • 上記ルートテーブルにインターネットに出られるように設定を行う
    • サブネットにルートテーブルを関連付ける
    • あるIPアドレスからのSSH接続だけ許すようなセキュリティグループを作成する
    • 作ったリソースを他のスタックが名前で参照できるようにする

    作成したらAWSマネジメントコンソールでCloudFormation > スタックから「スタックの作成」を行いましょう。

    「スタックの作成」で、テンプレートの準備では「テンプレートの準備完了」を選択し、テンプレートの指定では作成した上記テンプレートファイルをアップロードすればOKです。

    スタックの作成

    次に「スタックの詳細を指定」で、スタックの名前といくつかのパラメータの設定を行います。

    スタックの名前は何でも構いませんが、後述の手順でこの名前を用いるので控えておいてください。この記事では "NetworkStack" とします。

    パラメータは上で示した構成図と合わせるのであればPublicSubnetACidrBlockでは"10.2.1.0/24"、VpcCidrBlockでは"10.2.0.0/16"を指定してください。

    スタックの詳細を指定

    あとは次へを何度かクリックするだけで大丈夫です。しばらく待てばネットワークスタックが完成します。

    Auto Scaling Group スタックの作成

    では本編、AutoScalingGroupスタックの作成に入ります。

    手順としては起動設定の作成->Auto Scaling Groupの作成となります。

    次のようなyaml形式のファイルを作りましょう。
    大雑把には以下を行うテンプレートです。

    • 起動設定を作成する
      • AMIはAmazon Linux AMIとする
      • インスタンスタイプは t2.micro とする
      • 作成したセキュリティグループと関連付ける
    • Auto Scaling Groupを作成する
      • 作成したサブネットと関連付ける
      • インスタンスは1つだけ起動する
      • 作成したインスタンスはわかりやすいように名前をつけておく 

     

    作成したらAWSマネジメントコンソールでCloudFormation > スタックから「スタックの作成」を行いましょう。

    ネットワークスタック同様に作成したyamlファイルはアップロードしてください。

    詳細設定でのスタック名は任意の名前で構いません。一方でパラメータ設定では、先に作った「ネットワークスタック」の名前を正しく入力する必要があります。本記事では"NetworkStack"です。

    あとは次へを何度かクリックするだけです。

    作成に随分と時間がかかりますが、しばらく待てばAuto Scaling Group スタックが作成され、インスタンスも起動します。

    インスタンスへの接続

    インスタンス一覧を見ればAuto Scalingによって作成されたインスタンスのパブリックIPアドレスが表示されているはずなので、お好きなSSHクライアントでアクセスしてみましょう。

    インスタンスへの接続

    はい、見慣れた表示がされましたね。これで完了です!

    アジアクエスト株式会社では一緒に働いていただける方を募集しています。
    興味のある方は以下のURLを御覧ください。