네이버 클라우드 플랫폼 서비스 라인업

 


Server Types

 

서버 구축 방식

  • VM
    • H/W 위에 HyperVisor 위에 복수 VM
  • VDS
    • H/W 위에 HyperVisor 위에 단일 VM
  • Bare Metal
    • H/W 위에 바로 OS

클라우드 환경에서 VM 간 간섭 현상에 대한 위험을 0으로 만들기 위해선 VDS 또는 Bare Metal 방식을 사용해야 한다.

Bare Metal Server

  • 단독으로 사용할 수 있는 고성능 물리 서버를 클라우드 형태로 제공.
  • 하이퍼바이저 없이 물리 서버 자체에 운영 체제를 설치.
  • RAID 1+0, RAID 5 등 적합한 RAID 구성 방식 적용 가능.
  • 단독 서버이기에 성능에 민감한 서비스의 안정적인 운영 가능.
  • CentOS, ORACLE Linux와 Windows 제공.
  • '내 서버 이미지', '스냅샷', '추가 스토리지' 기능 사용 불가.
  • 서버 장애 시 Live Migration 불가

 

GPU Server

  • 병렬 처리에 최적화된 GPU 서버의 고성능 컴퓨팅 파워를 제공.
  • 딥 러닝을 위한 GPU 서버 팜으로 Classic 환경에선 NVIDIA P40, V100 사용.
  • VPC 환경에선 NVIDIA T4, V100 사용.
  • GRID 방식으로 공유 자원으로써 사용하지 않고 Pass Through를 적용하여 전용 리소스로써 제공.

 

서버 타입별 기능 비교표

