クラウド エンジニアブログ

CloudFormationで始めるDR対策 2

ソニービズネットワークス 開発本部 インテグレーション部の濱田 一成です。

「CloudFormationで始めるDR対策」シリーズの、2回目です。 前回は本シリーズで扱う事例のご紹介で終わってしまいました。 今回はCloudFormationの概要と、サンプルコード、ユースケースをご紹介致します。

CloudFormationとは?

CloudFormationとは、Infrastructure as Codeを実現する為に、AWSが提供するマネージドサービスです。 私が運用保守をやっていた頃、サーバ構築といえば、仮想マシンを立ち上げて、OSをインストールして、ミドルウェアを設定する、というイメージでした。 CloudFormationは、これらの設定を全てコードで記述し、実行するだけでリソースを構築できます。

案ずるより産むが易し、という事で、サンプルコードで体験してみましょう!

CloudFormationハンズオン

注意事項

CloudFormation自体に課金はありませんが、CFnで立ち上がるEC2インスタンスは課金されます。 本ハンズオンを実施した方は、作成したスタックを必ず削除して下さい。

事前準備

  • ・立ち上げるインスタンスのAMI IDを控える
    • – 東京リージョンでの例: ami-08a8688fb7eacb171 (2022/02執筆時点)

本手順

  1. テンプレート保存 「sample.yaml」というファイルを作成し、以下の内容をコピーペーストし保存
    AWSTemplateFormatVersion: 2010-09-09

    Parameters:
     ImageId:
      Type: AWS::EC2::Image::Id
     KeyName:
      Type: AWS::EC2::KeyPair::KeyName
     SecurityGroupId:
      Type: AWS::EC2::SecurityGroup::Id
     SubnetId:
      Type: AWS::EC2::Subnet::Id
    Resources:
     EC2Instance:
      Type: ‘AWS::EC2::Instance’
      Properties:
       ImageId: !Ref ImageId
       InstanceType: “t2.micro”
       KeyName: !Ref KeyName
       NetworkInterfaces:
        DeleteOnTermination: ‘true’
        Description: Primary network interface
        DeviceIndex: 0
        AssociatePublicIpAddress: ‘false’
        SubnetId:
         Ref SubnetId
        GroupSet:
         – !Ref SecurityGroupId
       BlockDeviceMappings:
        – DeviceName: ‘/dev/xvda’
        Ebs: DeleteOnTermination: ‘true’
    

     

  2. CloudFormationコンソールにて、スタックの作成を押下 CloudFormationコンソール

  3. スタックの作成にて、以下を選択し次へ
    • ・前提条件: 「テンプレートの準備完了」
    • ・テンプレートの指定: 「テンプレートファイルのアップロード」
    • ・「ファイルの選択」: 最初に保存した「sample.yaml」を選択

    CloudFormation スタックの作成

  4. スタックの詳細を設定にて、以下を設定し次へ
    • ・スタックの名前: 任意
    • ・パラメータ
      • – ImageId: 事前準備で控えたAMI ID
      • – KeyName: プルダウンより任意のものを選択ト
      • – SecurityGroupId: プルダウンより任意のものを選択
      • – SubnetId: プルダウンより任意のものを選択

      CloudFormation スタックの詳細を指定

  5. オプションの設定は何も設定せず次へ
  6. レビューは何も設定せず、スタックの作成を押下
    • ・テンプレートのプロビジョニングが始まる
  7. スタックのステータスが「CREATE_COMPLETE」になったら完了
    • ・EC2コンソールを確認すると、インスタンスが1台立ち上がっている筈です EC2コンソールを確認
    • ・削除する際は、作成したスタックを選択して削除を押下

以上でハンズオンは終了です。 私が初めてCloudFormationでサーバを構築した時、あまりの手軽さにとても感動した事を覚えています。

ユースケース

CloudFormation(というか、Infrastructure as Code)の最大の特徴は、再現性にあります。
要は、何度実行しても同じものを作成できるという事です。
この特徴を活かして、以下の様に利用される事が多いです。

  • ・検証 / 本番環境のテンプレート管理
  • ・検証環境のスクラップ & ビルド
  • ・バックアップ & リストア

弊社システムの基盤構築でも1枚のテンプレートで検証・本番環境を作成・管理しているものがあります。

終わりに

今回はCloudFormationの特徴を簡単にご紹介しました。
自分の作ったコードが思い通りに動くのって楽しいですよね。
次回は第一回でご紹介した事例のテンプレートを作成し、記述する際のポイントまでご紹介する予定です(字数的にどうなるか……)

ここまでお読み下さり、有難うございました。

参考

AWS導入支援サービス

リーズナブル&豊富なメニューで AWS導入をワンストップサポート

マネージドクラウド with AWS

はじめてのAWSから 一歩進んだ活用までトータルサポート

関連コラム

このコラムに関連する製品

このコラムに関連する
導入事例

CloudFormationで始めるDR対策 2

SHARE
シェアシェア ポストポスト
CloudFormationで始めるDR対策 2
SHARE
ポスト シェア