티스토리 뷰
* CloudFormation
- IaC(Infrastructure as Code) 기반으로 AWS 인프라 리소스를 자동으로 생성하는 서비스
- CloudFormation을 사용하면 VPC, EC2 등 리소스를 수동으로 생성할 필요 없이 리소스들을 템플릿(코드)으로 구성하고 스택을 생성하여 해당 서비스의 프로비저닝과 설정을 미리 구성할 수 있음
- 인프라를 더욱 빠르게 프로비저닝하고 보안성을 높이고 변경 사항을 추적할 수 있으며, 생성된 템플릿을 재사용하거나 수정해서 활용할 수 있음
- CloudFormation 사용 시 템플릿 구조와 형태의 이해가 필요함
- CloudFormation 이용하여 모든 AWS 인프라를 정의하고 생성할 수 없음
* CloudFormation 특징
1) IaC(Infrastructure as Code)
- 수동으로 자원을 만들지 않고 선언된 코드로 자원을 생성하는 것으로, 불필요한 오류를 줄일 수 있음
- CloudFormation 템플릿을 작성해서 인프라를 생성할 때 같은 템플릿을 사용하면 다른 환경에서도 인프라를 쉽게 생성할 수 있으며, 변경사항을 추적하고 변경 내용을 승인하며 이전 버전으로 롤백하는 것이 쉬움
2) AWS 리소스 간 종속성 정리
- CloudFormation을 사용하면 AWS 리소스 간 종속성을 템플릿에 정의할 수 있으므로, 이런 종속성을 수동으로 관리하는 것보다 훨씬 쉽고 안정적임
3) 인프라 관리의 자동화
- CloudFormation을 사용하면 인프라 구성을 자동화하여 운영 비용을 줄이고 인프라 관리를 간소화할 수 있음
- 지속적 배포를 지원하는 CI/CD 파이프라인과 통합할 수 있음
* CloudFormation 구성 요소
- 템플릿, 스택, CloudFormation는 CloudFormation의 대표 구성 요소
1) 템플릿
- AWS 인프라를 JSON 또는 YAML 형식의 코드로 정의하는 파일
- 템플릿을 이용하여 AWS 인프라의 속성, 관계, 종속성 등을 정의함
2) 스택
- CloudFormation을 이용하여 생성하는 AWS 인프라의 집합
3) 리소스
- AWS CloudFormation이 생성하는 AWS 리소스
- 이런 리소스에는 Amazon EC2 인스턴스, Amazon RDS 데이터베이스, Amazon S3 버킷 등이 포함됨
4) 파라미터
- 스택을 생성할 때 전달할 수 있는 매개변수
- 이런 파라미터를 사용하면 템플릿을 재사용하여 다른 환경에 대한 스택을 쉽게 생성할 수 있음
5) 이벤트
- CloudFormation 스택에서 발생하는 모든 이벤트를 기록함
- 이런 이벤트는 스택 생성, 변경, 삭제와 관련된 정보를 제공함
- 이런 정보를 활용하여 스택 문제를 해결할 수 있음
6) CloudFormation
- 템플릿을 해석해서 스택을 생성하고, 정의된 AWS 인프라를 생성/변경/삭제할 수 있음
* CloudFormation 동작 순서
1) CloudFormation 템플릿 작성
- CloudFormation을 사용하여 관리하고자 하는 인프라를 정의하는 템플릿을 작성함
- 템플릿은 JSON 또는 YAML 형식으로 작성할 수 있음
2) 템플릿 업로드
- 작성한 템플릿을 AWS CloudFormation 서비스에 업로드함
3) 스택 생성 또는 업데이트
- AWS CloudFormation 서비스를 사용하여 업로드한 템플릿으로 스택을 생성하거나 업데이트 함
- 템플릿 파일에 정의된 AWS 인프라가 생성되거나 업데이트됨
4) 스택 모니터링
- CloudFormation 서비스는 스택 생성 또는 업데이트를 수행하면서 로그와 이벤트를 생성함
- 스택 생성 또는 업데이트 상태를 모니터링 할 수 있음
5) 스택 삭제
- CloudFormation 서비스에서 스택을 삭제하면 스택에 속한 모든 AWS 인프라도 함께 삭제됨
* 기본 인프라 환경 검증
1) HTTP (HyperText Transfer Protocol)
- 인터넷에서 데이터를 주고받을 수 있게 하는 표준 프로토콜
- 웹 서버와 클라이언트 간에 데이터를 주고받을 때 사용함
- 클라이언트는 서버에 HTTP 요청(Request)을 보내고, 서버는 그에 대한 응답(Response)을 반환함
- 다양한 메소드를 사용하여 요청과 응답을 일반 텍스트 형식으로 주고받으
- HTTP는 TCP 프로토콜을 사용하여 신뢰성 있게 데이터를 송수신하며, 80번 포트를 사용함
[HTTP가 사용하는 메소드]
(1) GET : 서버에서 리소스를 요청함
(2) POST : 서버로 데이터를 보냄
(3) PUT : 서버에 새로운 데이터를 업로드함
(4) DELETE : 서버에서 데이터를 삭제함
2) SNMP (Simple Network Management Protocol)
- 네트워크 장비들을 모니터링하고 관리하는 프로토콜
- 네트워크 장비들에 에이전트를 설치하고, SNMP 관리자와 에이전트 간에 메시지를 주고받는 방식으로 동작
- 일반적으로 MIB라는 데이터베이스를 사용하여 네트워크 장비의 상태 정보 저장
► OID라고 하며, 이 정보는 SNMP 관리자가 해당 ID를 요청할 때마다 에이전트가 그에 맞는 자원 정보를 전달하는 방식
MIB = Management Information Base
- 네트워크 장비들의 성능 모니터링, 구성 변경, 장애 진단 등 다양한 용도로 사용됨
- 다양한 용도로 사용 되어 네트워크의 안정성과 가용성을 높일 수 있음
- UDP 프로토콜을 사용하며 161번 포트를 사용함
'개인공부 > AWS' 카테고리의 다른 글
[AWS] ALB 생성 및 동작 과정 확인 (0) | 2024.01.26 |
---|---|
[AWS] CloudFormation 기본 인프라 배포 및 환경 검증 (0) | 2024.01.26 |
[AWS] 데이터베이스 서비스 (0) | 2024.01.25 |
[AWS] 스토리지 서비스 (0) | 2024.01.25 |
[AWS] 부하분산 서비스 - ELB 기능 (0) | 2024.01.21 |