【初心者の目線でわかりやすい】AWS CloudFormation1~概念を学ぼう
初めまして。新入社員の「kisaragi」と申します。音楽・ゲーム・旅行が好きです。
この記事では、初心者の目線でCloudFormationの概念を学んでいきます。
▼ 今回の「初心者の目線でわかりやすいAWS CloudFormation」は2編で構成されています。
1 編 :【初心者の目線でわかりやすい】AWS CloudFormation1~概念を学ぼう |
2 編 :【初心者の目線でわかりやすい】AWS CloudFormation2~インフラを構築してみよう |
環境
- ap-northeast-1(東京)
- VSCode
AWS CloudFormationってなに?
「AWS CloudFormation」とは?
- AWSインフラ管理の簡素化を目的とした IaC (Infrastructure as code) サービスです。
* IaC : コードでインフラを構築・管理する手法です。 - Json または Yaml形式でインフラを構築・管理することができます。
例:「#」で説明コメントの追加ができます。例:「#」でコードをわかりやすくできます。
【メリット】
- コードでインフラを構築・管理する為、運用しやすくなります。
- インフラの手動管理と比べ、所要時間もミスも減らせます。
- 作成したコードは共有したり、他のAWSアカウント・リージョンでもすぐ使えます。
【デメリット】
- CloudFormationの学習には時間がかかります。
- 簡単な構築・修正は手動の方が簡単な場合があります。
- DBバージョンの変更などで再利用できない場合があります。
▼ AWS CloudFormationの概要に関しては以下をご覧ください。
💡 AWS CloudFormation の概要
「Template」と「Stack」
「Template」:
- AWSリソースを定義したJson または Yaml形式のテキストファイルです。
「Stack」:
- TemplateでAWSリソースを管理するユニットです。
* Stackを作成・更新・削除することで、AWSリソースを管理できます。
「Template」の「セクション」
* TemplateセクションのResourcesは必須、その他は任意です。
- AWSTemplateFormatVersion(任意):Templateのバージョンです。
- Description(任意):Templateの説明です。
- Parameters(任意):よく使う値を定義し、後で呼び出す形にできます。
- Resources(必須):Amazon EC2など、AWSリソースを作成します。
他にもセクションはたくさんありますが、この記事ではこの4つのセクションのみ紹介していきます。
▼ 他のセクションが気になる!って方は以下をご覧ください。
💡 AWS CloudFormation – テンプレートの構造分析
a. Templateを作成する前に、この2つのセクションから整理しましょう!
- AWSTemplateFormatVersion(任意):Templateのバージョンです。
- Description(任意):Templateの説明です。
- Parameters(任意):よく使う値を定義し、後で呼び出す形にできます。
- Resources(必須):Amazon EC2など、AWSサービスを設定です。
AWSTemplateFormatVersion: 2010-09-09 Description: Hands-on for AWS CloudFormation Beginner
i. AWSTemplateFormatVersion(任意)
- Templateの機能を識別します。コード作成の前、宣言しておく習慣をつけましょう。
ii. Description(任意)
- Templateの説明です。今回は「Hands-on for AWS CloudFormation Beginner」にしました。
続いて、Parametersを整理しましょう!
- AWSTemplateFormatVersion(任意):Templateのバージョンです。
- Description(任意):Templateの説明です。
- Parameters(任意):よく使う値を定義し、後で呼び出す形にできます。
- Resources(必須):Amazon EC2など、AWSリソースを作成します。
Parameters: # Parameters Start AvailabilityZone1: Type: String Default: "ap-northeast-1a" Description: "az-1a" AvailabilityZone2: Type: String Default: "ap-northeast-1c" Description: "az-1c" ImageID: Type: String Default: "ami-08928044842b396f0" Description: "AMI" MyName: Type: String Default: "kisaragi" Description: "Please My Name"
iii. Parameters(任意)
- よく使う値を事前に定義し、後で呼び出す形にできます。
使用例としては、下記のようにより識別しやすくできます。
図1:Parametersで宣言した「MyName」を呼び出しています。
図2:「MyName」- VPCという名前のVPCが作成されました。
最後に、Resourcesを整理しましょう!
- AWSTemplateFormatVersion(任意):CloudFormation テンプレートのバージョンです。
- Description(任意):テンプレートの説明です。
- Parameters(任意):よく使う値を定義し、後で呼び出す形にできます。
- Resources(必須):Amazon EC2など、AWSリソースを作成します。
Resources: # Resources Start VPC: Type: AWS::EC2::VPC Properties: CidrBlock: 10.0.0.0/16 EnableDnsSupport: true EnableDnsHostnames: true Tags: - Key: Name Value: !Sub "${MyName}-vpc" # kisaragi-vpc
iiii. Resources(必須)
- AWSリソースを宣言します。VPCやEC2など、AWS上のリソースを作成できます。
まとめ
今回はCloudFormationの概念を学びました。
- 「AWS CloudFormation」とは?
- 「AWS CloudFormation」メリット・デメリットは?
- 「Template」と「Stack」
- 「Template」の「セクション」
- 「セクション」:AWSTemplateFormatVersion(任意)
- 「セクション」:Description(任意)
- 「セクション」:Parameters(任意)
- 「セクション」:Resources(必須)
続いて、2編ではAWS CloudFormationで実際AWSインフラを構築していきます。
2 編 :【初心者の目線でわかりやすい】AWS CloudFormation2~インフラを構築してみよう |
テックブログ新着情報のほか、AWSやGoogle Cloudに関するお役立ち情報を配信中!
Follow @twitter
kisaragi
- 2024 Japan AWS Jr. Champions
2023年度新卒入社。出身は韓国です。
Recommends
こちらもおすすめ
-
第5回JAWS-UG初心者支部勉強会に参加してきました
2016.4.20
-
チュートリアルをやってみよう
2024.3.8
Special Topics
注目記事はこちら
データ分析入門
これから始めるBigQuery基礎知識
2024.02.28
AWSの料金が 10 %割引になる!
『AWSの請求代行リセールサービス』
2024.07.16