マネージメントサービス株式会社
Copyright Management Service Corp. All Rights Reserved.Copyright Management Service Corp. All Rights Reserved.
AWS CloudFormation
マネージメントサービス株式会社
デジタルビジネスイノベーションセンター
山本 友樹
2019
11-29
AWS若手勉強会#13
Copyright Management Service Corp. All Rights Reserved.
1.AWS CloudFormationとは
2.使い方
3.特徴
4.料金
5.テンプレートの書き方
6.まとめ
2
アジェンダ
Copyright Management Service Corp. All Rights Reserved.
1.AWS CloudFormationとは
2.使い方
3.特徴
4.料金
5.テンプレートの書き方
6.まとめ
3
アジェンダ
Copyright Management Service Corp. All Rights Reserved.
AWS CloudFormationとは
AWS CloudFormation は、クラウド環境内のすべてのインフ
ラストラクチャリソースを記述してプロビジョニングするため
の共通言語を提供します。CloudFormation では、プログラ
ミング言語またはシンプルなテキストファイルを使用して、あ
らゆるリージョンとアカウントでアプリケーションに必要とさ
れるすべてのリソースを、自動化された安全な方法でモデル化
し、プロビジョニングできます。
(AWS公式ページより)
4
Copyright Management Service Corp. All Rights Reserved.
簡単に言うと
コードからAWSサービスのリソースを
作成するサービス
5
Copyright Management Service Corp. All Rights Reserved.
例
6
テンプレート AWS CloudFormation
VPC
AWS Cloud
Availability Zone 1 Availability Zone 2
Amazon EC2 Amazon EC2
どのようなリソース
を作成するか記述
Copyright Management Service Corp. All Rights Reserved.
1.AWS CloudFormationとは
2.使い方
3.特徴
4.料金
5.テンプレートの書き方
6.まとめ
7
アジェンダ
Copyright Management Service Corp. All Rights Reserved.
使い方
テンプレートの作成
↓
CloudFormationにテンプレートをアップロード
8
Copyright Management Service Corp. All Rights Reserved.
テンプレートを作成
9
S3バケットとバケットポリシー
を作成する例
Copyright Management Service Corp. All Rights Reserved.
ざっくりのルール
10
赤枠が作成するAWSリソースに名前を
自由につける
※CloudFormationでのみ使う
その他(赤枠以外)の定義は、どんな
AWSリソースにするかとういう定義
Copyright Management Service Corp. All Rights Reserved.
CloudFormationへのアップロード方法
11
Copyright Management Service Corp. All Rights Reserved.
12
②新しいリソースを使用(標準)
をクリック
①スタックの作成をクリック
Copyright Management Service Corp. All Rights Reserved.
13
①テンプレートファイルのアップロードを選
択し、作成したテンプレートをアップロード
Copyright Management Service Corp. All Rights Reserved.
14
①次へをクリック
Copyright Management Service Corp. All Rights Reserved.
15
①スタック名を入力
②次へをクリック
Copyright Management Service Corp. All Rights Reserved.
16
①次へをクリック
Copyright Management Service Corp. All Rights Reserved.
・・・
17
①スタックの作成をクリック
Copyright Management Service Corp. All Rights Reserved.
18
①作成中になり少し待つ
Copyright Management Service Corp. All Rights Reserved.
19
①作成完了
Copyright Management Service Corp. All Rights Reserved.
S3バケット・バケットポリシーの確認
20
Copyright Management Service Corp. All Rights Reserved.
更新
• テンプレートを更新して、アップロードすることで更新します。
手順は、前述の通り。
※注意
CloudFormationで作成したAWSリソースは、必ずCloudFormation
の機能で更新しないといけない。
マネジメントコンソール等で設定を変更するとCloudFormationから更新/
削除ができなくなります。
もし、手動で変更してしまった場合は手動で戻してからCloudFormation
で更新/削除ができるようになる。
21
Copyright Management Service Corp. All Rights Reserved.
削除
22
削除をクリックするだけ
Copyright Management Service Corp. All Rights Reserved.
テンプレートの作成以外は簡単!
23
Copyright Management Service Corp. All Rights Reserved.
1.AWS CloudFormationとは
2.使い方
3.特徴
4.料金
5.テンプレートの書き方
6.まとめ
24
アジェンダ
Copyright Management Service Corp. All Rights Reserved.
特徴
• 一気に複数のAWSサービスのリソースが作成できる
• テンプレートを使いまわすことができる
• インフラをコードで管理できる
25
Copyright Management Service Corp. All Rights Reserved.
一気に複数のAWSサービスのリソースが作成
できる
テンプレートに記載したリソースが一気に作成される。
一気に作成したリソースのかたまりをスタックと呼んで管理する。
リソースのかたまりが不要になったときは、個別に削除する必要なし。
スタックを削除することで、全て削除される。
26
Copyright Management Service Corp. All Rights Reserved.
テンプレートを使いまわすことができる
一度、テンプレートを作成すれば何度でも使える。
他のAWSアカウントで使用も可能。
テンプレートさえあれば、AWSリソースを作成する手順書は不要。
27
Copyright Management Service Corp. All Rights Reserved.
つまり、こんなことがあるかも!?
• テンプレートさえ一度作ってしまえば・・・
28
先輩
こういうAWSのリソース作っといて
(まぁ、半日ぐらいかかるかな)
自分
それなら1回作ったことあるんで、
ちょっとテンプレート修正して30分
ぐらいで作れますよ
先輩
(こいつ・・・できる・・・)
Copyright Management Service Corp. All Rights Reserved.
インフラをコードで管理できる
インフラ環境をコードを元に作成できるので、コードで管理できる。
テンプレートをバージョン管理すれば、インフラ環境をバージョン管理す
ることができる。
インフラをコードで管理するということで、
Infrastructure as Code(IaC)
と呼ばれる。
29
Copyright Management Service Corp. All Rights Reserved.
1.AWS CloudFormationとは
2.使い方
3.特徴
4.料金
5.テンプレートの書き方
6.まとめ
30
アジェンダ
Copyright Management Service Corp. All Rights Reserved.
料金
無料
31
※作成したAWSリソースに掛かる料金は必要
Copyright Management Service Corp. All Rights Reserved.
1.AWS CloudFormationとは
2.使い方
3.特徴
4.料金
5.テンプレートの書き方
6.まとめ
32
アジェンダ
Copyright Management Service Corp. All Rights Reserved.
ファイルの種類
• JSONファイル or YAMLファイルで作成する。
JSON? YAML?
33
Copyright Management Service Corp. All Rights Reserved.
JSONとは
• JavaScript Object Notaion の略
• 文字コードは UTF-8
• 下記のように中かっこで囲い、キー:値で記述する
34
{
"name": "Tanaka",
"age": 26
}
Copyright Management Service Corp. All Rights Reserved.
YAMLとは
• YAML Ain‘t Markup Languageの略
• 構造化データの表現する記法
• 下記のようにインデントを利用して構造を表現する
35
company:
name: マネージメントサービス
num: 622
Copyright Management Service Corp. All Rights Reserved.
個人的感想
• JSONとYAMLだったらYAMLがオススメ
コメントが書けるから!!!
ネットでコメント付きでわかりやすいテンプレート見つけると非常に助
かります。
36
# 会社
company:
# 社名
name: マネージメントサービス
# 従業員数
num: 622
Copyright Management Service Corp. All Rights Reserved.
文法
• 使いたいAWSサービス毎にAWSが定めたルールに沿って記載します。
下記ページのルールを見ながら記載していきます。
https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/U
serGuide/Welcome.html
※このルールを覚えて何も見ずにガリガリ書くのは無理だと思います。
調べて冷静に書くのが普通だと思います。
ただし、1回理解してから書くと次はコピペでスラスラ掛けます。
• AWSサービスに依存しない基本的なルールはあります。
次のスライド参照(AWS Black Beltの資料)
37
Copyright Management Service Corp. All Rights Reserved.
AWS-BlackBelt資料より
38
可変にしたい値
何を作るか
Copyright Management Service Corp. All Rights Reserved.
最初に作成したテンプレート
39
何を作るかのみを記載
Copyright Management Service Corp. All Rights Reserved.
Parametersを使用して1つのテンプレートでS3バケット名をスタック作
成の度に変えれるようにしてみる。
40
Copyright Management Service Corp. All Rights Reserved.
パラメータを追加したテンプレート
41
バケット名をパラメータ
で指定
パラメータを使用するときは、
「!Ref パラメータ名」で指定
文字列結合したいときは、「!Sub」
と指定してから「${パラメータ名}」
と指定
Copyright Management Service Corp. All Rights Reserved.
作成したテンプレートをアップロード
42
テンプレートで指定した
BucketNameが表示される
Copyright Management Service Corp. All Rights Reserved.
バケット名を指定してスタック作成
43
Copyright Management Service Corp. All Rights Reserved.
44
パラメータで指定した値で
作成されている
Copyright Management Service Corp. All Rights Reserved.
テンプレートの小技
• 疑似パラメータ
– AWS::Region → リージョン名(例. ap-northeast-1)
– AWS::AccountId → AWSアカウントID (例.123456789012)
• !Ref
論理IDから物理IDを参照する
45
論理ID
S3の物理IDはバケット名
Copyright Management Service Corp. All Rights Reserved.
論理ID・物理IDの確認
• マネジメントコンソールのリソースタブから確認することができる。
46
Copyright Management Service Corp. All Rights Reserved.
1.AWS CloudFormationとは
2.使い方
3.特徴
4.料金
5.テンプレートの書き方
6.まとめ
47
アジェンダ
Copyright Management Service Corp. All Rights Reserved.
まとめ
• インフラもコードを書くことが必要な時代になっていってます。
調べながら書いていくので誰でも書けます。
• 1度テンプレートを作れば他でも使えるので、テンプレート作って手順
書作らずに、楽をできるようにしていきましょう。
48
Copyright Management Service Corp. All Rights Reserved.
参考資料
• 公式ページ
https://aws.amazon.com/jp/cloudformation/
• AWS-BlackBelt
https://d1.awsstatic.com/webinars/jp/pdf/services/20181128-
AWS-BlackBelt-CloudFormation.pdf
• JSON入門
http://www.tohoho-web.com/ex/json.html
• エンジニア成長日記(YAMLを覚えよう)
http://abcmark2010.hatenablog.com/entry/2015/12/20/235604
49
Copyright Management Service Corp. All Rights Reserved.
ありがとうございました
50

