エンジニアはこわくない

好きなように書く

セキュリティグループ付きのEC2インスタンスをcloudformationで作成する


スポンサーリンク

f:id:tsujitaku50:20170121194543p:plain

こんにちは、つじたく(@Tsuji_Taku50)です。

今回はcloudformationを利用して、sshで接続できるEC2インスタンスを作成しました。

cloudformationについて前にブログで書いたので、そちらを御覧ください。 tsujitaku50.hatenablog.com

今回もyamlで書きました。

公式ドキュメント

EC2インスタンスはこちら docs.aws.amazon.com

セキュリティーグループこちら docs.aws.amazon.com

ソースコード

リージョンは「米国東部 (オハイオ)」を選択しています。

---
AWSTemplateFormatVersion: '2010-09-09'
Description: It is an instance
Resources:
  # インスタンス
  Instance:
    Type: "AWS::EC2::Instance"
    Properties:
      AvailabilityZone: us-east-2a
      ImageId: ami-c55673a0
      InstanceType: t2.nano
      KeyName: xxx
      SecurityGroups:
      - default
      - !Ref InstanceSecurityGroup

  # セキュリティーグループ
  InstanceSecurityGroup:
    Type: "AWS::EC2::SecurityGroup"
    Properties:
      GroupDescription: ssh
      SecurityGroupIngress:
        -
          IpProtocol: "tcp"
          FromPort: "22"
          ToPort: "22"
          CidrIp: "xxxx"

上記のソースコード

sshで接続するセキュリティーグループを付属させたEC2インスタンスを作成することができます。

KeyName : キーペア名を記載する

CidrIp : 接続を許可したいIPアドレスを記載する

!Refは同じyamlファイルの中で定義された関数を使用することができます。

今回の例で言うと、InstanceSecurityGroupInstanceに付属させています。

このようにすることで、インスタンス作成した時にセキュリティーグループを付属させた状態で作成することが可能です。

まとめ

このテンプレートと一度用意しておけば、次からはすぐにsshで接続できるEC2インスタンスを作成することができるのでめちゃくちゃ便利です!

何か思いついたときにサクッとインスタンスが欲しいなーなんてときはいいですね。

おわり!!