BETA

AWS CloudFormation練習帖:パブリックサブネットにEC2をたてる

投稿日:2019-07-16
最終更新:2019-07-18

何をする?

前提条件

  • VPCは前回のテンプレートで作成済み
  • AMIは最新のAmazonLinux2のイメージ(ami-0c3fd0f5d33134a76)を使用
  • EC2用のキーペアは作成済み(cloudformation.pem)

やってみた

テンプレートを作成

お決まりの部分

AWSTemplateFormatVersion: "2010-09-09"  
Description: "Create EC2"  

パラメータ部分

VPC作成用テンプレートで作成されたVPCのIDとパブリックサブネットのIDを指定するようにしました

Parameters:  
  ParamVpdId:  
    Description: "Created VpcId"  
    Type: String  
  ParamSubnetId:  
    Description: "Created SubnetId"  
    Type: String  

リソース部分(セキュリティグループ)

22番ポートを開放しています
VpcIdはパラメータで指定したものを参照

# リソース  
Resources:  
  # パブリックサブネット用セキュリティグループを作成  
  SecurityGroupForPublicSubnet:  
    Type: "AWS::EC2::SecurityGroup"  
    Properties:  
      GroupName: "SecurityGroupForPublicSubnet"  
      GroupDescription: "SecurityGroup For PublicSubnet"  
      SecurityGroupIngress:  
        - IpProtocol: "tcp"  
          FromPort: 22  
          ToPort: 22  
          CidrIp: "0.0.0.0/0"  
      VpcId: !Ref ParamVpdId  

リソース部分(EC2)

AmazonLinux2/t2.micro/SSD8GiBで作成します
SubnetIdはパラメータで指定したもの、SecurityGroupIdは今回作成されるものを参照

  # パブリックサブネットにEC2を作成  
  EC2onPublicSubnet:  
    Type: "AWS::EC2::Instance"  
    Properties:  
      ImageId: "ami-0c3fd0f5d33134a76"  
      InstanceType: "t2.micro"  
      SubnetId: !Ref ParamSubnetId  
      BlockDeviceMappings:  
        - DeviceName: "/dev/xvda"  
          Ebs:  
            VolumeType: "gp2"  
            VolumeSize: 8  
            DeleteOnTermination: true  
      SecurityGroupIds:  
        - !Ref SecurityGroupForPublicSubnet  
      KeyName: "cloudformation"  
      Tags:  
        - Key: "Name"  
          Value: "PublicEC2"  

リソース部分(ElasticIP)

固定IPを取得してEC2インスタンスにアタッチします
Domainはパラメータで指定したVpcIdを参照

  # ElasticIPを割り当て  
  ElasticIP:  
    Type: "AWS::EC2::EIP"  
    Properties:  
      Domain: !Ref ParamVpdId  
      InstanceId: !Ref EC2onPublicSubnet  

実行

  • パラメータ(VPCとパブリックサブネットのID)を指定して実行
  • ステータスが「CREATE_COMPLETE」になり、作成完了

結果確認

  • パブリックサブネットにEC2が起動されています
  • セキュリティグループも指定した条件で作成されています
  • 無事SSHで入ることもできました

参考情報

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

AWSやAzureについて勉強したことをつらつらと。 基本的には未来の自分に向けたメモ的な何か。

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる
技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
or 外部アカウントではじめる
10秒で技術ブログが作れます!