goorm-25일차

박경현·2022년 9월 19일
0

AWS에서 EC2 instance를 어느정도 이해 한 뒤 지금은 이걸 코드로 구현하고 관리하는
방법에 대해서 배웠다

Iac 개요

인프라를 코드로 관리
Infrastrucure as Code
프로그래밍형 인프라
인프라 구성을 코드를 통해 자동으로 구축, 관리, 및 프로비저닝
코드로 관리하기 때문에 생성 수정 삭제가 수월함

ex) 100개의 서버로 구성된 인프라 구축
	수동설정 - 오랜 시간이 걸리고 구축 도중 오류 발생확률 높다
	Iac활용 설정 - 하나의 코드를 통해 100개의 서버를 자동으로 구축
	

Iac 장점

  • 비용절감 - 한사람이 코드로 관리 가능해서
  • 배포 속도 향상
  • 오류 감소
  • 인프라 일고나성 향상

용어

  • 프로비저닝: 클라우드 서비스를 시작하고 구성하는것을 뜻함
  • 인프라를 설정하는 프로세스로 시스템 데이터 네트워크 작동을 준비하는 과정을 의미

Iac가 결국 프로비저닝을 위한 도구

  • 형상 관리 - configuration management

    서버 운영상 필요한 소프트웨어를 설치하고 설정으로 관리하는 것
    설정관리에서 사용하는 여러 정보 이력을 관리
    인프라 구축이나 프로그래밍 할때도 ‘형상관리’ 사용가능

    	ex) 코드를 수정하다가 에러가 났을 경우 이전으로 돌아가야할때 
    	형상관리를 해야 롤백이 됨! -> 전에 정보를 갖고 있어야 롤백이 된다
    	
    	IaC -코드를 이용한 인프라 관리 주로 형상관리가 내부에 포함!!
  • 배포 - deploy
    프로비저닝된 서버를 실행시키기위해 어플리케이션 버전을 제공하는 작업

  • 오케스트레이션 - orchestration

    여러 시스템 또는 서비스를 조정하는 것
    오케스트레이션의 목표는 배포 ,관리, 확장, 네트워크 자동화

Iac tools

  • AWS Cloud Formation - aws에서 제공하는 Iac 서비스

  • Ansible - 별도의 Agent 없이 Iac 서비스 제공
    리눅스환경의 SSH 기반에서 작동 -> 환경 구축이 쉽다

  • Terraform - GUI 기반으로 작동, 요새 많이 씀, 윈도우에서 사용가능

  • puppet,Chef,기타 등등

Iac 서비스 - AWS Cloud Formation

스택을 생성할때 마다 AWS CloudFormation에서 템플릿에 설명된 리소스를 프로비저닝과
구성을 담당하는 AWS 리소스를 수동으로 생성하거나 구성할 필요가 없고 무엇에 의존하는지 파악할 필요가 없다

AWS Cloud Formation 장점

인프라 관리 간소화 및 신속하게 인프라 복제, 변경 가능
JSON,YAML을 이용하여 작성

	JSON - tab간격(4칸)을 사용하여 작성 ( {} 같은 괄호를 자주 사용)
	YAML -  space2칸을 사용하여 작성 (Ansible, 쿠버네티스 이거 주로 사용)

AWS Cloud Formation 구성 요소

템플릿 - Template
	스택 리소스 프로비저닝 및 구성을 위해 필요한 텍스트 파일
	JSON 또는 YAML 형식의 파일로 작성
	AWS CloudFormation Designer 를 사용하여 GUI 기반으로 작성 가능
		-> 불필요한 코드가 템플릿에 추가 될 수도 있다…
	AWS CloudFormation에서 템플릿을 AWS 리소스 구축을 위한 Blueprint로 사용

스택 - Stack
	하나의 단위로 관리할 수 있는 AWS 리소스 모음
	스택의 생성, 업데이트, 삭제를 통해 리소스 모음의 생성, 업데이트, 삭제
	스택의 모든 리소스는 AWS CloudFormation 템플릿을 통해 정해진다
  1. JSON 또는 YAML 포맷으로 AWS cloud Formation 템플릿 작성
    구성하려고 하는 AWS 리소스에 대한 정보를 적기

  2. 작성된 템플릿을 S3 버킷에 저장
    템플릿파일은 로컬 저장 도는 S3 버킷 저장 선택 가능

  3. 템플릿 위치를 지정하여 Cloud Formation 스택 생성

  4. 템플릿에 지정된 스택을 통해 AWS 리소스에 대한 프로비저닝 및 구성 작업 진행

  • AWS Cloud Formation 실습
    S3 버킷 만들기
    Cloud Formation들어가기 -> Designer 클릭
    	Designer 사용법
    		리소스 유형
    			템플릿을 구성하려면 리소스에 대한 종류를 시각적인 형태로 제공
    			EC2 리소스 유형을 선택하면 일반적인 
    			EC2 기반으로 인프라 구성을 위한 리소스 유형이 존재
    			(EC2 리소스 유형의 instance가 EC2를 의미)

재밋는 내용

aws instance를 100개 생성했다 했을때 수동으로 관리 한계가 생김
-> 이걸 자동화 하는게 오케스트레이션! -> Iac에 내장되어있다 -> 대표가 쿠버네티스

쿠버네티스가 오케스트레이션 tool !!!!

  1. 컴파일: 사용자가 작성한 코드를 컴퓨터가 이해할 수 있는 언어로 번역하는 일

  2. 빌드: 컴파일된 코드를 실제 실행할 수 있는 상태로 만드는 일

  3. 배포: 빌드가 완성된 실행 가능한 파일을 사용자가 접근할 수 있는 환경에 배치시키는 일

1~2과정 => 컴파일을 포함해 war, jar 등의 실행 가능한 파일을 뽑아내기까지의 과정을 빌드한다고도 함.

텍스트 파일은 VSC 같은데서 확인 가능한 파일
바이너리 파일은 확인 안됨

profile
SW로 문제를 해결하려는 열정만 있는 대학생

0개의 댓글