구름 쿠버네티스
구름 쿠버네티스 전문가 과정 6기 - 33일차
jwlish
2023. 10. 6. 15:16
반응형
리뷰 (Review)
IaC 개요
IaC
- Infrastructure as Code, 프로그래밍형 인프라
- 인프라 구성을 코드를 통해 자동으로 구축, 관리, 프로비저닝
- ex) 100개의 서버로 구성된 인프라 구축
- 수동 설정 - 오랜 시간이 걸리고 구축 도중 오류 발생 확률이 높다.
- IaC 활용 설정 - 하나의 코드를 통해 100개의 서버를 자동으로 구축
IaC 장점
- 비용 절감
- 배포 속도 향상
- 오류 감소
- 인프라 일관성 향상 (멱등성)
- 멱등성 - 언제나 동일한 결과 제공
용어
- 프로비저닝 - provisioning
- 클라우드 서비스를 시작하고 구성하는 것을 프로비저닝이라 한다.
- 인프라를 설정하는 프로세스로 시스템, 데이터, 네트워크 작동을 준비하는 과정을 의미한다.
- 형상 관리 - configuration management
- 이력 관리
- 서버 운영상 필요한 소프트웨어를 설치하고 설정으로 관리하는 것
- 설정 관리에 사용되는 여러 정보 이력을 관리
- IaC와 형상 관리
- IaC - 코드를 이용한 인프라 관리
- 형상 관리 - 운영체제 상에서 패키지를 설치하고 필요한 설정을 코드로 관리하는 것
- 배포 - deploy
- 프로비저닝 된 서버를 실행시키기 위해 Application version을 제공하는 작업
- 오케스트레이션 - orchestration
- 여러 시스템 또는 서비스를 조정하는 것
- 오케스트레이션의 목표는 배포, 관리, 확장, 네트워킹의 자동화
IaC tools
- AWS CloudFormation
- AWS에서 제공하는 IaC 서비스
- Ansible
- 별도의 Agent 없이 IaC 서비스 제공
- SSH 기반으로 IaC 서비스 제공
- Puppet
- Chef
- Terraform
- GUI 기반으로 IaC 서비스 제공
- 기타
IaC 서비스 - AWS CloudFormation
AWS CloudFormation
- 참고 자료
- AWS 대표적인 IaC 구성 조정 도구
- 스택을 생성할 때마다 AWS CloudFormation에서 템플릿에 설명된 리소스를 프로비저닝과 구성을 담당하는 AWS
리소스를 수동으로 생성하거나 구성할 필요가 없고 어떤 것이 무엇에 의존하는지 파악할 필요가 없다. - 장점
- 인프라 관리 간소화
- 신속하게 인프라 복제
- 인프라 변경 사항을 쉽게 제어 및 추적
- JSON 또는 YAML을 이용하여 작성
- JSON - https://www.json.org/json-en.html
- 각 요소 작성할 때 tab 간격을 사용하여 작성
- 요소는 key : value 형식
- 파일 확장자 .json
- YAML - https://yaml.org/
- 각 요소 작성할 때 space 2칸을 사용하여 작성
- 요소는 key : value 형식
- 파일 확장자 .yaml, .yml
- JSON - https://www.json.org/json-en.html
AWS CloudFormation 구성 요소
- 템플릿 - Template
- 스택 리소스 프로비저닝 및 구성을 위해 필요한 텍스트 파일
- JSON 또는 YAML 형식의 파일로 작성
- AWS CloudFormation Designer를 사용하여 GUI 기반으로 작성할 수 있다.
- 불필요한 코드가 템플릿에 추가될 수 있다. ex) size, position, ...
- AWS CloudFormation 템플릿을 AWS 리소스 구축을 위한 blueprint로 사용
- 스택 - Stack
- 하나의 단위로 관리할 수 있는 AWS 리소스 모음
- 스택의 생성, 업데이트, 삭제를 통해 리소스 모음의 생성, 업데이트, 삭제
- 스택의 모든 리소스는 AWS CloudFormation 템플릿을 통해 정의
- 스택을 삭제하면 모든 리소스는 모두 삭제
AWS CloudFormation 작동 방식
- JSON 또는 YAML 포맷으로 AWS CloudFormation 템플릿 작성
- 구성하려고 하는 AWS 리소스에 대한 정보 기술
- 작성된 템플릿을 S3 버킷에 저장
- 템플릿 파일은 로컬 저장 또는 S3 버킷 저장 선택 가능
- 템플릿 위치를 지정하여 CloudFormation 스택 생성
- 템플릿에 지정된 스택을 통해 AWS 리소스에 대한 프로비저닝 및 구성 작업 진행
스택 생성
- 서비스 메뉴→ 관리 및 거버넌스 → CloudFormation → 스택 생성
- 템플릿 지정
- 준비된 템플릿 - 사용자가 생성한 템플릿
- 샘플 템플릿 사용 - AWS에 미리 만들어져 있는 템플릿
- Designer에서 템플릿 생성 - Designer를 이용하여 템플릿 생성하여 사용
- 스택 세부 정보 지정
- 스택 이름
- 파라미터
- template 파일에 지정된 파라미터 정보 표시
- 해당 template을 이용하여 AWS 리소스 생성 시 필요한 파라미터 입력 시 사용
- 스택 옵션 구성
- 태그 지정
- 권한 부여
- 스택 실패 옵션 설정
- 고급 옵션 설정
- 검토 및 스택 생성
- 스택 생성 후 이벤트 정보를 확인하면 해당 스택이 템플릿을 이용하여 수행하는 과정 정보가 출력된다.
과정 중 에러가 발생하면 원인을 파악하여 템플릿 내용을 수정하고 다시 수행하는 과정을 반복한다. - 스택을 삭제하면 스택에 의해 생성된 모든 AWS 리소스는 같이 삭제된다.
더보기
Designer로 AWS CloudFormation 템플릿 생성
- 버킷 생성 - ACL 비활성화, 모든 퍼블릭 액세스 차단, 버킷 버전 관리 활성화, 태그, 기본 암호화 필요시 활성
- 서비스 메뉴 → 관리 및 거버넌스 → CloudFormation
- 스택 생성 → Designer에서 템플릿 생성
- CloudFormation 템플릿을 시각적인 도구를 사용하여 작성할 때 사용하는 도구
- Designer 사용법
- 리소스 유형
- 템플릿을 구성할 리소스에 대한 종류를 시각적인 형태로 제공
- EC2를 선택하면 일반적인 EC2 기반으로 인프라 구성을 위한 리소스 유형이 존재
- 리소스 유형
- 스택 생성 → Designer에서 템플릿 생성
AWS CloudFormation 템플릿
CloudFormation 템플릿 구성 요소
- AWSTemplateFormatVersion
- 템플릿 버전
- 템플릿 문자는 문자열 형태 사용
- 값을 지정하지 않은 경우 최신 버전 템플릿 포맷 버전으로 지정
- Metadata
- 템플릿에 대한 추가 정보 제공
- CloudFormation은 Metadata 섹션에 포함된 정보를 변환, 수정, 삭제하지 않음
- 민감 정보는 포함하지 않는 것이 좋다.
- Parameter
- 리소스 생성하거나 업데이트할 때 넘겨줄 파라미터 생성
- 템플릿의 Resource 및 Outputs 섹션에 파라미터 참조 가능
- 최대 60개 파라미터 지정 가능
- 각 파라미터마다 CloudFormation이 스택을 프로비저닝 할 실행 시간에 대한 값을 할당해야 함
- 파라미터는 동일한 템플릿에서 선언하고 참조해야 함
- 파라미터 참조 시에는 !ref <파라미터 이름> (yaml 기준) 형식 사용
- Mappings
- 조건부 파라미터 값을 지정하는 데 사용할 수 있는 키와 관련 값의 매핑
- Mappings 섹션은 "키 이름" "Mappings"로 이루어짐
- 매핑 키 이름은 문자열 사용
- Resource (필수)
- AWS 리소스 및 해당 속성 지정
- Logical ID - Resource 식별자, 논리적 ID, 영숫자로 구성, 고유한 값을 가져야 한다.
- Resource type - 리소스 유형은 선언하려는 리소스 유형을 식별
- 리소스 속성(Properties) - 리소스에 지정할 수 있는 추가 옵션
- AWS 리소스 및 해당 속성 지정
- Outputs
- 스택 속성을 볼 때마다 반환하는 값 설명
- CloudFormation은 outputs 섹션에 포함된 정보를 삭제하거나 난독화 하지 않는다.
- 최대 60개 출력 가능
TIF
9월 중순이다.
9월이 된 지 얼마 안 지난 것 같은데 다음 주면 또 10월이다.
옆에 사람 한 명 붙여놓고 싶다. 매일 집중해서 몰입해도 모자랄 판국에 정신 팔고 있는 시간이 많은 것 같다.
10월도 코 앞이고 다음 주부터는 네트워크 관리사 2급 자격증 조금씩 준비해야겠다.
2022. 09. 19 에 작성된 글입니다.
반응형