20191129 AWS CloudFormarion

  • 1.
    マネージメントサービス株式会社 Copyright Management ServiceCorp. All Rights Reserved.Copyright Management Service Corp. All Rights Reserved. AWS CloudFormation マネージメントサービス株式会社 デジタルビジネスイノベーションセンター 山本 友樹 2019 11-29 AWS若手勉強会#13
  • 2.
    Copyright Management ServiceCorp. All Rights Reserved. 1.AWS CloudFormationとは 2.使い方 3.特徴 4.料金 5.テンプレートの書き方 6.まとめ 2 アジェンダ
  • 3.
    Copyright Management ServiceCorp. All Rights Reserved. 1.AWS CloudFormationとは 2.使い方 3.特徴 4.料金 5.テンプレートの書き方 6.まとめ 3 アジェンダ
  • 4.
    Copyright Management ServiceCorp. All Rights Reserved. AWS CloudFormationとは AWS CloudFormation は、クラウド環境内のすべてのインフ ラストラクチャリソースを記述してプロビジョニングするため の共通言語を提供します。CloudFormation では、プログラ ミング言語またはシンプルなテキストファイルを使用して、あ らゆるリージョンとアカウントでアプリケーションに必要とさ れるすべてのリソースを、自動化された安全な方法でモデル化 し、プロビジョニングできます。 (AWS公式ページより) 4
  • 5.
    Copyright Management ServiceCorp. All Rights Reserved. 簡単に言うと コードからAWSサービスのリソースを 作成するサービス 5
  • 6.
    Copyright Management ServiceCorp. All Rights Reserved. 例 6 テンプレート AWS CloudFormation VPC AWS Cloud Availability Zone 1 Availability Zone 2 Amazon EC2 Amazon EC2 どのようなリソース を作成するか記述
  • 7.
    Copyright Management ServiceCorp. All Rights Reserved. 1.AWS CloudFormationとは 2.使い方 3.特徴 4.料金 5.テンプレートの書き方 6.まとめ 7 アジェンダ
  • 8.
    Copyright Management ServiceCorp. All Rights Reserved. 使い方 テンプレートの作成 ↓ CloudFormationにテンプレートをアップロード 8
  • 9.
    Copyright Management ServiceCorp. All Rights Reserved. テンプレートを作成 9 S3バケットとバケットポリシー を作成する例
  • 10.
    Copyright Management ServiceCorp. All Rights Reserved. ざっくりのルール 10 赤枠が作成するAWSリソースに名前を 自由につける ※CloudFormationでのみ使う その他(赤枠以外)の定義は、どんな AWSリソースにするかとういう定義
  • 11.
    Copyright Management ServiceCorp. All Rights Reserved. CloudFormationへのアップロード方法 11
  • 12.
    Copyright Management ServiceCorp. All Rights Reserved. 12 ②新しいリソースを使用(標準) をクリック ①スタックの作成をクリック
  • 13.
    Copyright Management ServiceCorp. All Rights Reserved. 13 ①テンプレートファイルのアップロードを選 択し、作成したテンプレートをアップロード
  • 14.
    Copyright Management ServiceCorp. All Rights Reserved. 14 ①次へをクリック
  • 15.
    Copyright Management ServiceCorp. All Rights Reserved. 15 ①スタック名を入力 ②次へをクリック
  • 16.
    Copyright Management ServiceCorp. All Rights Reserved. 16 ①次へをクリック
  • 17.
    Copyright Management ServiceCorp. All Rights Reserved. ・・・ 17 ①スタックの作成をクリック
  • 18.
    Copyright Management ServiceCorp. All Rights Reserved. 18 ①作成中になり少し待つ
  • 19.
    Copyright Management ServiceCorp. All Rights Reserved. 19 ①作成完了
  • 20.
    Copyright Management ServiceCorp. All Rights Reserved. S3バケット・バケットポリシーの確認 20
  • 21.
    Copyright Management ServiceCorp. All Rights Reserved. 更新 • テンプレートを更新して、アップロードすることで更新します。 手順は、前述の通り。 ※注意 CloudFormationで作成したAWSリソースは、必ずCloudFormation の機能で更新しないといけない。 マネジメントコンソール等で設定を変更するとCloudFormationから更新/ 削除ができなくなります。 もし、手動で変更してしまった場合は手動で戻してからCloudFormation で更新/削除ができるようになる。 21
  • 22.
    Copyright Management ServiceCorp. All Rights Reserved. 削除 22 削除をクリックするだけ
  • 23.
    Copyright Management ServiceCorp. All Rights Reserved. テンプレートの作成以外は簡単! 23
  • 24.
    Copyright Management ServiceCorp. All Rights Reserved. 1.AWS CloudFormationとは 2.使い方 3.特徴 4.料金 5.テンプレートの書き方 6.まとめ 24 アジェンダ
  • 25.
    Copyright Management ServiceCorp. All Rights Reserved. 特徴 • 一気に複数のAWSサービスのリソースが作成できる • テンプレートを使いまわすことができる • インフラをコードで管理できる 25
  • 26.
    Copyright Management ServiceCorp. All Rights Reserved. 一気に複数のAWSサービスのリソースが作成 できる テンプレートに記載したリソースが一気に作成される。 一気に作成したリソースのかたまりをスタックと呼んで管理する。 リソースのかたまりが不要になったときは、個別に削除する必要なし。 スタックを削除することで、全て削除される。 26
  • 27.
    Copyright Management ServiceCorp. All Rights Reserved. テンプレートを使いまわすことができる 一度、テンプレートを作成すれば何度でも使える。 他のAWSアカウントで使用も可能。 テンプレートさえあれば、AWSリソースを作成する手順書は不要。 27
  • 28.
    Copyright Management ServiceCorp. All Rights Reserved. つまり、こんなことがあるかも!? • テンプレートさえ一度作ってしまえば・・・ 28 先輩 こういうAWSのリソース作っといて (まぁ、半日ぐらいかかるかな) 自分 それなら1回作ったことあるんで、 ちょっとテンプレート修正して30分 ぐらいで作れますよ 先輩 (こいつ・・・できる・・・)
  • 29.
    Copyright Management ServiceCorp. All Rights Reserved. インフラをコードで管理できる インフラ環境をコードを元に作成できるので、コードで管理できる。 テンプレートをバージョン管理すれば、インフラ環境をバージョン管理す ることができる。 インフラをコードで管理するということで、 Infrastructure as Code(IaC) と呼ばれる。 29
  • 30.
    Copyright Management ServiceCorp. All Rights Reserved. 1.AWS CloudFormationとは 2.使い方 3.特徴 4.料金 5.テンプレートの書き方 6.まとめ 30 アジェンダ
  • 31.
    Copyright Management ServiceCorp. All Rights Reserved. 料金 無料 31 ※作成したAWSリソースに掛かる料金は必要
  • 32.
    Copyright Management ServiceCorp. All Rights Reserved. 1.AWS CloudFormationとは 2.使い方 3.特徴 4.料金 5.テンプレートの書き方 6.まとめ 32 アジェンダ
  • 33.
    Copyright Management ServiceCorp. All Rights Reserved. ファイルの種類 • JSONファイル or YAMLファイルで作成する。 JSON? YAML? 33
  • 34.
    Copyright Management ServiceCorp. All Rights Reserved. JSONとは • JavaScript Object Notaion の略 • 文字コードは UTF-8 • 下記のように中かっこで囲い、キー:値で記述する 34 { "name": "Tanaka", "age": 26 }
  • 35.
    Copyright Management ServiceCorp. All Rights Reserved. YAMLとは • YAML Ain‘t Markup Languageの略 • 構造化データの表現する記法 • 下記のようにインデントを利用して構造を表現する 35 company: name: マネージメントサービス num: 622
  • 36.
    Copyright Management ServiceCorp. All Rights Reserved. 個人的感想 • JSONとYAMLだったらYAMLがオススメ コメントが書けるから!!! ネットでコメント付きでわかりやすいテンプレート見つけると非常に助 かります。 36 # 会社 company: # 社名 name: マネージメントサービス # 従業員数 num: 622
  • 37.
    Copyright Management ServiceCorp. All Rights Reserved. 文法 • 使いたいAWSサービス毎にAWSが定めたルールに沿って記載します。 下記ページのルールを見ながら記載していきます。 https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/U serGuide/Welcome.html ※このルールを覚えて何も見ずにガリガリ書くのは無理だと思います。 調べて冷静に書くのが普通だと思います。 ただし、1回理解してから書くと次はコピペでスラスラ掛けます。 • AWSサービスに依存しない基本的なルールはあります。 次のスライド参照(AWS Black Beltの資料) 37
  • 38.
    Copyright Management ServiceCorp. All Rights Reserved. AWS-BlackBelt資料より 38 可変にしたい値 何を作るか
  • 39.
    Copyright Management ServiceCorp. All Rights Reserved. 最初に作成したテンプレート 39 何を作るかのみを記載
  • 40.
    Copyright Management ServiceCorp. All Rights Reserved. Parametersを使用して1つのテンプレートでS3バケット名をスタック作 成の度に変えれるようにしてみる。 40
  • 41.
    Copyright Management ServiceCorp. All Rights Reserved. パラメータを追加したテンプレート 41 バケット名をパラメータ で指定 パラメータを使用するときは、 「!Ref パラメータ名」で指定 文字列結合したいときは、「!Sub」 と指定してから「${パラメータ名}」 と指定
  • 42.
    Copyright Management ServiceCorp. All Rights Reserved. 作成したテンプレートをアップロード 42 テンプレートで指定した BucketNameが表示される
  • 43.
    Copyright Management ServiceCorp. All Rights Reserved. バケット名を指定してスタック作成 43
  • 44.
    Copyright Management ServiceCorp. All Rights Reserved. 44 パラメータで指定した値で 作成されている
  • 45.
    Copyright Management ServiceCorp. All Rights Reserved. テンプレートの小技 • 疑似パラメータ – AWS::Region → リージョン名(例. ap-northeast-1) – AWS::AccountId → AWSアカウントID (例.123456789012) • !Ref 論理IDから物理IDを参照する 45 論理ID S3の物理IDはバケット名
  • 46.
    Copyright Management ServiceCorp. All Rights Reserved. 論理ID・物理IDの確認 • マネジメントコンソールのリソースタブから確認することができる。 46
  • 47.
    Copyright Management ServiceCorp. All Rights Reserved. 1.AWS CloudFormationとは 2.使い方 3.特徴 4.料金 5.テンプレートの書き方 6.まとめ 47 アジェンダ
  • 48.
    Copyright Management ServiceCorp. All Rights Reserved. まとめ • インフラもコードを書くことが必要な時代になっていってます。 調べながら書いていくので誰でも書けます。 • 1度テンプレートを作れば他でも使えるので、テンプレート作って手順 書作らずに、楽をできるようにしていきましょう。 48
  • 49.
    Copyright Management ServiceCorp. All Rights Reserved. 参考資料 • 公式ページ https://aws.amazon.com/jp/cloudformation/ • AWS-BlackBelt https://d1.awsstatic.com/webinars/jp/pdf/services/20181128- AWS-BlackBelt-CloudFormation.pdf • JSON入門 http://www.tohoho-web.com/ex/json.html • エンジニア成長日記(YAMLを覚えよう) http://abcmark2010.hatenablog.com/entry/2015/12/20/235604 49
  • 50.
    Copyright Management ServiceCorp. All Rights Reserved. ありがとうございました 50