◇ 공부 기록용으로 작성하였으니 틀린점, 피드백 주시면 감사하겠습니다 ◇
Infrastructure as Code, IaC
CloudFormation
CloudFormation은 AWS에서 인프라를 코드로 관리(IaC)할 수 있게 해주는 서비스이다.
이를 통해 JSON 또는 YAML 형식의 템플릿 파일을 사용해 AWS 리소스를 자동으로 생성하고 관리할 수 있다.
📄 Template (템플릿):
- CloudFormation을 사용하기 시작하려면, 사용자는 먼저 "Template"이라는 코드를 작성해야 한다.
- JSON 또는 YAML 형식으로 인프라의 구조를 정의한다.
- 예를 들어 EC2 인스턴스의 인스턴스 유형이나 RDS의 파라미터 정의 등, AWS 리소스를 어떻게 사용할지에 대한 설계도와 같은 역할을 한다.
📚 Stack (스택):
- 템플릿을 작성한 후, 이를 CloudFormation에 로드하면 AWS 리소스가 프로비저닝된다.
- AWS 리소스는 "Stack"이라는 AWS 리소스의 집합 단위로 관리된다.
- 하나의 스택에는 EC2 인스턴스, S3 버킷, VPC 등이 모두 포함되어 있다.
- 웹 애플리케이션이 필요 없을 때는, 개별 AWS 리소스를 삭제하는 대신 프로비저닝한 스택 전체를 삭제함으로써 해당 웹 애플리케이션에서 사용했던 리소스를 일괄적으로 삭제할 수 있다.
- 하나의 템플릿으로 여러 개의 스택을 생성할 수 있으며, 스택을 삭제한 경우에도 템플릿을 이용해 동일한 스택을 다시 생성하는 것도 가능하다.
👨🏫 템플릿은 직접 작성할 수도 있지만, AWS에서 제공하는 샘플을 이용하거나 관리 콘솔에서 GUI로 작성하는 것도 가능하다
👨🔧 Service Role
Service Role은 CloudFormation이 사용자 대신 Stack 내의 리소스를 조작할 수 있도록 허용하는 IAM Role이다.
이는 Stack 정의 시 지정할 수 있다.
Service Role을 지정하면, CloudFormation은 Stack에서 수행되는 모든 작업에 이 Role의 권한을 사용한다.
이를 통해 사용자가 개별 리소스에 대한 접근 권한이 없어도 AWS 리소스를 프로비저닝할 수 있다.
참고 자료: AWS 공식 문서
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-servicerole.html
AWS CloudFormation service role - AWS CloudFormation
When you specify a service role, CloudFormation always uses that role for all operations that are performed on that stack. It is not possible to remove a service role attached to a stack after the stack is created. Other users that have permissions to perf
docs.aws.amazon.com
📚 StackSets (스택셋)
AWS CloudFormation으로 생성한 템플릿을 기반으로 여러 AWS 계정이나 여러 리전(region)에서 Stack을 구축하려면 "StackSets"을 사용한다.
관리 계정에서 만든 템플릿을 사용하여, 타겟 계정(프로비저닝할 계정)과 프로비저닝할 리전을 지정함으로써 한 번의 작업으로 여러 동일한 환경을 구축할 수 있다.
테스트 환경을 여러 개 구축하거나, 새 계정을 발급할 때 IAM이나 보안 그룹 설정 등의 사전 작업을 스택셋으로 만들어 둘 수 있다.
StackSets에 관한 자세한 내용: https://jibinary.tistory.com/506
[AWS] StackSets: CloudFormation 템플릿을 여러 리전 & 계정에 배포하는 법 쉽게 정리 (Service-managed, Self-man
(참고) CloudFormation이란: https://jibinary.tistory.com/442 [AWS] CloudFormation이란? 쉽게 정리 (IaC, Template, Stack, StackSets, Service Role, Service Catalog)◇ 공부 기록용으로 작성하였으니 틀린점, 피드백 주시면 감사
jibinary.tistory.com
참고 자료: AWS 공식 문서
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html
Managing stacks across accounts and Regions with StackSets - AWS CloudFormation
Managing stacks across accounts and Regions with StackSets AWS CloudFormation StackSets extends the capability of stacks by allowing you to create, update, or delete stacks across multiple accounts and AWS Regions with a single operation. Using an administ
docs.aws.amazon.com
Create, share, organize, and govern your curated IaC templates
👨🔧 AWS Service Catalog
AWS Service Catalog는 회사에서 사용할 AWS 리소스를 미리 준비하여 표준화된 제품으로 제공할 수 있도록 돕는 서비스이다. (필요한 사람들이 정해진 규칙 안에서 쉽게 쓸 수 있게 도와준다)
주로 규정 준수와 일관성을 유지하면서 사용자들이 필요한 AWS 리소스를 쉽게 배포하도록 한다.
예시) 대기업 게임 회사
– 👩🏻💻 개발팀: AWS 리소스 사용하여 개발하고 싶어한다.
– 👩💼 IT 관리팀: 표준화된 관리가능한 AWS 리소스만 제공하고 싶다. (잘못된 설정이나 비용 문제를 피하고 싶음)
– 💡 해결책: Service Catalog 사용하여 특정 AWS 리소스만 모아서 제품을 만들어 개발팀에 공유한다.
🧩 CloudFormation 연관성
Service Catalog는 AWS 리소스를 제공하기위해 CloudFormation을 기반으로 리소스를 표준화하고 제공
AWS Service Catalog에 대한 자세한 내용: https://jibinary.tistory.com/649
'클라우드(AWS)' 카테고리의 다른 글
[AWS] SAM (Serverless Application Model)이란? 쉽게 정리 (SAM CLI, Template) (0) | 2024.10.02 |
---|---|
[AWS] CI/CD 서비스 쉽게 정리: Code Pipeline, Code Commit, Code Build, Code Deploy, CodeGuru, CodeStar, CodeArtifact (0) | 2024.10.02 |
[AWS] Redshift란? 쉽게 정리 (데이터 웨어하우스) (1) | 2024.09.14 |
[AWS] Security Group ID 란?? 쉽게 정리 (0) | 2024.09.12 |
[AWS] DMS (Database Migration Service)란? 쉽게 정리 (0) | 2024.09.12 |