0
0

More than 3 years have passed since last update.

CloudformationでEC2を作った話

Posted at

はじめに

CloudformationでEC2の構築+ユーザデータでM/W導入を自動化しようと思いました。
結論から言うとユーザデータ関連のテンプレートフォーマットエラーが解消できず、ただ単にCloudformationでEC2を作るだけの平凡な結果に終わってしまいました。

それでもCLoudformationについて多少勉強になったのでまとめます。
(今後解決策が見つかったら更新します)

やろうとしたこと

  • EC2インスタンスを作成
  • テンプレートを修正せずに最新バージョンのAmazon Linux 2のAMIで起動させる
  • ユーザデータでterraformをインストール【失敗】

terraform導入

まずはユーザデータ作成のためEC2上で普通に導入しました。
特に理由はありませんが、何となくrootのプロファイルにPATHを追加する手順も入れました。

$ sudo yum install wget unzip
$ wget https://releases.hashicorp.com/terraform/0.12.20/terraform_0.12.20_linux_amd64.zip
$ sudo unzip terraform_0.12.20_linux_amd64.zip -d /usr/local/bin/
$ sudo sed 's|^PATH=\$PATH:\$HOME/bin|PATH=\$PATH:\$HOME/bin:/usr/local/bin|g' /root/.bash_profile > /tmp/bash_profile_tmp
$ sudo chown root.root /tmp/bash_profile_tmp
$ sudo mv /tmp/bash_profile_tmp /root/.bash_profile

※補足
・sedは通常「sed 's/~/~/g'」のように書かれることが多いですが、「/」の部分は別の記号に置き換え可能で、今回のようにディレクトリパスを記載する場合は「/」以外にすると便利です。
・terraformのダウンロードURLは公式ページを参照下さい。

Cloudformationテンプレート

最終的にうまく行ったVersionを載せます。
(デザイナーでガワだけ作成し、残りは公式ページ他を見ながら記載)

AWSTemplateFormatVersion: 2010-09-09
Metadata:
  'AWS::CloudFormation::Designer':
    389e90b9-2b30-43fa-a312-411827e53a79:
      size:
        width: 60
        height: 60
      position:
        x: 375
        'y': 125
      z: 0

Parameters:
    Ec2ImageId:
        Type: AWS::SSM::Parameter::Value<String>
        Default: /aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp
    Ec2InstanceType:
        Type: String
        Default: t2.micro

Resources:
  EC2I4K5C4:
    Type: 'AWS::EC2::Instance'
    Properties: 
        ImageId: !Ref Ec2ImageId
        InstanceType: !Ref Ec2InstanceType
    Metadata:
      'AWS::CloudFormation::Designer':
        id: 389e90b9-2b30-43fa-a312-411827e53a79

※補足
・AMIのイメージはSSMのパラメータ経由で指定すると常に最新版を取得できます。
(SOAの試験でも出たような気がします)
・本当はこれに「KeyName(キーペア名)」と「UserData(ユーザデータ)」を入れたかったのですが、フォーマットエラーを解消できずに断念。

スタック作成時の注意点

テンプレートを試す際はスタック作成失敗時にロールバックを無効にしておきましょう。
(でないと、失敗しても何のエラーも出さず、デバッグが何もできなくなります)

image2.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0