にほんブログ村
前回の記事で、CloudFormation がどのようなものなのかを調べてみました。
今回は、実際に使ってみたいと思います。
- テンプレートでVPC を作成する
- Ref 関数でサブネットを作成する
- その他のネットワーク関連を作成する
- EC2 のひな形を作成する
- Parameters セクションを使って、実行時にEC2 のインスタンスタイプを選択できるようにする
- Parameters + AWS 固有のパラメーターを使用して、アカウントにあるキーペアを、EC2 実行時に埋め込む
- スタックの削除する
CloudFormation を使ってみる
テンプレートから基本環境の作成
まず最初に、VPCの状況を確認しておきます。
私の環境では、東京リージョンに、現在3つのVPCがあります。
AWS の管理コンソールの検索テキストボックスから、「CloudFormation」を検索してクリックします。
CloudFormation の管理コンソールが表示されます。
「スタックの作成」をクリックします。
スタックの作成画面が表示されます。
前回のサンプルテンプレートを使用します。サンプルスクリプトを保存し、拡張子を「.yml」にしておきます。
「ファイルの選択」をクリックし、YAMLのサンプルファイルを読み込ませます。
「デザイナーで確認」をクリックすると、YAMLファイルを読み込んで作成するスタックの状況がみられます。
VPCを作成する部分だと、こんな感じですね。
画面を戻を戻ると、作成のし直しになっちゃいますね。これって、見ない方がいいのかな?
進めると、スタックの名前の画面が表示されます。
スタックの名前を入力します。
「次へ」をクリックして進みます。
スタックのオプションの画面が表示されます。
今回は特に設定しません。
「次へ」をクリックして進みます。
レビューの画面が表示されますので、内容を確認します。
「スタックの作成」をクリックして、スタックを作成します。
スタックの作成が始まりました。
画面左側のメニューで、「CREATE_COMPLETE」の緑色の文字が表示されれば、スタックの作成は完了です。
「リソース」タブをクリックすると、リソースの一覧が表示されます。
VPCとサブネットが作成されていますね。それぞれの名前を見てみると、YAMLファイルの中で指定したものになっていますね。
VPC の画面を見ていますと、先ほど3つしかなかったVPC が4つになってますね。「cfn-vpc」が、今回作成されたものです。
サブネットの画面を見てみると、サブネットも追加されてますね。「cfn-subnet」が、今回作成されたものです。
インターネットゲートウェイも見てみます。新規で作成されてますね。「cfn-igw」が今回作成されたものです。
ルートテーブルも見てみます。ルートテーブルも新規で作成されてますね。「cfn-rt」が今回作成されたものです。
設定内容を追加する
最初に作ったテンプレートに、項目を追加するということはよくあることでしょう。今度は、それを想定して、別の項目を追加して反映させてみます。
今回試してみたいのは、前回作成したサブネット上に、新規でEC2 インスタンスを起動させることです。その際に、イメージサイズを選択して起動できるようにします。
前回のテンプレートに、以下の2つを追記してみます。
起動時に、インスタンスタイプを、「t2.micro」「t2.small」「t2.medium」の3つから選べるようにします。
Parameters:
InstanceType:
Type: String
Default: t2.micro
AllowedValues:
- t2.micro
- t2.small
- t2.medium
Description: Select EC2 instance type.
KeyPair:
Description: Select KeyPair Name.
Type: AWS::EC2::KeyPair::KeyName
さらに、起動するインスタンスに、Keypairも指定できるようにします。
セキュリティーグループも作成し、SSHでのアクセスのみを許可します。
cfnEC2Instance:
Type: 'AWS::EC2::Instance'
Properties:
ImageId: !FindInMap [ RegionMap, !Ref "AWS::Region", hvm ]
InstanceType: !Ref InstanceType
SubnetId: !Ref cfnSubnet
BlockDeviceMappings:
- DeviceName: '/dev/xvda'
Ebs:
VolumeType: 'gp2'
VolumeSize: 8
Tags:
- Key: 'Name'
Value: 'cfn-ec2-instance'
SecurityGroupIds:
- !Ref cfnSecurityGroup
KeyName: !Ref KeyPair
cfnSecurityGroup:
Type: "AWS::EC2::SecurityGroup"
Properties:
GroupDescription: "cfnSecurityGroup"
VpcId: !Ref cfnVpc
Tags:
- Key: 'Name'
Value: 'cfn-ssh-sg'
SecurityGroupIngress:
- IpProtocol: tcp
FromPort: '22'
ToPort: '22'
CidrIp: 0.0.0.0/0
変更するスタック名を選択し、「変更する」をクリックします。
今回は既存のテンプレートを変更しますので、「既存テンプレートを書き換える」を選択します。
「テンプレートファイルのアップロード」を選択します。
「ファイルの選択」から、追記したテンプレートファイルをアップロードします。
「次へ」をクリックして進みます。
インスタンスを起動させる際に、インスタンスタイプとキーペアを選択できるようにしたので、選択画面が表示されました。
今回は、インスタンスタイプ「t2.micro」とキーペア「amazon-linux-test」を選択します。
キーペアで表示される内容ですが、ご使用の環境で異なります。表示荒れるのは、自分の使用しているAWSのリージョンで使用できるキーペアです。
「次へ」をクリックして進みます。
スタックのオプション画面が表示されます。
今回は、オプションは何も設定しません。
「次へ」をクリックして進みます。
レビューの画面が表示されます。
設定内容を確認します。
「スタックの変更」をクリックします。
EC2 インスタンスの作成が始まりました。
スタックの変更が完了しました。
EC2 の管理コンソールを見てみると、指定した名前でインスタンスが起動していますね。
スタックの削除
対象のスタック名を選択し、「削除」をクリックします。
確認のポップアップウィンドウが表示されます。
「スタックの削除」をクリックします。
スタックの削除が開始されました。
数分待つと、スタックが完全に削除されます。
EC2 を見てみると、先ほど起動させたインスタンスが削除されています。
VPC の方も、この動作確認向けに作成したものは消えてますね。
CloudFormationは、テンプレートを作成して必要なリソースを作成することができるので便利です。
削除も、テンプレートに記載されたリソースを個別ではなく、全てを一気に削除してくれるので便利ですね。
注意点は、CloudFormationでリソースを作成した後に、マニュアルでリソースの変更をしないことです。テンプレートの内容と不一致になりますし、後からテンプレートを編集するのも大変になります。
この教材を使って勉強してます。
「AWS認定資格試験テキスト AWS認定ソリューションアーキテクト-アソシエイト」
AWSに関連する記事:
- AWSを学ぶ(25)VPCエンドポイントを理解しよう
- MS Azure を学ぶ (0) 用語比較
- SSL証明書を簡単に取得する方法 – Wiresharkで証明書を抽出
- オンラインで簡単に証明書を発行する方法
- AWS を学ぶ(24)3つのメッセージングサービス
- AWS を学ぶ(23)CloudFormation を使ってみる
- AWS を学ぶ(22)CloudFormation とは何か?
- AWS を学ぶ(21)Elastic Beanstalk って何だろう?
- AWS を学ぶ(20)AWS Certificate Manager を使ってみる
- AWS を学ぶ(19)AWS の暗号化サービス
- AWS を学ぶ(18)CloudFront を使ってみる
- AWS を学ぶ(17)CloudWatch を使ってみる
- AWSを学ぶ(16)IAMについて
- AWSを学ぶ(15)Glacier とは何か?どの様に使うのか?
- AWSを学ぶ(14)S3とは
- AWSを学ぶ(13)VPC、EC2、ELB、Route 53 を使ってみる
- AWSを学ぶ(12)EC2のイメージ取得と起動
- AWSを学ぶ(11)ストレージサービス
- AWSを学ぶ(10)RDSとは
- AWSを学ぶ(9)ELB を使ってみよう
- AWSを学ぶ(8)CloudFront って何だろう
- AWSを学ぶ(7)Route 53 について
- AWSを学ぶ(6)EC2 を使ってみよう
- AWSを学ぶ(5)EC2の性能とコストの考え方
- AWSを学ぶ(4)EC2を理解しよう
関連する記事:
- Raspberry PiでのPi-Hole設定ガイド
- Video CC TranslatorでUdemyを快適に学ぶ
- TimeMachineEditorでMacバックアップを最適化する方法
- BanBackup でバックアップの自動化
- Raspberry Pi 4 でサイト間 VPN を作ってみよう
- 超小型 Bluetooth スピーカー EWA A106
- カラアゲニスト・パーフェクトガイド(唐揚検定)
- 任天堂 ゲーム&ウォッチ – マリオゲームで懐かしさを再体験
- Raspberry pi 4 バックアップ・リストア
- Apple AirTag を買ってみた
最近の記事:
- 複数の宛先に ping を打つことができる「fping」
- ネイティブの英語 7 “A cup of joe”
- 死刑確定囚・野比のび太 – 第二十三話・昇華するのび太の鬱屈
- 死刑確定囚・野比のび太 – 第二十二話・静の怒りと武の苛立ち
- 死刑確定囚・野比のび太 – 第二十一話・夫婦間の亀裂とのび太の影響
- 死刑確定囚・野比のび太 – 第二十話・のび太の初出勤: 恐れと葛藤
- 死刑確定囚・野比のび太 – 第十九話・ジャイアンとのび太の絆
- 死刑確定囚・野比のび太 – 第十八話・引きこもりの息子と家族のジレンマ
- 死刑確定囚・野比のび太 – 第十七話・ドラえもんと30歳ののび太の葛藤
- 死刑確定囚・野比のび太 – 第十六話・剛田商店の成長と静香の貢献