AWS Systems Manager Parameter Store에 여러 파라미터 값이 저장되어 있습니다. 요구 사항에 따라 AWS CloudFormation 스택에서 이러한 파라미터를 동적으로 사용하고 싶습니다.
간략한 설명
다음 해결 방법에서는 Microsoft Windows와 Linux를 예제 환경으로 사용하여 CloudFormation 스택에서 다양한 파라미터를 동적으로 사용하는 방법을 보여줍니다.
중요: 다음 명령과 템플릿을 사용할 때는Windows 및 Linux를 요구 사항에 맞게 바꿔야 합니다.
해결 방법
1. AWS Systems Manager 콘솔을 엽니다.
2. 탐색 창에서 [파라미터 스토어]를 선택합니다.
3. Systems Manager 파라미터를 String 유형으로 생성하여 Linux 또는 Windows용 Amazon Machine Image(AMI) ID를 저장합니다.
Linux:
LinuxAmiId - AMI-Id-for-Linux-resources
-또는-
Windows:
WindowsAmiId - AMI-Id-for-Windows-resources
**참고:**AMI-Id-for-Linux-resources 및 AMI-Id-for-Windows-resources를 본인 리소스의 AMI ID로 바꿉니다.
4. 다음 예제 CloudFormation 템플릿을 사용하여 배포에 사용할 AMI를 선택하는 파라미터를 생성합니다.
"Parameters": {
"AmiToUse": {
"Type": "String",
"AllowedValues": [
"windows",
"linux"
]
}
},
"Conditions": {
"CreateWindowsResources": {
"Fn::Equals": [
"windows",
{
"Ref": "AmiToUse"
}
]
}
},
"Resources": {
"EC2Instance": {
"Type": "AWS::EC2::Instance",
"Properties": {
"ImageId": {
"Fn::If": [
"CreateWindowsResources",
"{{resolve:ssm:WindowsAmiId:1}}",
"{{resolve:ssm:LinuxAmiId:1}}"
]
}
}
}
}
참고: 앞의 템플릿에서 AmiToUse를 windows로 선택하면 CreateWindowsResources 조건이 true로 평가됩니다. CloudFormation은 WindowsAmiId에 저장된 값을 사용하여 AWS::EC2::Instance 리소스를 프로비저닝합니다. Linux의 경우, 조건이 false로 평가되고 CloudFormation은 LinuxAmiId에 저장된 값을 사용하여AWS::EC2::Instance 리소스를 프로비저닝합니다.
동적 참조에 대한 자세한 내용은 동적 참조를 사용하여 템플릿 값 지정을 참조하세요.
관련 정보
CloudFormation 워크숍: 동적 참조 랩