( Infrastructure as Code )
IT 분야에 있다면 기본적으로 알고 있어야 할 지식임.
대표적인 도구 : 클라우드 포메이션, github, docker, Terraform, Ansible 등
각 도구의 특징을 이해하고 최적의 것을 선택하는 것이 중요
구축
서버 구축 - OS 설치, CPU, 메모리 용량 선정, 케이블링(온프레미스의 선까는 작업도 포함) 등
네트워크 구축 - CIDR 블록 설정 ( 네트워크 대역 설정 ) 등 [ ex) 100명 - 프린터, 인터넷 전화기, 서버, CCTV, 출입 지문인식 등 170개 ]
라우팅 테이블 - 프로토콜 ( http, ssh, rdp 등 ) , IP 주소, 포트번호 등의 ACL 설정
소프트웨어 설정 - 웹 서버, DB 서버, 스프트웨어( git, ..) 등
소프트웨어 초기 설정 - 웹 서버로 공개할 디렉토리 생성 등
유지보수
서버 , 네트워크 , 라우트 테이블 , 소프트웨어 - 추가/변경/삭제
-> 웹 서버, DB서버, 소프트웨어 버전 업 등
최우선 : 시스템에 대한 안정성 확보 ( 이중화, 복구훈련 등 )
시스템은 보통 5~7년 유지보수 하며 운영 -> 폐기
이러한 작업 IaC 로 자동화
과제
구축하는 인프라의 수가 많을수록 인프라 구축 요원의 작업 공수가 증대됨
클라우드도 같음
-> 비용이 많이 들어남
작업품질의 저하 ( 인프라 수가 많아 질수록 작업 실수 등으로 인해 작업 풀질이 저하됨)
=> IaC
정의 파일 작성하여 명령어 실행으로 구축 및 유지보수의 과제를 해결.
효과
작업 공수의 절감. 코드만 잘 이해하면 인프라 수에 상관없이 일괄적으로 구축함
작업 품질의 향상. 인프라 수에 상관 없이 코드화됨으로 코드에 의한 체크가 가능해짐
docker - Terraform - AWS 이런식으로 운용할것임
Terraform
Ansible ( 해외에서 많이 사용 )
쿠버네틱스
Puppet ( 있다는 것 정도는 알아두자 )
Chef ( 있다는 것 정도는 알아두자 )
Terraform ( TF )
TF파일 - TFstate파일( 과거의 백업 파일이라 보면 됨 )
차이 확인, TFstate파일 반영 => 자동
우리가 수작업 해야할 것 => TF라는 파일안에 프로바이더( 연결정보 선언 ) 선언
핸즈온(실습)에서 사용할 AWS 서비스, 툴
ec2에 아파치 서버를 만들어서 TF로 인덱스 코드를 바꿀 예정임
내일은 도커와 TF를 모두 이용하여 웹서버 취약점 공부할 환경을 AWS에 구현
AMI 인스턴스 고유 식별 번호를 알아야함.
클라우드 상의 정보를 긁어 와서 사용해야함.
VSC(비주얼스튜디오코드)를 이용하여 코드 작성 - 코드 오류를 잡는데 편함.
오늘은 핸즈온(실습)의 흐름 7 까지 진행할 예정
내일수업은 오늘 작성한 내용과 도커를 병행할 예정임 도커 복습 해올것