CLI
1 CloudFormation CLI 기본 명령어
- AWS CloudFormation은 인프라를 코드로 관리할 수 있게 해주는 강력한 서비스입니다.
- 이 블로그 포스트에서는 AWS CLI를 사용하여 CloudFormation 스택을 관리하는 방법에 대해 알아보겠습니다.
- AWS CLI를 통해 CloudFormation 스택을 생성, 업데이트, 삭제할 수 있습니다.
- 가장 자주 사용되는 명령어들은 다음과 같습니다:
aws cloudformation create-stackaws cloudformation update-stackaws cloudformation delete-stackaws cloudformation describe-stacks
2 스택 생성하기
create-stack 명령어 예시
aws cloudformation create-stack \
--stack-name my-new-stack \
--template-body file://template.yaml \
--parameters ParameterKey=KeyPairName,ParameterValue=MyKeyPair
- 스택을 생성하려면
create-stack명령어를 사용합니다. - 기본적인 사용법은 다음과 같습니다
- 이 명령어는 'my-new-stack'이라는 이름의 스택을 생성합니다.
--template-body옵션은 로컬 파일 시스템의 템플릿 파일을 지정합니다.--parameters옵션을 통해 템플릿에 필요한 파라미터를 전달할 수 있습니다.
3 스택 업데이트하기
update-stack 명령어 예시
aws cloudformation update-stack \
--stack-name my-existing-stack \
--template-body file://updated-template.yaml \
--parameters ParameterKey=KeyPairName,ParameterValue=MyNewKeyPair
- 기존 스택을 업데이트하려면
update-stack명령어를 사용합니다. - 사용법은
create-stack과 유사합니다: - 이 명령어는 'my-existing-stack'이라는 이름의 스택을 업데이트합니다.
- 새로운 템플릿 파일과 업데이트된 파라미터를 지정할 수 있습니다.
4 롤백 비활성화 옵션
롤백 비활성화 예시
aws cloudformation create-stack \
--stack-name my-no-rollback-stack \
--template-body file://template.yaml \
--disable-rollback
- 스택 생성 또는 업데이트 중 오류가 발생했을 때 기본적으로 CloudFormation은 롤백을 수행합니다.
- 하지만 때로는 오류가 발생해도 성공적으로 프로비저닝된 리소스를 보존해야 할 필요가 있습니다.
- 이럴 때
--disable-rollback옵션을 사용할 수 있습니다. - 이 옵션을 사용하면 오류 발생 시 CloudFormation이 롤백을 수행하지 않고 프로세스를 중지합니다.
- 성공적으로 생성된 리소스는 그대로 유지되어 디버깅에 도움이 될 수 있습니다.
5 스택 삭제하기
delete-stack 명령어
aws cloudformation delete-stack --stack-name my-stack-to-delete
- 스택을 삭제하려면
delete-stack명령어를 사용합니다: - 이 명령어는 지정된 스택과 관련된 모든 리소스를 삭제합니다.
- 삭제 전에 반드시 필요한 데이터를 백업하세요.
6 스택 상태 확인하기
describe-stacks 명령어
aws cloudformation describe-stacks --stack-name my-stack
- 스택의 현재 상태를 확인하려면
describe-stacks명령어를 사용합니다: - 이 명령어는 스택의 현재 상태, 출력값, 파라미터 등의 정보를 제공합니다.
- 스택 생성이나 업데이트 후 진행 상황을 모니터링하는 데 유용합니다.
7 주의사항 및 팁
- 롤백 비활성화 사용 시 주의:
--disable-rollback옵션은 디버깅에 유용하지만, 부분적으로 생성된 리소스에 대한 수동 정리가 필요할 수 있습니다. - 파라미터 파일 사용: 많은 파라미터가 있는 경우, JSON 파일로 파라미터를 관리하고
--parameters file://params.json형식으로 사용할 수 있습니다. - 변경 세트 사용: 중요한 업데이트 전에는
create-change-set명령어로 변경 사항을 미리 확인하는 것이 좋습니다. - 태그 활용:
--tags Key=Environment,Value=Production형식으로 태그를 추가하여 리소스 관리를 용이하게 할 수 있습니다.