이 글은 코드프레소 Java 웹 개발 체험단 활동 중 클라우드 컴퓨팅 첫 걸음 강좌를 기반으로 작성하였습니다.
코드프레소 URL: https://www.codepresso.kr/
강의 목차
먼저 강의 목차는 아래 그림과 같이 구성되어 있습니다.
클라우드 컴퓨팅 핵심 개념
클라우드 컴퓨팅 개요
비즈니스에서 IT 기술 및 자원은 중요하다. 전통적인 IT자원 관리는 비효율적이다.
Cloud는 Netflix의 성공 배경 중 하나이다. IT 자원에 대한 관리는 AWS에 맡기고 Netflix는 컨텐츠에 집중할 수 있다. 클라우드를 사용함으로써 기업들이 핵심 비즈니스에 집중할 수 있다.
클라우드 컴퓨팅 개념과 장점
클라우드 컴퓨팅이란 인터넷을 통해 가상화 된 컴퓨터의 IT 리소스를 제공하는 것이다.
인터넷 기반 컴퓨팅의 일종으로 정보를 자신의 컴퓨터가 아닌 인터넷에 연결된 다른 컴퓨터로 처리하는 기술을 의미한다.
Cloud의 가장 큰 특징은 컴퓨팅 자원을 원할 때, 원하는 만큼 사용할 수 있고 사용 한 만큼만 요금을 지불한다는 것이다.
Cloud를 도입하면 Computing Resource에 대한 탄력적 대응이 가능해 진다. 트래픽이 몰릴 때 -> 서버 1000대 임대, 트래픽이 없을 때 -> 서버 900대 반납 100대만 사용
클라우드 컴퓨팅의 주요 특징
On Demand
- Computing Resource On Demand
- Computing 자원도 내가 원할 때 언제든지 쓰자
대규모 확장성
- 클라우드 사업자가 대규모의 Computing 자원을 미리 구축
- AWS는 전세계 주요 도시에 컴퓨팅 자원을 구축
종량제 과금
- Cloud 서비스는 사용한 만큼만 지불
- 초기 비용이 낮아 Risk를 줄일 수 있음
관리의 편의성
- 서버를 직접 구매, 관리 하려면
- 전통적 IT 자원 관리 방법을 위해서는 해당 전문가가 필수
- 서버, 네트워크, 보안 등을 직접 설정하고 관리
클라우드 컴퓨팅의 종류
Service Model
- IaaS - Infrastructure as a Service
- IT 기본 자원만 제공
- Server, Storage, Network
- 새로 컴퓨터 하나 구매 하는 개념
- Platform as a Service
- IaaS에 OS, Middleware, Runtime 추가
- Middleware: RDBMS 등
- Runtime: JDK, Python 등 프로그램이 작동하는 환경
- 개념의 범위가 가장 넓음
- 일반적으로 개발자를 대상으로 함
- 코드 개발만 해서 올릴 수 있는 상태
- AWS Elastic Beanstalk, Google App Engine
- SaaS - Software as a Service
- 모든 기능이 동작하는 SW를 제공
- 네이버 클라우드
- 구글 드라이브
- 구글 캘린더
- 네이버 메일
- Office 365
- Dropbox
- ERP, CRM...
- On Premise
Deployment Model
- Public Cloud
- Private Cloud
- Hybrid Cloud
- Community Cloud
Public Cloud
- Cloud 서비스를 필요로 하는 사용자 누구든지 사용 가능
- 누구나 사용한 만큼 비용만 지불하면 됨
- Cloud 사업자가 IT 자원을 서비스로 제공
Private Cloud
- 기업 및 기관 내부에서만 사용 가능한 Cloud Computing 환경을 구축
- 해당 기업/기관에 속하지 않은 사람은 사용 불가
- 구축 난이도 높지만, 보안/법적 규제 등의 이유로 사용
Hybrid Cloud
- Public/Private Cloud를 조합해서 사용하는 형태
- 보안이 중요한 시스템은 Private Cloud에, 그 외 시스템은 Public Cloud를 사용 가능
- Private Cloud를 주로 사용 하되 예상치 못한 수준의 트래픽이 몰리는 경우 Public Cloud로 확장
클라우드 컴퓨팅의 주요 용어
Data Center
- 수많은 서버들을 한 데 모아 네트워크로 연결해 놓은 시설
- IDC - Internet Data Center
- CDC - Cloud Data Center
- Server Hotel
- Data Center는 Cloud의 토대
- Cloud 산업이 커질 수록 더 많은 Data Center가 구축 되는 중
- Data Center에서 중요한 관리 포인트는 발열 관리
- Facebook은 추운 날씨의 스웨덴에 Data Center 건립
Region
- Region은 Data Center가 위치한 지역
- 일반적으로 도시를 지칭
- IT 리소스를 생성할 Region은 선택 가능
- 한국에서도 전세계 데이터 센터의 자원을 생성 가능
- Region 선택은 서비스 성능에 큰 영향을 미침
- 대상 고객의 지역과 자원 생성 할 Region이 최대한 가까워야 함
- 한국 고객 대상으로 서비스를 하려면 서울 Region에 자원 생성
- 미국 고객 대상으로는 미국 서부/동부 Region에 자원 생성
- Cloud 사업자 선택 시 서비스 대상 국가에 Region 선택이 가능한 지 확인 필요
- 자원 사용 비용이 Region 마다 상이 함
- 지대, 세금 등이 국가 마다 차이 있음
Availability Zone
- 하나의 Region은 두 개 이상의 Availability Zone으로 구성 됨
- Availability Zone은 가용 영역이라고도 불리며 줄여서 AZ로 표시
- 하나의 AZ는 하나의 Data Center
- Availability(가용성): 시스템이 정상적으로 가동 되는 상태
- 서비스를 단일 Data Center(AZ)에서만 운영하면
- 지진, 번개, 정적 등으로 Data Center(AZ) 장애 가능
- AZ는 장애에 대해 Availability를 높이기 위한 장치
- 하나의 Region 내에서 다수의 AZ에 서비스 분산하여 높은 Availability 만족
Virtualization(가상화)
- 가상화는 소프트웨어로 가산의 하드웨어를 생성하는 기술
- 가상의 하드웨어는 VM - Virtual Machine
- Cloud 서비스에서 서버를 사용할 때, 일반적으로 물리적인 하나의 서버가 아닌 가상화 된 서버를 제공 받음
클라우드 컴퓨팅 서비스 사업자
국내외 주요 클라우드 사업자
- Amazon Web Service
- Azure
- Google Cloud Platform
- IBM Bluemix
- Naver Cloud Platform
- NHN Entertainment Toast Cloud
- SK Cloud Z
- KT Cloud
- Alibaba Cloud
- Tencent Cloud
AWS
- 클라우드 시장의 최고 강자
- 2006년에 첫 서비스 오픈
- 22개의 Region과 69개의 AZ
- 서울 Region에 3개 AZ 보유
- 총 212개의 서비스 제공
Azure
- Microsoft에서 출시한 클라우드 서비스
- 글로벌 점유율 2위
- 국내에는 수도권과 부산 2군데 데이터 센터
- PaaS 서비스 및 DevOps 서비스에 집중
- Google의 클라우드 서비스
- Google의 운영 노하우가 직접 되어 있음
- 빅데이터와 인공지능과 관련 된 서비스가 강점
- 빅데이터 분석
- 2020 2월에 서울 Region 출시
- 네이버에서 출시한 클라우드 서비스
- 네이버/라인의 글로벌 운영 노하우
- 해외 Region 보유
- 국내 서비스 중에서는 가장 많은 기능 제공
- 인공지능 관련 서비스 다수
Toast Cloud
- NHN Entertainment에서 출시
- NHN의 게임 운영 노하우가 반영
- 게임과 관련 된 서비스 많음
- Dooray라는 협업 서비스 제공
Alibaba/Tencent Cloud
- 중국 기업인 Alibaba와 Tencent가 출시한 Cloud 서비스
- 중국은 작은 서비스도 트래픽의 규모가 다름
- Tencent Cloud는 국내 데이터 센터 존재
- 중국 진출하는 게임 업체들은 Tencent Cloud 사용
AWS 활용한 클라우드 컴퓨팅 실습
AWS EC2 서비스 개념
EC2
- Elastic Cloud Compute
- AWS의 가장 기본적인 자원 - 리눅스 서버, 윈도우 서버
- 가상 머신 상에 OS 설치 되어 있는 형태
EC2 인스턴스
- CPU, Memory, Storage, Network 성능에 따라 다양한 인스턴스 타입이 존재
- 범용 인스턴스
- 컴퓨팅 최적화 인스턴스
- 메모리 최적화 인스턴스
- GPU 가속 인스턴스
EC2 가격 정책
-
사용 유형
- 프리티어
- 온디맨드
- 스팟 인스턴스
- 예약 인스턴스
- 전용 호스팅
-
온디맨드 가격 정책
-
OS 별, Region 별, 인스턴스 타입 별 요금 확인
-
예약 인스턴스
- 1년 또는 3년 단위로 계약
-
스팟 인스턴스
- 경매방식으로 최대 90% 저렴하게 이용 가능
- 입찰 가격을 정해 놓고 조건이 맞으면 인스턴스 사용
- 인스턴스가 생성 되지 않을 수 있으며, 사용 중 중단 될 수 있음
- 배치 처리 등 실시간이 아닌 기능에 사용 가능
AMI
- AMI - Amazon Machine Image
- 가상 머신은 Image를 활용하여 생성
- 이미지 - OS, 설치 된 프로그램, 설정 등이 포함 된 파일
- 이미지를 가상 서버에 적용하여 동일한 환경을 구성 가능
- Pre-Configured OS라고 이해할 수 있음
Security Group
- EC2 인스턴스에 대한 보안 설정
- default로 EC2는 모든 Port가 막혀 있음
- Inbound, outbound에 대해 접속 허용 설정 가능
- 어떤 Port를 접속 허용 할지 설정
- 접속 허용 할 Source 설정
Key Pair
- EC2 인스턴스에 접속하기 위한 암호화 된 파일
- AWS 처음 사용 시 새로운 Key Pair 생성 해야 함
- Key Pair는 타인과 공유 하면 안됨
- Mac 환경에서는 pem 사용 가능, 윈도우 환경에서는 ppk로 변환 필요
인스턴스의 상태
- EC2 인스턴스를 생성하면 실행 상태
- 인스턴스를 중지 가능 -> 재실행 가능
- 인스턴스 종료(Terminate) 하면 인스턴스가 삭제 됨
Elastic IP
- EC2 인스턴스는 Private IP와 Public IP를 보유
- 기본적으로 할당 되는 Public IP는 인스턴스 재실행 후에는 변경 됨
- 영구적인 Public IP를 설정하려면 Elastic IP 사용
- Elastic IP는 실행 중인 인스턴스에 연동하여 사용하면 무료
- 생성 후 사용하지 않는 경우 비용 발생