일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 즉시로딩
- fetch
- querydsl
- PS
- 일대다
- 이진탐색
- exclusive lock
- 다대일
- SQL프로그래밍
- 연관관계
- 비관적락
- 유니크제약조건
- 다대다
- 낙관적락
- dfs
- 스프링 폼
- 힙
- BOJ
- shared lock
- execute
- 지연로딩
- 동적sql
- eager
- 연결리스트
- CHECK OPTION
- FetchType
- 스토어드 프로시저
- JPQL
- 백트래킹
- 데코레이터
- Today
- Total
흰 스타렉스에서 내가 내리지
AWS CloudFormation 의 개념과 구성요소 본문
CloudFormation 은 AWS 리소스를 코드로 정의하고 이를 통해 일관된 인프라 배포를 할 수 있도록 돕는 서비스이다.
# 장점
1. 자동화된 인프라 관리
- 여러 AWS 리소스를 하나의 템플릿으로 정의하고 배포함으로써 수동으로 설정하는 수고를 덜어준다. 이를 통해 시간 절약 및 효율성이 증대된다.
2. 인프라 버전 관리
- 템플릿 파일을 코드처럼 버전 관리할 수 있어, 변경 사항을 추적하고 롤백할 수 있다. 이는 IaC 원칙을 따른다.
3. 일관성
- 동일한 템플릿을 사용하여 다양한 환경 (예: 개발, 테스트, 프로덕션) 에 일관된 리소스를 배포할 수 있다.
4. Rollback 기능
- 배포 중에 오류가 발생하면 CloudFormation 은 자동으로 이전 상태로 롤백하여 안정성을 보장한다.
# 구성요소
1. 템플릿
---
AWSTemplateFormatVersion: "version date"
Description:
String
Metadata:
template metadata
Parameters:
set of parameters
Rules:
set of rules
Mappings:
set of mappings
Conditions:
set of conditions
Transform:
set of transforms
Resources:
set of resources
Outputs:
set of outputs
- Resources : 실제로 배포할 AWS 리소스를 정의하는 가장 필수적인 섹션이다. 예를 들어, EC2 인스턴스, S3버킷 , IAM 역할 등을 정의할 수 있다.
- Parameters : 템플릿에 사용자 입력 값을 받을 수 있는 변수이다. 예를 들어, EC2 인스턴스 유형이나 S3 버킷 이름과 같은 값을 템플릿에 동적으로 제공할 수 있다.
- Outputs : 생성된 리소스에서 사용자에게 유용한 정보를 출력하는 섹션이다. 예를 들어, EC2 인스턴스의 퍼블릭 IP 주소를 반환할 수 있다.
- Mappings : 서로 다른 환경에 맞게 리소스를 정의할 수 있도록 키-값 매핑을 정의하는 섹션이다. 예를 들어, 특정 리전에 따라 다른 AMI 를 사용할 수 있다.
- Conditions : 특정 조건에 따라 리소스를 생성할지 여부를 정의할 수 있는 섹션이다. 예를 들어, 프로덕션 환경에서는 특정 리소스를 생성하고 개발 환경에서는 생성하지 않도록 조건을 설정할 수 있다.
- Transform : 다른 템플릿이나 매크로를 탐조해 템플릿을 재사용하거나 AWS 에서 제공하는 템플릿 기능을 사용할 수 있다.
- Metadata : 추가 정보나 설명을 제공할 수 있는 섹션이다.
예시
AWSTemplateFormatVersion: "2010-09-09"
Description: A sample template
Resources:
MyEC2Instance: #An inline comment
Type: "AWS::EC2::Instance"
Properties:
ImageId: "ami-0ff8a91507f77f867" #Another comment -- This is a Linux AMI
InstanceType: t2.micro
KeyName: testkey
BlockDeviceMappings:
-
DeviceName: /dev/sdm
Ebs:
VolumeType: io1
Iops: 200
DeleteOnTermination: false
VolumeSize: 20
2. 스택 (Stack)
CloudFormation 템플릿을 기반으로 생성된 AWS 리소스의 모음을 스택(Stack) 이라고 한다. 스택은 템플릿을 사용하여 생성되며, 템플릿의 변경사항을 반영하여 리소스를 없데이트하거나 삭제할 수 있다. 모든 리소스는 스택 단위로 관리되며, 스택을 삭제하면 스택 내 모든 리소스가 함께 삭제된다.
- Create Stack : 템플릿을 사용해 새로운 스택을 생성하는 프로세스이다. 이 과정에서 사용자가 템플릿에 필요한 파라미터 값을 입력하게 된다.
- Update Stack : 기존 스택을 수정할 때 사용한다. 템플릿을 업데이트하여 새로운 리소스를 추가하거나, 기존 리소스를 변경할 수 있다.
- Delete Stack : 스택을 삭제하면 해당 스택에서 생성된 모든 AWS 리소스가 삭제된다.
3. Change Set
스택을 업데이트하기 전, 변경 사항을 미리 확인할 수 있는 기능이다.
Change Set 을 통해 스택에 적용된 변경 사항을 미리 보고, 예상치 못한 영향을 최소화할 수 있다.
변경 사항을 적용하기 전 반드시 검토하고 승인을 받을 수 있어, 실수로 인한 문제를 방지하는 데 유용한다.
4. StackSets
여러 AWS 계정과 여러 리전에 걸쳐 동일한 CloudFormation 스택을 배포하고 관리할 수 있는 기능이다.
예를 들어, 여러 리전이나 계정에서 일관된 네트워크 설정을 구성해야 할 때, StackSets 를 사용하면 여러 스택을 한번에 배포할 수 있다.
* 요약
1. 템플릿 : 리소스를 정의하는 문서 (JSON or YAML)
2. Stack : 템플릿을 사용해 생성된 AWS 리소스의 모음
3. Change Set : 스택 업데이트 시 미리 변경 사항을 검토할 수 있는 기능
4. StackSets : 여러 계정 및 리전에 스택을 배포할 수 있는 기능
5. Drift Detection : 스택의 리소스가 실제 환경과 일치하는지 감지하는 기능
6. Designer : 템플릿을 시각적으로 설계하는 도구
'AWS' 카테고리의 다른 글
CloudFormation 을 이용하여 IAM 역할 생성 및 정책 할당 (CLI 사용) (0) | 2024.09.13 |
---|---|
AWS CloudFormation vs Terraform ? (0) | 2024.09.13 |
AWS CLI에서 계정 전환 및 기본 프로필 설정 방법 (0) | 2024.09.13 |
Amazon OpenSearch 그리고 logstash 그리고 Spring boot (0) | 2024.07.10 |
RDS에서 Read Replica 사용 시 데이터 유실 문제와 해결 방법 (0) | 2024.07.01 |