티스토리 뷰

* 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 동작 순서

[참고] 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번 포트를 사용함

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/06   »
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
글 보관함