かべぎわブログ

技術的なことについてかけたらいいな…

CloudFormationでインスタンスにElasticIPを関連付けて作成する

今回はAWSのCloudFormationを利用してElasticIPを関連付けた状態でEC2インスタンスを作成してみたいと思います。

Amazon Web Servicesではじめる新米プログラマのためのクラウド超入門

Amazon Web Servicesではじめる新米プログラマのためのクラウド超入門

コード

gistabfebd7c1e9048e60c0ce3cf9eb7228d

各項目の説明

  • Instance - EC2インスタンスの設定
    • AvailabilityZone - ap-northeast-1aのようにリージョンも含めた記載で書きます。このAZにインスタンスが構築されます。
    • ImageId - インスタンス構築に利用するAMIのIDです。今回はAmazonLinuxの最新版を利用します。
    • InstanceType - そのまま構築したいインスタンスタイプを指定します。
    • KeyName - 構築したインスタンスにログインするためのキーペア名を指定します。
    • SecurityGroupIds - アタッチするセキュリティグループを指定します。複数個指定できます。
    • SubnetId - インスタンスを配置するサブネットのIDを指定します。
    • Tags - KeyValueのセットでタグを指定します。複数指定可能です。

     

  • ElasticIP - ElasticIPを払い出す
    • Domain - vpcstandardを指定します。VPCでElasticIPを利用する場合はvpcを、standardはEC2-Classicを利用する際に利用します。

     

  • ElasticIPAssociate - ElasticIPをインスタンスに関連付ける
    • AllocationId - !GetAtt ElasticIP.AllocationIdでElasticIPに割りあてられたIDを取得します。
    • InstanceId - !Ref Instanceで作成したインスタンスのリソースIDを取得します。

まとめ

"AWS::EC2::EIP"でElasticIPを払い出して
AWS::EC2::EIPAssociationで関連付け
!GetAtt ElasticIP.AllocationIdでElasticIPのIDを取得して
InstanceId: !Ref Instanceで作成したインスタンスのResourceIDを取得しています。

インスタンスを構築して、ElasticIPを取得して、付与するという3Stepの作業をすることになるのですこしコードは長くなりますが、やってることひとつひとつは単純ですね。

Amazon Web Servicesではじめる新米プログラマのためのクラウド超入門

Amazon Web Servicesではじめる新米プログラマのためのクラウド超入門