Cloudformation에서 EC2를 만든 이야기
2606 단어 CloudFormationAWS
소개
Cloudformation에서 EC2 구축 + 사용자 데이터로 M/W 도입을 자동화하려고 했습니다.
결론에서 말하면 사용자 데이터 관련 템플릿 포맷 에러를 해소할 수 없고, 단지 Cloudformation에서 EC2를 만드는 것만의 평범한 결과로 끝났습니다.
그래도 CLoudformation에 대해 다소 공부가 되었기 때문에 정리합니다.
(향후 해결책을 찾으면 업데이트합니다)
하고 싶은 일
terraform 도입
우선은 사용자 데이터 작성을 위해 EC2상에서 보통으로 도입했습니다.
특별한 이유는 없지만 어쨌든 루트 프로필에 PATH를 추가하는 단계도 포함했습니다.
$ sudo yum install wget unzip
$ wget https://releases.hashicorp.com/terraform/0.12.20/terraform_0.12.20_linux_amd64.zip
$ sudo unzip terraform_0.12.20_linux_amd64.zip -d /usr/local/bin/
$ sudo sed 's|^PATH=\$PATH:\$HOME/bin|PATH=\$PATH:\$HOME/bin:/usr/local/bin|g' /root/.bash_profile > /tmp/bash_profile_tmp
$ sudo chown root.root /tmp/bash_profile_tmp
$ sudo mv /tmp/bash_profile_tmp /root/.bash_profile
※보충
・sed는 통상 「sed's/~/~/g'」와 같이 쓰이는 경우가 많습니다만, 「/」의 부분은 다른 기호로 옮겨놓을 수 있어, 이번과 같이 디렉토리 패스를 기재한다 경우는 「/」이외로 하면 편리합니다.
· terraform의 다운로드 URL은 공식 페이지을 참조하십시오.
Cloudformation 템플릿
궁극적으로 성공한 Version을 올립니다.
(디자이너로 가와만 작성해, 나머지는 공식 페이지 그 외를 보면서 기재)
AWSTemplateFormatVersion: 2010-09-09
Metadata:
'AWS::CloudFormation::Designer':
389e90b9-2b30-43fa-a312-411827e53a79:
size:
width: 60
height: 60
position:
x: 375
'y': 125
z: 0
Parameters:
Ec2ImageId:
Type: AWS::SSM::Parameter::Value<String>
Default: /aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp
Ec2InstanceType:
Type: String
Default: t2.micro
Resources:
EC2I4K5C4:
Type: 'AWS::EC2::Instance'
Properties:
ImageId: !Ref Ec2ImageId
InstanceType: !Ref Ec2InstanceType
Metadata:
'AWS::CloudFormation::Designer':
id: 389e90b9-2b30-43fa-a312-411827e53a79
※보충
・AMI의 이미지는 SSM의 파라미터 경유로 지정하면 항상 최신판을 취득할 수 있습니다.
(SOA의 시험에서도 나온 것 같은 생각이 듭니다)
・사실은 이것에 「KeyName(키 페어명)」과 「UserData(사용자 데이터)」를 넣고 싶었습니다만, 포맷 에러를 해소할 수 없고 단념.
스택 작성시의 주의점
템플릿을 시도할 때 스택 생성 실패 시 롤백을 비활성화합니다.
(그렇지 않으면 실패해도 아무런 오류도 발생하지 않으며 디버깅을 할 수 없습니다)
Reference
이 문제에 관하여(Cloudformation에서 EC2를 만든 이야기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kkino1985/items/431abad9bbae109da69e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ sudo yum install wget unzip
$ wget https://releases.hashicorp.com/terraform/0.12.20/terraform_0.12.20_linux_amd64.zip
$ sudo unzip terraform_0.12.20_linux_amd64.zip -d /usr/local/bin/
$ sudo sed 's|^PATH=\$PATH:\$HOME/bin|PATH=\$PATH:\$HOME/bin:/usr/local/bin|g' /root/.bash_profile > /tmp/bash_profile_tmp
$ sudo chown root.root /tmp/bash_profile_tmp
$ sudo mv /tmp/bash_profile_tmp /root/.bash_profile
궁극적으로 성공한 Version을 올립니다.
(디자이너로 가와만 작성해, 나머지는 공식 페이지 그 외를 보면서 기재)
AWSTemplateFormatVersion: 2010-09-09
Metadata:
'AWS::CloudFormation::Designer':
389e90b9-2b30-43fa-a312-411827e53a79:
size:
width: 60
height: 60
position:
x: 375
'y': 125
z: 0
Parameters:
Ec2ImageId:
Type: AWS::SSM::Parameter::Value<String>
Default: /aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp
Ec2InstanceType:
Type: String
Default: t2.micro
Resources:
EC2I4K5C4:
Type: 'AWS::EC2::Instance'
Properties:
ImageId: !Ref Ec2ImageId
InstanceType: !Ref Ec2InstanceType
Metadata:
'AWS::CloudFormation::Designer':
id: 389e90b9-2b30-43fa-a312-411827e53a79
※보충
・AMI의 이미지는 SSM의 파라미터 경유로 지정하면 항상 최신판을 취득할 수 있습니다.
(SOA의 시험에서도 나온 것 같은 생각이 듭니다)
・사실은 이것에 「KeyName(키 페어명)」과 「UserData(사용자 데이터)」를 넣고 싶었습니다만, 포맷 에러를 해소할 수 없고 단념.
스택 작성시의 주의점
템플릿을 시도할 때 스택 생성 실패 시 롤백을 비활성화합니다.
(그렇지 않으면 실패해도 아무런 오류도 발생하지 않으며 디버깅을 할 수 없습니다)
Reference
이 문제에 관하여(Cloudformation에서 EC2를 만든 이야기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kkino1985/items/431abad9bbae109da69e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Cloudformation에서 EC2를 만든 이야기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kkino1985/items/431abad9bbae109da69e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)