사전교육 2일 차.
.
.
.
강사님이 1일 차에도 강조했던 말이지만, 용어에 익숙해지는 것이 학습의 첫걸음이다.
용어를 일반적인 단어처럼 자유롭게 쓰고, 누군가 용어의 의미를 물으면 막힘없이 대답할 수 있다면 완성이다.
또한 목적을 가지고 공부하는 것이 좋다고 한다.
교육과정에서 배우는 네트워크 지식은 Redhat 자격증인 RHCSA 8이나 CCNA를 딸 정도는 수업한다고 한다.
컴퓨터 구성요소들의 정의를 알아놓으면 좋을 것 같다.
(예시 : OS란 무엇인가?)
.
.
.
On-premise에서 cloud 환경으로의 migration이 늘어나며, 클라우드 시장이 점점 더 커지고 있다.
클라우드 환경은 사용자가 설비를 구매할 필요가 없으며, 원할 때 사용할 수 있고, 확장성(용량 조절 능력)이 좋다.
On-premise 환경은 설치 비용/유지보수 비용이 크다. 나름의 이점도 있지만, 기업들은 이 환경을 유지해서 얻을 장점보다 비용 측면의 단점이 더 크다고 판단한 것으로 보인다. 물론 어떤 기업은 두 방식을 모두 사용하는 하이브리드 IT 인프라를 사용하기도 한다. 보안이 필요한 데이터는 On-premise 환경에 보관하고, 나머지는 cloud에 보관하는 방식으로.
이전 글에서 썼듯, 인프라 환경은 On-premise -> IDC(Internet Data Center) -> Cloud의 순으로 발전했다.
(IDC = Colocation Facilities)
사용자가 얼마나 가지고 있고, 업체가 얼마나 제공하고 있느냐의 차이다.
서버 OS에서 점유율이 가장 큰 것은 리눅스와 윈도우다. 물론 자세히 찾아보면 Ubuntu, Redhat, Unix 등이지만, 모두 리눅스 기반의 OS니 대충 그렇다고 치자. 리눅스를 배우면 다 비슷한 OS들이다.
클라우드 점유율은 AWS > MS Azure > GCP >... 의 순서다. 아래로는 알리바바/IBM 등이 있다.
이러나저러나 많이 쓰는 제품을 배우는 것이 좋다. 업체마다 기능/기술 자체는 거의 비슷하기도 하고...
AWS 클라우드는 크게 Public/Private로 나뉜다. 교육 과정은 보통 Public 위주라고 한다.
클라우드 관련 직무를 희망한다고 해서 저것만 해서는 안된다. 클라우드라고 해도 물리적으로 시스템과 네트워크는 존재하기에 관련 지식이 필요하다. 또한 클라우드 대행/공급업체의 업무를 위해서는 시스템/네트워크 지식이 필요하다.
AWS를 배우면, 일단 콘솔 창으로 조절하는 방식을 배운 후에 IaC 도구를 통해 통제하는 방법을 배우게 될 것이다.
.
.
.
1. 가상화
장비를 소유/관리하지 않고도 서비스를 이용할 수 있게 하는 것. 컴퓨터 리소스를 추상화하는 것이다.
가상화의 종류를 세기 시작하면 좀 복잡해진다. 가상화의 개념이 사용되는 방향이 한두 가지가 아니기 때문이다.
오늘 사전교육에서는 서버 가상화를 중심으로 설명했다.
* 서버 가상화(Server Virtualization)
하나의 서버 HW에 하나의 OS가 가동되고 있을 때, 다른 OS를 사용하는 App을 서버에 설치하려면 어떻게 해야 할까?
-> 서버 위에 여러 OS를 올리면 되지 않을까?
-> 생짜로 올리는건 불가! 서버 HW, 메인 OS와 게스트 OS 사이에 가상화 엔진 Hypervisor를 적용한다.
-> 엔진을 거쳐 올라간 각 (게스트 OS + App)를 VM(Virtual Machine)이라 한다.
-> 각 VM들이 하나의 HW 자원을 나눠먹는다.
교육 중 보통 컴퓨터는 윈도우를 쓰는데, 여기에서 리눅스/CentOS를 사용할 때 중요하게 사용될 것이다.
AWS에서는 이러한 VM들을 EC2 서비스라는 이름으로 제공하고 있다. VM을 만들고 관리하는 것은 AWS 엔지니어가 하고, 업체는 EC2 서비스를 관리하며 고객에게 공급하는 것이다.
2. 마이크로 서비스
VM을 통한 마이크로 서비스는 서버 가상화에서 언급한 것처럼 고성능의 HW에 OS를 깔고, 그 위에 Hypervisor를 깔고, 그 위에 VM(게스트 OS + App)을 실행시킨다.
컨테이너 서비스는 Hypervisor 대신 Docker Engine을 깔고, 그 위에 VM 대신 컨테이너를 가동한다.
컨테이너는 VM과는 다르게 App 구동을 위한 최소한의 OS만 설치하기에 VM에 비해 가볍다.
컨테이너와 VM의 차이점은 아래와 같다.
- VM보다 리소스 자원을 덜 먹는다.
- VM보다 가용성, 확장성이 더 좋다.
- 기반 OS는 컨테이너를 프로세스로 인식한다.
마이크로 서비스와 컨테이너 서비스, 쿠버네티스를 묶어서 언급하셨는데, 더 자세히 알아볼 필요가 있을 것 같다.
3. Cloud Native Pattern
XaaS(Everything as a Service). 클라우드가 발전해 온 전반적인 패턴.
뭐가 더 좋다,의 의미가 아니다. on-premise 환경에서 서비스를 직접 제공해주는 인프라부터 SW까지 서비스 제공의 형태가 바뀌는 것을 의미한다. 사용자가 관리해야 하는 영역이 점점 줄어들고 공급자가 관리하는 영역이 늘어나는 방식으로 변화했다.
위 그림에서 계층별로 구분해 놓은 방식이 있는데, 강사님은 다른 구분 방식도 그려주셨다.
시설 - HW - OS - Nginx - lib/function - App의 구분이었다.
위 내용 외에도 DevOps 관련해서 CI(Continuous Integration)과 CD(Continuous Delivery/Deployment)도 들었다. 찾아보자.
.
.
.
나중에 할 일
- '클라우드 인프라'에 대해 더 알아보고, 관련 글 작성하기
- Provisioning에 대해 더 알아보고, 관련 글 작성하기
- 위 1에서 작성한 AWS Cloud Formation, Terraform, Chef, Ansible에 대해 더 자세하게 알아보기.
커리큘럼에 해당 기능들의 교육이 예정되어 있다.
- 컴퓨터 구성요소들의 정의 정리하기
- 가상화에 대해 정리하기
- 마이크로 서비스, 컨테이너 서비스, 쿠버네티스에 대해 정리하기
- Cloud Native Pattern + Cloud Service Model에 대해 정리하기
- Runtime에 대해 정리하기
- Serverless Computing Service에 대해 정리하기
- CI, CD에 대해 정리하기
'교육' 카테고리의 다른 글
[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 |
[사전교육 1일 차] 21.07.12 : 관련 용어 정리 1 (0) | 2021.07.12 |
댓글