CloudFormation
이전에 Infrastructure as Code에 대해 글은 쓴 적이 있습니다.
(hanjustudy.tistory.com/7?category=788393)
소스 코드를 통해 인프라를 관리할 수 있으며, git 등의 버전 관리 시스템을 사용하여 인프라의 버전 또한 관리할 수 있습니다.
이에 따라 인프라 구축 또한 코드 리뷰, PR 등을 사용하여 어플리케이션 개발과 같은 맥락으로 사용할 수 있습니다.
CloudFormation은 AWS에서 제공하는 구축 자동화를 위한 서비스입니다.
CloudFormation Template
CloudFormation은 AWS에 구축한 구성을 템플릿으로 만들고, 재사용하기 쉽게 만들어주는 서비스입니다.
CloudFormation은 JSON 또는 YAML 형식으로 작성한 템플릿을 바탕으로 EC2 인스턴스, VPC 네트워크 등 다양한 자원을 생성해줍니다.
또한 이렇게 생성된 것을 Stack이라고 합니다.
(docs.aws.amazon.com/ko_kr/AWSCloudFormation/latest/UserGuide/template-guide.html)
템플릿 구조에 대해 설명드리면,
Description
템플릿에 대한 설명입니다. 사용자를 위한 설명으로 필요에 따라 적어줍니다.
Parameters
스택 생성을 할 때 파라미터로 값을 전달합니다.
파라미터는 템플릿 내부에서 Ref 함수를 참조하고, 파라미터를 사용함으로써 템플릿의 유연성을 높일 수 있습니다.
Mappings
해시 테이블처럼 키에 따라 값을 설정할 수 있습니다.
리전마다 사용할 AMI를 다르게 하는 경우 등에 사용합니다.
Conditions
조건을 판단합니다. 조건이 일치하는 경우에 실행할 리소스를 지정할 수 있습니다.
Resources
생성할 자원을 정의합니다. EC2 인스턴스, Security Group 등 생성할 자원의 자원의 유형을 지정하고 설정합니다.
Outputs
템플릿으로 생성한 결과를 출력합니다.
이를 살제로 사용해보기 위해, AWS에서 제공하는 CloudFormtaion 템플릿을 받아보았습니다.
템플릿의 경우 다음 링크에서 받았습니다.
해당 샘플릿 중 저의 경우에는 WordPress 확장성과 내구성을 예시로 사용해보았습니다.
1. 사용하고자 하는 샘플 템플릿에 Launch stack을 클릭해줍니다.
2. 해당 템플잇으로 스택을 생성할 수 있고, Designer에서 보기를 클릭하면 템플릿을 좀 더 편리하게 확인할 수 있습니다.
3. 다음을 누른 후, 파라미터를 입력해줍니다. 이를 다시 확인해보면 템플릿의 파라미터 부분에서
설정한 값들을 입력해주는 것임을 확인할 수 있습니다.
4. 다음으로 스택 생성을 누르고 기다리면, 다음과 같이 스택이 생성된 것을 확인할 수 있습니다.
5. 다음으로 콘솔에서 EC2를 확인해보면, 템플릿에 설정된 대로 EC2 인스턴스가 생성되었습니다.
6. 또한 보안 그룹도 템플릿에 맞게 생성된 것을 확인할 수 있습니다.
'AWS' 카테고리의 다른 글
[AWS] CloudFront (2) | 2020.07.24 |
---|---|
[AWS] S3 (0) | 2020.07.23 |
[AWS] 탄력적 IP (Elastic IP) (0) | 2020.07.20 |
[AWS] CloudWatch Logs (0) | 2020.07.13 |
[AWS] CloudWatch (0) | 2020.07.12 |