CloudFormation 및 Kumogata2 요약
10446 단어 KumogataCloudFormation
1.1. 개요
AWS의 서버·NW·보안 등 인프라 주변 환경을 자동으로 구축할 수 있는 서비스다.
※ 다른 한편, 응용 프로그램 원본에 적합하지 않은 자동 설계
CloudFormation에서 환경 구축에 사용되는 AWS 자원의 집합을'스택'이라고 부른다.
스택의 설정 파일(JSONor YAML)을 템플릿이라고 합니다.
1.2. 템플릿 쓰기
참조: https://qiita.com/y-ohgi/items/89f07e866713185799f5
템플릿을 쓸 때 몇 개의 첫 번째 층의 '영역' 이 있다
아래 다섯 부분은 기본적으로 모두 사용할 것이다.
AWSTemplateFormatVersion: '2010-09-09' # CloudFormationのバージョンを指定。2021年時点でもこのバージョンしかないので、もはやおまじない状態
Description: # テンプレート実行時に表示される説明らしい
Parameters: # Resourcesで使える定数を定義する箇所
Resources: # スタックの構成要素であるAWSリソースの設定を記述する箇所
Outputs: # なんか返すらしい
1.2.1. Resources 영역구성은 다음과 같다.
Resources:
<スタック内でAWSリソースに対してつける任意の名前>: # スタック内で一意でないとダメらしい
Type: <CloudFormationで作成するAWSリソース> # 設定値は、リファレンスを参照
Properties: # 以下、作成するAWSリソースの設定値. AWSリソースの種類ごとに設定項目は異なる。こちらもリファレンスを参照。
CloudFormation 템플릿 참조 1.3. AWS 관리 콘솔에서의 스택 방법
참조: https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/cfn-using-console-create-stack-template.html
다음 절차.
①テンプレートをS3にアップロードする
②スタックの作成につかうテンプレート(①のヤツ)を指定し、作成時のパラメータを指定する(任意)
③スタックの作成を実行する
동작 이미지2. Kumogata2
2.1. 개요
cookpad에서 만든 명령행 도구입니다.루피의 젬.
이것을 사용하면 CloudFomation 템플릿을 루비로 쓸 수 있습니다. (Kumogata2가 정의한 규칙에 따라)
쿠모가타2를 사용하면 다음과 같은 장점을 얻을 수 있다.
①テンプレートを分割して書くことができる
②Ruby形式のテンプレートから、Kumogata2コマンドを使ってスタックの作成・更新・削除ができる)※
③Kumogata2コマンドで、テンプレートのフォーマットをJSONへ変換することもできる※
※ 어느 쪽이든 클라우드 포메이션 사용 시S3에 템플릿을 업로드하려면 JSONor YAML 형식이 필요합니다.②의 경우 명령을 수행할 때도 뒷면으로 변환 & 업로드합니다.
전제로 위 클라우드 포메이션 사용법을 어느 정도 모르면 쿠모가타2에서 무엇을 설정·집행해야 할지 모르기 때문에 미리 파악해야 한다.
2.2. 템플릿 묘사법의 인상
원시적인CloudFormation과kumogata2를 이용하여 템플릿을 비교한 문법은 구체적으로 다음과 같다.
참조:
https://dev.classmethod.jp/articles/sugano-023-kumogata2/
https://github.com/kumogata/kumogata2-plugin-ruby
요소 CloudFormation
template.yaml
AWSTemplateFormatVersion: '2010-09-09'
Description: Test Instance
Resources:
TestInstance:
Type: AWS::EC2::Instance
Properties:
ImageId: ami-abcdexxxxxx
InstanceType: t3.micro
Tags:
- Key: Name
Value: test
BlockDeviceMappings:
- DeviceName: "/dev/xvda"
Ebs:
VolumeType: gp2
VolumeSize: '32'
kumogata2template.rb
template do
AWSTemplateFormatVersion "2010-09-09"
Description (<<-EOS).undent
Test Instance
EOS
Resources do
# 直で書いたヤツ
TestInstance do
Type "AWS::EC2::Instance"
Properties do
ImageId 'ami-abcdexxxxxx'
InstanceType 't3.micro'
Tags [
_{
Key "Name"
Value "test"
}
]
BlockDeviceMappings [
_{
DeviceName "/dev/xvda"
Ebs do
VolumeType "gp2"
VolumeSize '32'
end
}
]
end
end
end
# 分割テンプレートを使う場合(インデントは_includeした位置からスタートするので、.rb内では最上位階層のインデントから書けばOK)
_include 'template_resource.rb'
end
template_resource.rb
TestInstance2 do
Type "AWS::EC2::Instance"
Properties do
ImageId 'ami-abcdexxxxxx'
InstanceType 't3.micro'
Tags [
_{
Key "Name"
Value "test"
}
]
BlockDeviceMappings [
_{
DeviceName "/dev/xvda"
Ebs do
VolumeType "gp2"
VolumeSize '32'
end
}
]
end
end
Kumogata2→YAML의 대응 규칙(뭐라고만 쓰면 정말 무슨 뜻인지 모를 것 같아서 안 봐도 돼)
_{ ... } 하..의 부분은 배열된 요소가 되는 산열을 나타낸다
2.3.1. 낳다
# <スタック名>のスタックを<テンプレートファイル(.rb)>を元に生成する
kumogata2 create <テンプレートファイル(.rb)> <スタック名>
참조: https://github.com/kumogata/kumogata22.3.2. 업데이트
# <スタック名>のスタックを<テンプレートファイル(.rb)>を元に更新する
kumogata2 update <テンプレートファイル(.rb)> <スタック名>
참조: https://qiita.com/motchi0214/items/77c2d4ba1418d0d77baa2.3.3. 삭제
# <スタック名>のスタックを削除する
kumogata2 delete <スタック名>
3. CloudFormation 사용 시 고려 사항3.1. CloudFormation에서 생성된 스택의 리소스를 개별적으로 제거하지 마십시오.
cloudformation을 사용하지 않고 cloudformation으로 만든 창고를 구성하는AWS 자원을 개별적으로 삭제합니다
cloudformation에서 스택(AWS 관리 콘솔)을 삭제하려고 시도하지 못했습니다.
이 스택의 삭제 처리는 "①스택을 구성하는 각 AWS 리소스 삭제→②스택 삭제"로 수행됩니다.
①에서 삭제된 AWS 리소스를 삭제하려 할 때 실패 판정으로 처리가 중단되어 "②스택 삭제"를 계속할 수 없습니다.
관리 대상의 AWS 자원을 삭제한 후 자신을 삭제하려고 시도했지만 이미 존재하지 않는 AWS 자원은 삭제할 수 없고 실패 판정이 되어 창고 자체도 삭제할 수 없습니다.
3.2. 했던 상태에서 회복.
AWS 관리 콘솔에서는 개별적으로 삭제된 AWS 리소스의 삭제를 건너뛰는 설정을 한 후 스택을 삭제해야 합니다.
Reference
이 문제에 관하여(CloudFormation 및 Kumogata2 요약), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/WisteriaWave/items/90063b09acd66824b107텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)