AWS::AccountId
AWS 계정의 Id (12자리 숫자)
AWS::NotificationARNs
생성할 스택 이벤트와 관련된 Amazon SNS의 ARN 목록
AWS::NoValue
아무 값을 가지지 않음
AWS::Region
Stack을 생성할 리전
AWS::StackId
생성할 Stack의 Id
AWS::StackName
생성할 Stack의 이름
AWS::URLSuffix
거의 대부분 amazonaws.com의 값을 가지나, 특정 리전(China, AWS GovCloud)에서 값이 다름
AWS::Partition
거의 대부분 aws 값을 가지나, 특정 리전(China, AWS GovCloud)에서 값이 다름
Dynamic references with Parameter Store & Secrets Manager
토큰이나 DB 비밀번호 등의 정보를 Parameter Store나 Secrets Manager에 생성/저장하고 Template 내 다른 위치에서 {{resolve:서비스이름:키이름}} 형태로 값을 참조
# Example
...
Resources:
WebTierAsgDesSizeParameter:
Type: "AWS::SSM::Parameter"
Properties:
Type: String
Value: "1"
WebTierAsgMinSizeParameter:
Type: "AWS::SSM::Parameter"
Properties:
Type: String
Value: "1"
WebTierAsgMaxSizeParameter:
Type: "AWS::SSM::Parameter"
Properties:
Type: String
Value: "1"
...
WebTierAsg:
DependsOn: WebTierLbListener
Type: "AWS::AutoScaling::AutoScalingGroup"
Properties:
MaxSize: !Join [":", [ "{{resolve:ssm", !Ref WebTierMaxSizeParameter, "1}}"]]
MinSize: !Join [":", [ "{{resolve:ssm", !Ref WebTierMinSizeParameter, "1}}"]]
DesiredCapacity: !Join [":", [ "{{resolve:ssm", !Ref WebTierDesSizeParameter, "1}}"]]
VPCZoneIdentifier:
- !ImportValue WebTierSubnet1Id
- !ImportValue WebTierSubnet2Id
- !ImportValue WebTierSubnet3Id
LaunchTemplate:
LaunchTemplateId: !Ref WebInstanceLaunchTemplate
Version: "1"
TargetGroupARNs:
- !Ref WebTierTg
Tags:
- Key: Env
Value: !Ref Environment
PropagateAtLaunch: True
- Key: Name
Value: !Join [ "-", [ !Ref Environment, !Ref "AWS::StackName", "asg" ] ]
PropagateAtLaunch: True