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クライアントでアクセスしてみましょう。

      インスタンスへの接続

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