사전교육 1일 차.
.
.
.
K-Digital AWS 과정 - 정식 명칭은 'Ansible 자동화로 구현한 클라우드 환경 DevOps 과정' - 시작 전 주에 사전교육이 시작되었다. 필수 참여는 아니었으나, 딱히 할 일도 없었고, OT라는 느낌으로 참여했다.
클라우드 관련 직무를 대략적으로 나누면 개발/운영 직무가 있는데, 이 과정은 운영 직무를 교육받는 과정이라고 한다.
인프라 구축/운영, AWS 리소스 관리 교육을 받고, 클라우드 서비스 대행업체 취업을 타깃으로 잡는다고 한다.
물론 모든 교육과정이 그러하듯, 본인 하기 나름이다.
언어는 Python을 사용한다고 한다.
.
.
.
교육 초반에는 IT 용어에 익숙해지는 것이 필요하다고 들었다.
사전교육 기간 동안은 튜토리얼이라 생각하고, 들은 것을 정리해놓으면 본 교육 중에도 볼 일이 많을 것 같다.
아래 내용들은 사전교육 시간에 들었던 용어들을 조사해 정리한 것이다.
.
.
.
0. Infra란 무엇인가?
IT 환경을 운영하고 관리하는데 필요한 구성 요소. 구성 요소로는 HW, SW, OS, 네트워킹 구성 요소, 데이터 저장소(Storage) 등이 있다. 이러한 구성 요소들은 IT Service/Solution을 제공하는 데 사용된다.
과거의 전통적 인프라들은 기업이 자체적으로 운영하는 시설에 배포되고 관리되었으나, 최근에는 클라우드 컴퓨팅 시스템에 배포되는 경우가 많아지고 있다.
※ 클라우드 컴퓨팅 시스템에 배포하는 것은 '클라우드 인프라'와는 다르다!
1. IaC(Infrastructure as Code)
서비스 시스템을 구성할 때 수동 구성 대신 Shell 기반의 스크립트를 사용해 컴퓨팅 인프라를 구성하는 기술.
인프라 구성을 프로그램 처리하는 방식을 말한다. DevOps 도입을 위해 필요한 요소 중 하나다.
비용 절감/빠른 실행/리스트 관리 측면에서 유용하다.
1-1. 구성 조정 도구 : 서버 및 인프라의 구축을 자동화하도록 설계.
- AWS CloudFormation : 리소스 구성을 설명하는 템플릿을 생성하고, 해당 템플릿으로 리소스의 provisoning과 구성을 담당하는 서비스. 대충 AWS 구성의 재사용을 쉽게 해주는 서비스라고 보면 된다. 단점이라면, 당연히 AWS에서만 사용 가능하다는 것.
- Terraform : Hashicorp의 오픈 소스 코드형 인프라(IaC) 툴. HCL(Hashicorp Configuration Language)을 사용해 클라우드 리소스를 선언, 코드로 리소스를 관리한다. AWS Cloud Formation과 달리 다양한 클라우드 서비스와 호환 가능. 현재 가장 인기 있는 인프라 자동화 도구 중 하나라고 한다. 단순 구문을 사용해 여러 클라우드/On-premise 데이터 센터에서 인프라를 Provisioning 하고, 변화에 대응해 다시 provisioning 하는 것이 안전하고 효율적으로 가능하기 때문이다.
1-2. 구성 관리 도구 : 이미 Provisioning 된 인프라의 SW와 시스템을 구성/관리하도록 설계.
- Chef : Chef사에서 개발한, Ruby와 Erlang으로 작성된 형상 관리 도구. 시스템을 구성하는 Recipe를 작성하고, 이 Recipe들을 Cookbook으로 묶어 관리한다. Recipe에서는 시스템 명령어 실행/처리, 서비스 관련 파일/설정/OS의 배포/세팅/컴파일 등을 기술한다. 조직 서버의 구성/유지보수 작업을 간소화할 수 있다.
- Ansible : python으로 구현된 오픈 소스 IaC 도구. 서버의 Provisioning, SW 배포 등의 자동화를 관리해준다. 이로 인해 배포되는 모든 서버가 동일한 환경을 유지할 수 있도록 할 수 있다. 행위(provisioning, 배포 등)의 대상을 정리한 Inventory와 대상에 대한 행위를 정의한 Playbook 등으로 구성되어 있다.
※ Provisioning : IT 인프라를 설정하는 프로세스. 또한 Client가 사용할 수 있도록 데이터와 리소스에 대한 접근을 관리하는데 필요한 단계를 지칭하기도 한다. Configuration과 함께 배포 프로세스에 포함된다. 이 단계가 완료되어야 Configuration 단계를 진행할 수 있다.
※ Configuration : 환경설정/설정/구성. 줄여서 Config라고 하기도 하고, 유사한 단어로 Set up, Setting, Preference라고도 한다.
간단히 정리하자면 구성 조정 도구에서는 시스템의 구축을, 구성 관리 도구는 시스템의 작동 방식이나 세팅 등의 구성을 자동화하는 도구라고 보면 될 것 같다.
2. Cloud 서비스 형태
1) IaaS(Infrastructure as a Service) : 서버를 운영하기 위해, 인프라를 구축하기 위해 필요한 것(물리적 자원 - 리소스, IP, 네트워크, 저장소 등)을 서비스의 형태로 제공한다. PaaS, SaaS의 기반 기술이다.
예시 : AWS, MS Azure, GCP 등
2) CaaS(Container as a Service) : 컨테이너 기반 추상화를 통해 사용자가 App을 배포/관리하도록 지원하는 클라우드 서비스 컴퓨팅 모델. IaaS와 SaaS의 사이에 있다. 컨테이너의 이점을 누릴 수 있다.
예시 : Google Container Engine, AWS ECS, Azure ACS 등
3) PaaS(Platform as a Service) : 서비스를 개발할 수 있는 환경과 환경을 이용하는 App을 개발할 수 있는 API까지 제공하는 형태.
예시 : AWS Elastic Beanstalk, Google App Engine, Windows Azure 등
4) FaaS(Function as a Service) : Serverless Computing의 기반이 되는 서비스. 기능 단위로 서비스를 제공해서 개발자가 서버/리소스의 provisioning/관리 등의 문제에서 벗어나 개발에 집중할 수 있도록 한다.
예시 : AWS Lambda, Google Cloud Functions, MS Azure Functions 등
5) SaaS(Software as a Service) : 클라우드 환경에서 동작하는 App을 서비스 형태로 제공하는 것.
예시 : Dropbox, Google Drive, 네이버 MYBOX(구 N드라이브) 등
3. Infra 발전 과정
1) On-Premise : 조직의 서버를 자체적으로 보유한 전산실 서버에 직접 설치해 운영하는 방식. 클라우드 방식의 서비스는 Off-Premise라고도 한다. 데이터의 중요도에 따라 클라우드 서버와 자체 서버에 나누어 보관하는 하이브리드 인프라도 있다.
2) Co-location Facilities : 고객에게 저장 공간, 회선 등을 대여해주거나, 고객의 서버를 받아 작동해주는 시설. 대충 월세 내는 서버라고 생각하면 된다.
3) Cloud : 인터넷 기반의 가상화된 리소스/서버를 사용한다.
4. DevOps란 무엇인가?
Development + Operation. 개발진과 운영진이 연계/협력하는 개발 방법론이다. 각 부문 담당자들 간의 소통/협업/통합/자동화를 강조한다. 다른 부문 간의 소통이 활발해야 하기에, 한 사람에게 개발/운영/네트워크 등의 넓은 범위에서 기초적인 지식을 요구한다.
.
.
.
나중에 할 일
- '클라우드 인프라'에 대해 더 알아보고, 관련 글 작성하기
- Provisioning에 대해 더 알아보고, 관련 글 작성하기
- 위 1에서 작성한 AWS Cloud Formation, Terraform, Chef, Ansible에 대해 더 자세하게 알아보기.
커리큘럼에 해당 기능들의 교육이 예정되어 있다.
'교육' 카테고리의 다른 글
[1일 차] 21.07.20 : 네트워크 기초 (0) | 2021.07.20 |
---|---|
[사전 교육 5일 차] 21.07.16 : 네트워크 기초 (0) | 2021.07.18 |
[사전교육 4일 차] 21.07.15 : 관련 용어 정리 4 + 네트워크 기초 (0) | 2021.07.15 |
[사전교육 3일 차] 21.07.14 : 관련 용어 정리 3 + AWS 입문 (0) | 2021.07.14 |
[사전교육 2일 차] 21.07.13 : 관련 용어 정리 2 (0) | 2021.07.13 |
댓글