Search

AWS CloudFormation 관련 명령어

Tags
aws
cloudformation
command
cli
template
Created
2024/08/30 18:34
Created time
2024/08/30 09:33
category
aws

개요

CloudFormation에서 사용하는 명령어들을 정리

CloudFormation

AWS EC2와 같은 리소스를 기술하는 템플릿을 작성할 수 있는데, 이를 CloudFormation이 프로비저닝하여 생성하는 역할 수행
매번 별개의 EC2를 생성하고 설정할 필요 없기에, 리소스 관리 시간을 줄이고 어플리케이션에 집중할 수 있게 도움
인프라 관리 간소화
신속한 인프라 복제
인프라 변경 사항 제어 및 추적

관련 명령어

스택 배포

# template-file.yaml에 정의된 Parameter들을 명령어 상에서 직접 재정의하여 기입 가능 # 접속에 사용될 Key Pair 이름을 KeyName으로 정의하여 사용 # EC2 인스턴스와 통신할 수 있는 IP 대역을 SgIngressSshCidr로 정의하여 사용 # 생성하려는 EC2 인스턴스 타입을 MyInstanceType으로 정의하여 사용 aws cloudformation deploy --template-file <template-file.yaml> --stack-name <stack-name> --parameter-overrides KeyName=<ec2-key-pair-name> SgIngressSshCidr=$(curl -s ipinfo.io/ip)/32 MyInstanceType=<instance-type> --region <region>
Shell
복사

배포된 EC2 IP 확인

# Region과 Stack 이름을 지정하여 json path로 EC2 IP 확인 aws cloudformation describe-stacks --stack-name <stack-name> --query 'Stacks[*].Outputs[0].OutputValue' --output text --region <region>
Shell
복사

스택 상태

# 기본 명령어를 통해 배포된 스택 목록 확인 가능한데, 삭제된 스택들을 포함한 결과 출력 aws cloudformation list-stacks # 배포 상태를 stack-status-filter라는 필터 옵션으로 기입 가능 (상태 값은 아래 링크 확인) # https://docs.aws.amazon.com/cli/latest/reference/cloudformation/list-stacks.html#options aws cloudformation list-stacks \ --stack-status CREATE_IN_PROGRESS CREATE_COMPLETE CREATE_FAILED \ --query "StackSummaries[*].{StackName:StackName, StackStatus:StackStatus}" # 매초 확인은 아래와 같은 Loop 문으로도 확인 가능 # 생성 및 삭제 관련 상태 포함한 결과 확인 및 테이블 형식 while sleep 1; do date AWS_PAGER="" aws cloudformation list-stacks \ --stack-status-filter CREATE_IN_PROGRESS CREATE_COMPLETE CREATE_FAILED DELETE_IN_PROGRESS DELETE_FAILED \ --query "StackSummaries[*].{StackName:StackName, StackStatus:StackStatus}" \ --output table done
Shell
복사

배포된 EC2 접속

ssh -i <key-path>/<key-name>.pem ubuntu@$(aws cloudformation describe-stacks --stack-name <stack-name> --query 'Stacks[*].Outputs[0].OutputValue' --output text --region <region>)
Shell
복사

스택 삭제

aws cloudformation delete-stack --stack-name <stack-name>
Shell
복사