この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
안녕하세요, 임채정입니다.
이번 블로그에서는 파라미터 스토에서 저장된 파라미터를 활용해서 CloudFormation에 적용하는 방법에 대해서 살펴보려고 합니다.
아젠다
- 파라미터 생성
- Cfn에 적용하기
- Cfn 실행하기
1. 파라미터 생성
먼저 AWS Systems Manager 콘솔화면에서 [파라미터 스토어] 태그로 이동해서 파라미터를 생성합니다.
[EC2의 AMI ID]
이름: /EC2/AMI-ID
유형: 문자열
값: ami-0bcc04d20228d0cf6
2. Cfn에 적용하기
사용할 템플릿 정리
이번 블로그에서는 해당 템플릿을 사용합니다.
ec2.yaml
AWSTemplateFormatVersion: "2010-09-09"
Description: "CloudFormation Simple Template"
# ------------
# Parameters
# ------------
Parameters:
System:
Description: "System prefix of each resource names."
Type: String
Default: "System"
Env:
Description: "Environment"
Type: String
Default: "dev"
EC2KeyName:
Description: "EC2 key pair name"
Default: "lim-tokyo-key"
Type: String
EC2InstanceType:
Description: "EC2 instance type"
Default: "t2.micro"
Type: String
AMI:
Description: "Server AMI"
Default: /EC2/AMI-ID
Type: AWS::SSM::Parameter::Value<String>
# ------------
# Resources
# ------------
Resources:
# ------------
# EC2 Instance
# ------------
EC2Instance:
Type: AWS::ec2::Instance
Properties:
ImageId: !Ref AMI
InstanceType: !Ref EC2InstanceType
KeyName: !Ref EC2KeyName
SecurityGroupIds:
- !Ref SecurityGroup
SubnetId: subnet-be55e6f6
Tags:
- Key: Name
Value:
Fn::Sub: "${System}-${Env}-ec2"
# ------------
# SecurityGroup
# ------------
SecurityGroup:
Type: AWS::ec2::SecurityGroup
Properties:
GroupName:
Fn::Sub: "${System}-${Env}-sg"
GroupDescription:
Fn::Sub: "${System}-${Env}-sg"
VpcId: vpc-db8475bd
SecurityGroupIngress:
- IpProtocol: tcp
FromPort: 22
ToPort: 22
CidrIp: 10.0.0.0/8
Tags:
- Key: Name
Value:
Fn::Sub: "${System}-${Env}-sg"
여기서 원래라면 다음과 같이 작성된 부분을
AMI:
Description: "Server AMI"
Default: "ami-0bcc04d20228d0cf6"
Type: String
파라미터로 대체하기 위해 다음과 같이 수정되었습니다.
AMI:
Description: "Server AMI"
Default: /EC2/AMI-ID
Type: AWS::SSM::Parameter::Value<String>
3. Cfn 실행하기
이번에는 실제로 실행해보겠습니다.
먼저 새로운 스택을 생성하기 위해 템플릿을 업로드합니다.
이 때, 파라미터를 확인하보면 AMI에 /EC2/AMI-ID
가 입력되어 있습니다.
그 다음에 스택을 생성하면 다음과 같이 성공적으로 잘 만들어집니다.
[파라미터] 태그에서 확인을 해보면 해석된 값으로 파라미터의 값을 확인할 수도 있습니다.
또한, EC2 인스턴스에서 확인해봐도 파라미터 값인 AMI가 잘 입력되어 있습니다.
이렇게 Cfn 템플릿에 파라미터를 활용해서 작성해봤습니다.
본 블로그 게시글을 보시고 문의 사항이 있으신 분들은 클래스메소드코리아 (info@classmethod.kr)로 연락 주시면 빠른 시일 내 담당자가 회신 드릴 수 있도록 하겠습니다 !