AWS에서 EC2 instance를 어느정도 이해 한 뒤 지금은 이걸 코드로 구현하고 관리하는
방법에 대해서 배웠다
인프라를 코드로 관리
Infrastrucure as Code
프로그래밍형 인프라
인프라 구성을 코드를 통해 자동으로 구축, 관리, 및 프로비저닝
코드로 관리하기 때문에 생성 수정 삭제가 수월함
ex) 100개의 서버로 구성된 인프라 구축
수동설정 - 오랜 시간이 걸리고 구축 도중 오류 발생확률 높다
Iac활용 설정 - 하나의 코드를 통해 100개의 서버를 자동으로 구축
Iac가 결국 프로비저닝을 위한 도구
형상 관리 - configuration management
서버 운영상 필요한 소프트웨어를 설치하고 설정으로 관리하는 것
설정관리에서 사용하는 여러 정보 이력을 관리
인프라 구축이나 프로그래밍 할때도 ‘형상관리’ 사용가능
ex) 코드를 수정하다가 에러가 났을 경우 이전으로 돌아가야할때
형상관리를 해야 롤백이 됨! -> 전에 정보를 갖고 있어야 롤백이 된다
IaC -코드를 이용한 인프라 관리 주로 형상관리가 내부에 포함!!
배포 - deploy
프로비저닝된 서버를 실행시키기위해 어플리케이션 버전을 제공하는 작업
오케스트레이션 - orchestration
여러 시스템 또는 서비스를 조정하는 것
오케스트레이션의 목표는 배포 ,관리, 확장, 네트워크 자동화
AWS Cloud Formation - aws에서 제공하는 Iac 서비스
Ansible - 별도의 Agent 없이 Iac 서비스 제공
리눅스환경의 SSH 기반에서 작동 -> 환경 구축이 쉽다
Terraform - GUI 기반으로 작동, 요새 많이 씀, 윈도우에서 사용가능
puppet,Chef,기타 등등
스택을 생성할때 마다 AWS CloudFormation에서 템플릿에 설명된 리소스를 프로비저닝과
구성을 담당하는 AWS 리소스를 수동으로 생성하거나 구성할 필요가 없고 무엇에 의존하는지 파악할 필요가 없다
인프라 관리 간소화 및 신속하게 인프라 복제, 변경 가능
JSON,YAML을 이용하여 작성
JSON - tab간격(4칸)을 사용하여 작성 ( {} 같은 괄호를 자주 사용)
YAML - space2칸을 사용하여 작성 (Ansible, 쿠버네티스 이거 주로 사용)
템플릿 - Template
스택 리소스 프로비저닝 및 구성을 위해 필요한 텍스트 파일
JSON 또는 YAML 형식의 파일로 작성
AWS CloudFormation Designer 를 사용하여 GUI 기반으로 작성 가능
-> 불필요한 코드가 템플릿에 추가 될 수도 있다…
AWS CloudFormation에서 템플릿을 AWS 리소스 구축을 위한 Blueprint로 사용
스택 - Stack
하나의 단위로 관리할 수 있는 AWS 리소스 모음
스택의 생성, 업데이트, 삭제를 통해 리소스 모음의 생성, 업데이트, 삭제
스택의 모든 리소스는 AWS CloudFormation 템플릿을 통해 정해진다
JSON 또는 YAML 포맷으로 AWS cloud Formation 템플릿 작성
구성하려고 하는 AWS 리소스에 대한 정보를 적기
작성된 템플릿을 S3 버킷에 저장
템플릿파일은 로컬 저장 도는 S3 버킷 저장 선택 가능
템플릿 위치를 지정하여 Cloud Formation 스택 생성
템플릿에 지정된 스택을 통해 AWS 리소스에 대한 프로비저닝 및 구성 작업 진행
Designer 사용법
리소스 유형
템플릿을 구성하려면 리소스에 대한 종류를 시각적인 형태로 제공
EC2 리소스 유형을 선택하면 일반적인
EC2 기반으로 인프라 구성을 위한 리소스 유형이 존재
(EC2 리소스 유형의 instance가 EC2를 의미)
aws instance를 100개 생성했다 했을때 수동으로 관리 한계가 생김
-> 이걸 자동화 하는게 오케스트레이션! -> Iac에 내장되어있다 -> 대표가 쿠버네티스
쿠버네티스가 오케스트레이션 tool !!!!
컴파일: 사용자가 작성한 코드를 컴퓨터가 이해할 수 있는 언어로 번역하는 일
빌드: 컴파일된 코드를 실제 실행할 수 있는 상태로 만드는 일
배포: 빌드가 완성된 실행 가능한 파일을 사용자가 접근할 수 있는 환경에 배치시키는 일
1~2과정 => 컴파일을 포함해 war, jar 등의 실행 가능한 파일을 뽑아내기까지의 과정을 빌드한다고도 함.
텍스트 파일은 VSC 같은데서 확인 가능한 파일
바이너리 파일은 확인 안됨