기능 Micro Compact Standard High Memory CPU Intensive VDS GPU 2세대 서버(High CPU, Standard, High Memory, CPU Intensive
스토리지 추가 불가 가능 가능 가능 가능 가능 가능 가능
SSD 스토리지 이용 불가 가능 가능 가능 가능 SSD Only 가능 가능
오토스케일링 이용 불가 가능 가능 불가 가능 불가 불가 가능(High CPU, Standard)
IOPS 성능 낮음 높음 높음 높음 높음 높음 높음 높음
Network Interface 이용 불가 가능 가능 가능 가능 가능 불가 가능
글로벌 회선 이용 불가 가능 가능 불가 불가 불가 불가 가능

Server Operations

 

Server Image / Snapshot / 유사 서버

Server Image : 서버 OS + 추가 볼륨에 대한 상태를 이미지로 뜨는 것이다. Classic 환경에선 서버가 셧다운된 상태에서만 가능하고, VPC 환경에선 러닝중이어도 가능하다. 부팅 디스크 타입, 서버 타입(사양) 변경 또는 리전 간 이미지 공유에 사용된다.

Snapshot : 볼륨에 대한 상태를 이미지로 저장한다. 디스크 타입 변경에 사용되며, 사이즈 변경은 불가하다. 볼륨 이미지 또한 리전 간 공유가 가능하다.

유사 서버 : 서버에 대한 스펙만 저장하는 것이다. 실제로 서버의 기능을 할 수 없다.

Init Script

서버 생성 시 최초 1회 실행되는 스크립트. 서버에 설치해야 하는 패키지나 초기 설정 내용을 스크립트로 선언하여 서버 초기화를 빠르고 편리하게 구성할 수 있다.
같은 용도의 서버를 여러 대 일괄로 생성하는 경우 잘 사용된다.

OS별 스크립트 사용
Linux : Python, Perl, Shell
Windows : Visual Basic

서버에서 /var/log/ncloud-init.log 경로로 접속하여 확인할 수 있다.

추가 스토리지 구성

OS 영역인 50GB에 추가로 더 큰 스토리지 용량이 필요할 경우 사용한다. 단일 서버당 최대 15개의 추가 스토리지를 구성할 수 있으며, 스토리지당 10GB~2TB까지 용량을 잡아줄 수 있다. Linux-LVM, Windows-동적 디스크 할당을 통해 여러 개의 디스크를 하나의 볼륨으로 묶음으로써 여러 개의 디스크를 하나의 볼륨인 것처럼 사용할 수 있다.
서버가 중지 상태이거나 대상 스토리지가 서버에서 unmount 되어 있는 상태일 때 서버에 연결된 스토리지를 Detach한 후 다른 서버로 Attach하여 옮길 수 있다.


서버 생성까지의 단계

  1. VPC 생성
  2. NACL 생성
  3. Subnet 생성
  4. ACG 생성
  5. Server 생성

VPC

계정당 최대 3개의 VPC 생성 가능.

IP 주소 범위

  • 10.0.0.0/8 : 10.0.0.0 ~ 10.255.255.255
  • 172.16.0.0/12 : 172.16.0.0 ~ 172.31.255.255
  • 192.168.0.0/16 : 192.168.0.0 ~ 192.179.255.255

Peering : VPC 간 연결을 위한 네트워크 구성. 다른 계정의 VPC와도 연결이 가능하다(로그인 ID, VPC ID, VPC 이름 입력 필요).

ACG / NACL

AWS의 Security Group과 NACL이라고 볼 수 있다. 외부에서 접속 시 NACL을 먼저 거친 후 서버 레벨에서 ACG가 검문한다.

ACG Network ACL
서버 단위로 적용 Subnet 단위로 적용
Allow 규칙만 설정 Allow, Deny 규칙 설정
Default All Deny Default All Permit
모든 규칙을 확인하여 판단 우선 순위에 따라 규칙을 반영

VPC 환경에서는 서버, 서브넷에 적용된 ACG, NACL을 다른 ACG, NACL로 변경 가능하다.

Subnet

VPC당 최대 200개의 Subnet 생성 가능. 나머진 AWS의 Subnet과 같다.

Load Balancer

Target Group이라는 단위로 관리할 서버들을 묶는다. 동일한 VPC 내에 있는 서버들에 대해 생성 가능하다. 하나의 서버가 동시에 여러 타겟 그룹에 속할 수는 있지만 타겟 그룹을 다수의 로드 밸런서에 연결할 수는 없다. VPC 환경에서의 헬스 체크 주기는 디폴트 30초에 변경 가능이며, Classic 환경에선 디폴트 6초에 변경은 불가하다.

로드 밸런서의 종류

  • Network Load Balancer
    • 고성능의 분산 처리 가능
    • Client IP가 그대로 로깅(LB가 브로커로서 관리하지 않고 서버에 Client IP가 찍힌다)
    • DSR(Direct Server Return)을 구현하여 서버에 부하 분산되어 도착한 트래픽에 대한 응답을 클라이언트단으로 보낼 때 LB를 거치지 않고 빠르게 서비스를 제공할 수 있음
    • Hash, RR 알고리즘만 제공
  • Network Proxy Load Balancer
    • 프록시 방식의 통신을 제공하여 세션 유지가 필요한 TCP 기반 애플리케이션에 이용
    • SSL 인증 및 암호화 가능
    • 3가지 알고리즘 제공
  • Application Load Balancer
    • HTTP/HTTPS 트래픽에 대한 처리
    • URL 기반 분기 가능
    • SSL 인증 및 암호화 가능
    • 3가지 알고리즘 제공
기능 Network Network Proxy Application
프로토콜 TCP TCP, TLS HTTP, HTTPS
헬스 체크 O O O
로깅 X O O
DSR O X X
같은 서버의 여러
포트로 로드 밸런싱
X X O
HTTP 2.0 지원 N/A N/A O
경로 기반 라우팅 N/A N/A O
SSL 오프로드 X O O
고정 세션 X O O


부하 처리 성능별 보장되는 CPS(초당 연결 수=분산 처리 횟수)

  Small Medium Large
Application 30,000 60,000 90,000
Network 100,000 200,000 400,000
Network Proxy 30,000 60,000 90,000


로드 밸런싱 알고리즘

  • Round Robin : 골고루 각 서버에 트래픽을 1개씩 분배
  • Least Connection : 클라이언트 연결이 가장 적은 서버에게 새 커넥션을 분배
  • Source IP Hash : 클라이언트 IP에 대한 해시테이블을 통해 서버와 매핑하여 분배

 

Auto Scaling

오토 스케일링의 3가지 방식

  • 스케줄링 : 사용자가 정의한 주기
  • 모니터링 : 사용자가 설정한 메트릭(ex: CPU 사용량 80%로 5분 간 유지 시)
  • 온디맨드 : 사용자의 요청

Auto Scaling에 설정해야 하는 부분
로드 밸런서에 바인딩되는 서버의 그룹이다.
Launch Configuration, Auto Scaling Group, Event Rule 3가지를 설정해주어야 한다.
Auto Scaling Group당 최대 30대의 서버를 묶을 수 있다.

CDN+ / Global CDN

CDN+는 국내 전용, GCDN은 국외 전용 CDN이다.
대규모 파일 배포나 이미지 서비스, 동영상 서비스 등 대규모로 트래픽이 발생하는 경우 캐싱을 통해 빠른 처리를 가능케 한다.

CDN 관련 용어

용어 설명
Purge CDN 캐시 서버에 저장되어 있는 콘텐츠를 삭제하는 기능
Cache expiry CDN에서 캐싱된 콘텐츠가 원본 서버에서 변경되었는지의 여부를 확인하는 주기
Streaming 네트워크(인터넷)를 기반으로 사용자들에게 멀티미디어 정보를 실시간(Real-time)으로 제공하는 기술. 네이버 클라우드 플랫폼 CDN의 스트리밍 서비스는 HTTP Live Streaming, HTTP Pseudo Streaming, MPEG-DASH 프로토콜 지원
Secure Token 토큰 기반의 인증으로 허용된 접근에만 콘텐츠를 전달
Ignore query string CDN 서비스가 원본 서버에 요청할 때 ?id=1234와 같이 URL에 포함된 GET 파라미터를 제거한 후 요청
Referrer domain 콘텐츠가 지정된 도메인에만 제공되므로 다른 사이트에서 참조되는 것을 방지함. 도메인은 www.domain.com 또는 *.domain.com 형식을 지원하며, 숫자, 영문자, "*", "-", "."만 사용 가능

 


과정의 모든 내용이 아닌 일부 내용만 정리하였음.

Cattles & Puppets

On-premise Cloud
Server Instance
반려동물 가축

클라우드에선 트래픽이 급증하는 시기에 필요한 만큼 즉각적으로 인스턴스를 늘리고, 평상시엔 적은 인스턴스로 유지하며 On-demand(종량제)로 리소스를 관리할 수 있다. 반려동물처럼 애지중지하며 관리할 필요없이 가축처럼 다룬다.

 

AWS Global Infrastructure

Server Data Center(1~6) → Availability Zone(2~) → Region

 

1. 수만 개의 서버가 하나의 데이터센터 안에 존재함.

2. 데이터센터 1~6개를 논리적으로 하나의 AZ로 묶음.

3. AZ 최소 2개 이상(Multi-AZ Mirroring for HA)을 하나의 Region으로 묶음.

 

한 Region의 AZ들은 기본적으로 서로 격리되어 있지만, 한 Region의 AZ들은 지연 시간이 짧은 링크를 통해 연결되어 있어 미러링 되어지고 있음.

또한 각 Region 간 연결이 가능한데, 일본같은 경우 지진 발생으로 도쿄 Region과 오사카 Region이 동시에 Failure될 수 있으므로 타국의 Region과 AWS Backbone Network를 통해 링크를 연결한다.

 

*2021.11.09 기준 전 세계 Region 25개, AZ 81개

 

PoP(Points of Presence)

Edge Location : 176개

Edge Cache : 11개

캐시 기능을 하며, 리전 주변에 있음.

 

PoP 주요 기능

Amazon Route 53 : DNS

Amazon CloudFront : CDN(Content Delivery Network) = Caching

AWS WAF(Web Application Firewall) : L7 Security

AWS Shield : DDoS 공격 완화


VPC (Virtual Private Cloud)

VPC는 퍼블릭 클라우드 환경에서 외부에 노출되면 안 되는 데이터를 인터넷으로부터 보호하기 위한 공간이다.

인터넷이라는 바다에서 가두리 양식을 쳐 놓은 것과 같다.

 

Soft Limit으로 하나의 계정 당 최대 VPC 5개까지 생성 가능하고, Hard Limit(AWS에 요청)으로는 최대 100개까지 생성 가능하다.

VPC로 인프라를 구성하는 기본 패턴은 다중 VPC복수 계정 두 가지이다.

다중 VPC는 하나의 계정에서 VPC를 여럿(주로 부서별로) 생성해 사용하는 것이고, 복수 계정은 계정 자체를 여러 개 만들어 계정 당 VPC 하나로 운용하는 것이다. 과금되는 주체가 'AWS 계정'이기 때문에 주로 다중 VPC 방식을 사용한다.

 

prefix 24 기준 IP를 251개밖에 못 쓰는 이유

10.0.0.1 : IGW

10.0.0.2 : DNS

10.0.0.3 : AWS 시스템에서 예비로 지정

10.0.0.255 : 브로드캐스트 주소

 

Public/Private Subnet

Seoul Region 기준 4개의 AZ가 있는데, 이 중 a와 b의 리소스를 받아 각각 2개의 서브넷을 만들었다.

각 Subnet마다 설정해 준 라우팅 테이블에 따라 Public Subnet은 인터넷에 직접 접속, Private Subnet은 NAT Gateway → Internet Gateway를 순서대로 통해 인터넷에 접속한다.

 

EC2 & SG

Amazon EC2(Elastic Compute Cloud) 서비스를 이용해 EC2 Instance를 생성하여 애플리케이션 등을 구동할 수 있다.

 

Public Subent엔 Application, Private Subnet엔 DB를 올려 서비스할 때 외부에서 DB로 접근하지 못하도록 가상의 방화벽을 설정해야 한다.

VPC 설정에서 SG(Security Group)를 잡아주는데(Instance Level = 각 인스턴스마다), App Instance에선 0.0.0.0/0:80, DB Instance에선 0.0.0.0/0:3306으로 설정하면 된다(WebApp, MySQL).

 

서브넷 레벨로 적용하는 NACL(Network Access Control List)도 존재하는데 아래의 글을 참고 바람.

https://blog.naver.com/adaylily/220953739322

Types of EC2 Instance (Not All)

범용 : T, M

고성능 컴퓨팅 최적화(CPU) : C

메모리 최적화(RAM) : R

가속화된 컴퓨팅(GPU - ML, 3D Rendering) : P

스토리지 최적화(비용↓ IOPS↑) : H

 

ex) t3.large

t = 범용

3 = 3세대

large = 리소스 성능

표기 vCPU 메모리(GiB) 네트워크(Gbps)
large 2 5.25 최대 25
xlarge 4 10.5 최대 25
2xlarge 8 21 최대 25
4xlarge 16 42 최대 25
9xlarge 36 96 50
18xlarge 72 192 100

ROI(Return on Investment)

인스턴스 변경 인스턴스 당 비용 절감
t2.xlarge → t3.large 47%
t2.large → t3.medium 44%
c4.8xlarge → c5.4xlarge 50%

 

userdata, metadata 확인 방법

http://169.254.169.254/latest/userdata

http://169.254.169.254/latest/metadata

'IT > AWS 공인 교육' 카테고리의 다른 글

Systems Operations on AWS - Module 1~2  (0) 2021.11.29
Architecting on AWS - 03  (0) 2021.11.13
Architecting on AWS - 04  (0) 2021.11.13
Architecting on AWS - 02  (0) 2021.11.11
Architecting on AWS - 01  (0) 2021.11.10

+ Recent posts