Cloud FormationとAWS CLI
4408 ワード
準備
- AWS CLIをインストールしておく
- access key発行
- AWSコンソール右上 > セキュリティ認証情報 > アクセスキーの作成
- aws configureを設定
$ aws configure
AWS Access Key ID [None]: 発行したキー
AWS Secret Access Key [None]: 発行したシークレットアクセスキー
Default region name [None]: ap-northeast-1 ★東京
Default output format [None]: json
CloudFormationその1
動作確認用にとりあえずVPCだけ
スタック
テンプレートによってプロビジョニングされるリソースの集合テンプレートでパラメータを指定して、例えばec2インスタンスタイプなどをスタック作成時に指定できる
プロビジョニング
サーバやデータベース等のリソースについて、利用者からの申請や要請に応じて必要な分だけ割り当てを行うサービス
テンプレート
AWSリソースの設定について記述するファイルのことをCloudFormationテンプレート
という
AWSTemplateFormatVersion: 2010-09-09
Description: my test vpc description
Parameters:
Resources:
MyTestVPC:
Type: AWS::EC2::VPC
Properties:
CidrBlock: 10.10.0.0/16
Tags:
-
Key: Name
Value: my-test
とりあえず実行してみるその1
# 作成
$ aws cloudformation create-stack --stack-name my-vpc --template-body file://./example.yaml
{
"StackId": "arn:aws:cloudformation:ap-northeast-1:516310581295:stack/my-vpc/6264d850-3a0f-11ed-b264-0eb548589c35"
}
# 確認
$ aws cloudformation describe-stacks
{
"Stacks": [
{
"StackId": "arn:aws:cloudformation:ap-northeast-1:516310581295:stack/my-vpc/6264d850-3a0f-11ed-b264-0eb548589c35",
"StackName": "my-vpc",
"Description": "my test vpc description",
"CreationTime": "2022-09-22T00:42:26.412000+00:00",
"RollbackConfiguration": {},
"StackStatus": "CREATE_COMPLETE",
"DisableRollback": false,
"NotificationARNs": [],
"Tags": [],
"DriftInformation": {
"StackDriftStatus": "NOT_CHECKED"
}
}
]
}
# 削除
$ aws cloudformation delete-stack --stack-name my-vpc
# 削除確認 (DELETE_COMPLETE)
$ aws cloudformation list-stacks
{
"StackSummaries": [
{
"StackId": "arn:aws:cloudformation:ap-northeast-1:516310581295:stack/my-vpc/6264d850-3a0f-11ed-b264-0eb548589c35",
"StackName": "my-vpc",
"TemplateDescription": "my test vpc description",
"CreationTime": "2022-09-22T00:42:26.412000+00:00",
"DeletionTime": "2022-09-22T00:47:35.999000+00:00",
"StackStatus": "DELETE_COMPLETE",
"DriftInformation": {
"StackDriftStatus": "NOT_CHECKED"
}
}
]
}
CloudFormationその2
パブリックサブネットとルートテーブルを追加。
!Ref
を使って、リソース同士の紐付けを行う。
Resources:
MyTestVPC:
Type: AWS::EC2::VPC
Properties:
CidrBlock: 10.10.0.0/16
Tags:
-
Key: Name
Value: my-test
myPublicRouteTable:
Type: AWS::EC2::RouteTable
Properties:
VpcId: !Ref myTestVPC
Tags:
- Key: Name
Value: my-test-Public
MyTestPublicSubnet1A:
Type: AWS::EC2::Subnet
Properties:
CidrBlock: 10.10.0.0/24
MapPublicIpOnLaunch: true
VpcId: !Ref myTestVPC
AvailabilityZone: ap-northeast-1a
Tags:
- Key: Name
Value: my-test-public-1a
PubSubnet1ARouteTableAssociation:
Type: AWS::EC2::SubnetRouteTableAssociation
Properties:
SubnetId: !Ref myTestPublicSubnet1A
RouteTableId: !Ref myPublicRouteTable
MyTestPublicSubnet1C:
Type: AWS::EC2::Subnet
Properties:
VpcId: !Ref myTestVPC
CidrBlock: 10.10.2.0/24
AvailabilityZone: ap-northeast-1c
Tags:
- Key: Name
Value: my-test-public-1c
PubSubnet1CRouteTableAssociation:
Type: AWS::EC2::SubnetRouteTableAssociation
Properties:
SubnetId: !Ref myTestPublicSubnet1C
RouteTableId: !Ref myPublicRouteTable
Author And Source
この問題について(Cloud FormationとAWS CLI), 我々は、より多くの情報をここで見つけました https://zenn.dev/takasa/articles/bf370328e88d5b著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Collection and Share based on the CC protocol