IaaS/퍼블릭클라우드

(AWS) CloudFormation Output, Condition 에 대해

armyost 2022. 1. 19. 13:52
728x90

Output 이란?

  • Output section은 다른 Stack에서 사용할 수 있도록 값을 공유하는 것이다.
  • AWS CLI나 AWS Console 등을 통해서도 Output을 볼 수 있다.
  • 네트워크를 CF로 정의했을 경우 VPC ID나 Subnet ID를 공유하는데 유용하다
  • Output이 다른 Stack에서 참조되고 있으면 지울 수 없다.

 

사용법

 

Export

Outpus:  
  StackSSHSecurityGroup:
    Description:  The SSH Security Group for our Company
    Value: !Ref MyCompanyWideSSHSecurityGroup
    Export:
      Name: SSHSecurityGroup


Import

Resources:
  MySecureInstance:
    Type: AWS::EC2::Instance
    Properties:
      AvailabilityZone: us-east-1a
      ImageId: ami-a4c7edb2
      InstanceType: t2.micro
      SecurityGroups:
        - !ImportValue SSHSecurityGroup



Condition 이란?

Resource나 Output을 조건에 맞추어 생성을 컨트롤 하고자 할 때 사용한다. 

사용법

선언

Conditions:
  CreateProdResources: !Equals [ !Ref EnvType, prod ]


호출

Resources:
  MountPoint:
    Type:  "AWS::EC2::VolumeAttachement"
    Condition: CreateProdResources


고유 Function은 다음과 같은 것들이 있다. 
Fn::And
Fn::Equals
Fn::If
Fn::Not
Fn::Or