CloudFormation에서 매개변수 입력 순서를 지정하는 방법

2814 단어 CloudFormationIaCAWS
안녕하세요, Masuyama입니다.

CloudFormation을 좋아하기 때문에 검증 할 때는 주로 템플릿에서 리소스를 만들고 있습니다.
몇 가지 파라미터를 입력할 때 생각했던 대로의 순서가 되지 않는 것이 수수함에 신경이 쓰였습니다.

파라미터 입력 순서를 지정하지 않을 때



예를 보여줍니다.

아래의 템플릿 내에서는 아래 5개의 파라미터를 위에서 지정하고 있습니다.
1. EnvironmentName
2. VPCCIDR
3. PrivateSubnetCIDR
4. Ec2ImageId
5. Ec2InstanceType
6. KeyPair
``
...
Parameters:
EnvironmentName:
Type: String
Default: xxxxxxxx-env

VPCCIDR:
Type: String
Default: 10.3.0.0/16

PrivateSubnetCIDR:
Type: String
Default: 10.3.0.0/24

Ec2ImageId:
Type: AWS::SSM::Parameter::Value
Default:/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2

Ec2InstanceType:
Type: String
Default: t3.nano

KeyPair:
Type: String
Default: CfKeyPair
...
``

그러나, 템플릿을 업로드했을 때에는 랜덤한 파라미터 입력 순서가 되어, 템플릿내에서 (위로부터) 기술하고 있는 순서와는 전혀 다릅니다.



파라미터수가 적은 가운데라면 거기까지 신경이 쓰이지 않습니다만, 많아지면 혼란이나 입력 미스의 기초가 되므로, 입력 순서를 지정하도록 해 봅시다.

파라미터 입력 순서 지정



파라미터 그룹 설정



입력 순서를 지정할 때, 우선은 파라미터를 몇개의 그룹으로 나누는 작업을 합니다.
예를 들어 VPC 관련 파라미터, EC2 관련 파라미터와 나누는 작업입니다.
(입력 순서를 지정하는 것만으로는, 모든 파라미터를 1 개의 그룹에 넣어 버려도 상관 없습니다만, 그룹핑 해 주는 것이 가시성이 오르므로 추천입니다.)

여기에서는 다음과 같이 그룹화합니다.
- Stack 관련
- EnvironmentName
- VPC 관련
- VPCCIDR
- PrivateSubnetCIDR
- EC2 관련
- Ec2ImageId
- Ec2InstanceType
- KeyPair

템플릿에서 매개 변수 그룹 지정



이 경우 템플릿의 시작 부분에 MetaData > AWS::CloudFormation::Interface > ParameterGroups라는 테두리를 만들어 지정합니다.
AWSTemplateFormatVersion: "2010-09-09"

Metadata:
  AWS::CloudFormation::Interface:
    ParameterGroups:
      -
        Label:
          default: Stack Configuration
        Parameters:
          - EnvironmentName
      -
        Label:
          default: VPC Configuration
        Parameters:
          - VPCCIDR
          - PrivateSubnetCIDR
      -
        Label:
          default: EC2 Configuration
        Parameters:
          - Ec2ImageId
          - Ec2InstanceType
          - KeyPair
...

템플릿 업로드



위 템플릿을 업로드하면 매개 변수 그룹별로 나뉘어져 있으며 템플릿에서 위에서 지정한 순서로 매개 변수를 입력하도록 열이 만들어졌습니다.



입력시의 가시성도 올라가고, 매번 같은 순서로 입력하게 되므로 입력 미스도 줄이는 것에도 연결됩니다.
또, 템플릿 자체도 읽기 쉬워지기 때문에, 적극적으로 파라미터 그룹은 사용해 가려고 생각합니다.

좋은 웹페이지 즐겨찾기