Toast Cloud For Beginners
v.1.3
플랫폼서비스팀
2015년 9월 16일
ⓒ 2015 NHN Entertainment Corp.
1. Toast Cloud Products
일반
3 / Toast Cloud for Beginner
Products - Infrastructure
Compute
Instances
Images
Volumes
Network & Security
Security Groups
Key Pairs
Floating IPs
Networks
Load Balancer
Storage
Object Storage
Monitoring
Monitoring
일반
4 / Toast Cloud for Beginner
Products – Platform as a Service (PaaS)
Contents
Image
CDN
Analytics
Game Analytics
Log & Crash Search
Game
Leaderboard
Game Server (출시예정)
Game Data (출시예정)
Security
AppGuard
Common
Launching
IAP
Mobile Test (Beta)
Image
Address Search
Push (출시예정)
Performance Test (출시예정)
2. Toast Cloud Console
일반
6 / Toast Cloud for Beginner
Toast Cloud Console
Project
프로젝트 관리 – 생성, 삭제, 이름/설명 변경
멤버 관리 – 추가, 삭제, 권한 변경
Product
이용 / 이용 종료
일반
7 / Toast Cloud for Beginner
멤버 권한
이름 Admin Member
공통
Project 추가 O View
삭제 O View
Member 추가 O X
삭제 O X
Product
추가 O View
삭제 O View
설정변경 O O
Billing O X
상품
Infrastructure(Network 제외) Edit Edit
Infrastructure(Network) Edit View
Game Analytics Edit Edit
Log & Crash Search Edit Edit
Leaderboard Edit Edit
Launching Edit Edit
IAP Edit Edit
Mobile Test Edit Edit
3. Instance
일반
9 / Toast Cloud for Beginner
Instance - Basics
Access
Instance
Key Pair
(1)
Security
Group (2)
Floating
IP (3)
일반
10 / Toast Cloud for Beginner
Instance - Key Pair
• Instance (Linux) 터미널 원격 접속에 필요한 인증을 비대칭 키 암호화 방식을 사용
• 비대칭 키 암호화 (Asymmetric-key Cryptograph) 암호화 (Encrypt) / 복호화 (Decrypt) 에 사용하는 키가 다르며 각각 공개키 (public-key), 개인키 (private-key) 라 함 공개키 라는 개념 때문에 공개키 암호화 (public-key cryptography) 방식이라고 부르기도 함
• 분실한 경우 해당 Key Pair로 생성한 instance에는 접근 불가 유출된 경우 습득한 자는 모든 instance에 접근 가능
1. 공개키 요청
2. SSH 접속용 공개키
3. 클라이언트 개인키 / 서버 공개키로 데이터 암호화
4. 서버의 개인키 / 클라의 공개키로 데이터 복호화
client Instance
일반
11 / Toast Cloud for Beginner
• 방화벽으로 inbound / outbound traffic에 대한 통제
• 침해사고 예방 : 원격 포트, admin page와 같은 경우 ingress rule 추가 시 원격 IP를 사무실 IP와 같이 특정 IP로 제한
Instance - Security Groups
●
●
●
Internet
Ingress
Egress Instance
일반
12 / Toast Cloud for Beginner
Instance - Floating IP
Public 192.168.0.x
Network Node 1:1 NAT Mapping
192.168.0.x = 119.x.x.x
1:1 NAT Mapping되어 Instance에서 외부 공인 확인 불가 Floating IP 확인은 Console을 통해 확인 가능
Tip : 공인-공인은 curl http://bot.whatismyipaddress.com으로 확인 가능.
• 외부에 서비스를 제공하기 위한 공인 IP
일반
13 / Toast Cloud for Beginner
Instance – 시연
KR-x Zone
Internet ❶ Key Pair 생성 ❷ Security Group 설정 - Security Group 생성 - Security Group Rule 추가 ❸ Instance 생성 ❹ Floating IP 할당 ❺ PEM (Key Pair)를 PPK 변환 ❻ Instance 접속 w/ Putty
일반
14 / Toast Cloud for Beginner
Instance - 준비물
• 리눅스 터미널 원격 접속 프로그램 무료 : PuTTY 개인 무료, 상업 유료 : xShell
• PuTTYGen : PuTTY는 Toast Cloud의 Key Pair (*.pem) 을 지원하지 않음. PuTTY에서 지원하는 *.ppk 파일로 변환해주는 무료 툴.
• Download URL PuTTY : http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe PuTTYGen : http://the.earth.li/~sgtatham/putty/latest/x86/puttygen.exe
일반
15 / Toast Cloud for Beginner
Instance – PEM 파일 PPK 파일로 변환
PuTTYGen 실행 Key Pair Load Private Key 저장
일반
16 / Toast Cloud for Beginner
Instance – 접속
PuTTY Command Line 명령어 PuTTY GUI 설정
• Session
• Host Name (or IP address) : Floating IP • Port : 22 (Default) • Connection type : SSH
• Connection Data
• Auto-login username : root / ubuntu / debian
• Connection SSH Auth • PuTTYGen으로 Key Pair를 변환한 PPK 파일 선택
Linux, Mac에서 PEM Key 파일로 instance 접속 시도 시 password를 물으며 접속이 안되는 경우 : $ ssh -i demo_keypair.pem [email protected] @@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@ Permissions 0777 for ‘demo_keypair.pem' are too open. It is required that your private key files are NOT accessible by others. This private key will be ignored. bad permissions: ignore key: demo_keypair.pem [email protected]'s password: 원인 : PEM Key 파일 권한이 낮은 경우 접속이 되지 않으며 Password를 묻는다. 해결 : 파일 권한 변경 / chmod 700 demo_keypair.pem
4. High Availability / Failover
일반
18 / Toast Cloud for Beginner
Instance
• 가상 서버 (또는 Virtual Machine) 로 물리적인 컴퓨터에서 구동되는 운영체제와 응용프로그램으로 이루어진 소프트웨어 컨테이너, 이를 Openstack에서는 Instance라고 함.
Hypervisor KR Pool
• 임의의 Zone kr-a / kr-b zone 중 random한 hypervisor에 생성
• kr-a kr-a zone 중 random한 hypervisor에 생성
• kr-b kr-b zone 중 random한 hypervisor에 생성
kr-a zone kr-a zone KR-A Zone Hypervisor Pool kr-a zone kr-a zone KR-B Zone
Hypervisor Pool
일반
19 / Toast Cloud for Beginner
• 네트워크 트래픽을 여러 instance에 분산 제어
• L4 Proxy mode vs. DSR mode
Load Balancer (LBaaS)
●
●
●
●
●
●
Instances Internet
LBaaS
Round Robin, Least Connections,
Source IP
Proxy Mode DSR Mode
개념 Server에서 Client로 응답시 L4를 경유하여 응답 Server에서 Client로 응답시 L4를 경유하지 않고 Direct로 응답
동작 구조 Client L4 Server L4 Client Client L4 Server Client L4에서 Server로 패킷 전달시, Client IP 그대로 Server로 전달
장점 * 같은 Subnet이 아닌 다른 IP 대역이더라도 L4 수용이 가능 * 하나의 포트에 여러가지 리얼 포트로 전달해 줄 수 있는 멀티 포트 기능 지원 가능
* L4를 경유하지 않고 Client로 바로 응답하여 L4장비 부하를 줄여 줌, 응답속도가 더 빠름 * Client IP를 그대로 전달하여 Server에 로그를 남기거나 접근 제어를 할 수 있음
단점 * 모든 트래픽이 L4를 경우하기 때문에 인터페이스 병목현상 및 장비에 부하
* 같은 Subnet 안에 있는 Server(IP) 대역이 아닐 경우 L4 수용이 어려움 * 하나의 포트에서 여러가지의 리얼 포트로 전달해 줄 수 있는 멀티포트 기능지원이 어려움
일반
20 / Toast Cloud for Beginner
KR-A Zone KR-B Zone
LBaaS / ABZone을 통한 서비스 이중화
Internet
Master Slave
사설 : 192.168.0.2 사설 : 192.168.0.3
사설 : 192.168.0.4 사설 : 192.168.0.5
사설 : 192.168.0.6
Toast Cloud LBaaS 공인 : 119.x.x.x
Round Robin
5. Tips
일반
22 / Toast Cloud for Beginner
●
Image
Public Image Create instance
Install software
& configure
instance
Create Private
Image Create instance
●
●
+ Apache Tomcat
User Data
Apache Tomcat
User Data +
Apache Tomcat
User Data
+ Apache Tomcat
User Data
Instance에 attach된 volume은 Image 생성시 포함 안됨
+ Apache Tomcat
User Data
• OS와 기본적으로 설치되는 어플리케이션의 템플릿으로 Instance 생성 또는 재구성 시 사용 - Public : 기본적인 보안 검증을 마친 이미지 - Private : 사용자가 구성한 Instance로 생성된 이미지 - Shared : Private 이미지를 다른 프로젝트에서 사용 가능하도록 공유한 이미지
일반
23 / Toast Cloud for Beginner
●
Volume
Instance
Default Disk
20 GB
Create
Volume
Volume
Attach
Format &
mount
Volume
Configure
fstab
●
●
+
●
●
●
+
+
❶ Default Volume 20 GB
❷ Volume 50 GB
❶ Default Volume 20 GB
mkfs.ext4 –L disk2 /dev/vdb mkdir –p /home1 mount /dev/vdb /home1
/dev/vdb /home1 ext4 defaults 0 0
❷ Volume 50 GB
• Instance 생성시 제공된 디스크가 부족한 경우 volume을 생성하여 instance에 추가하여 디스크 공간 증설이 가능
일반
24 / Toast Cloud for Beginner
●
Volume / Floating IP
Instance +
Volume (Data) +
Floating IP
Instance 장애
(Hacking 등)
Private Image로
Instance
복제
Volume /
Floating IP
Detach
Instance에
Volume /
Floating IP Attach
●
●
● ● ● ●
●
●
●
● ● ● ●
●
●
●
●
●
●
● ● ● ●
수초 내에 서비스 복구
일반
25 / Toast Cloud for Beginner
LBaaS 사용시 Client IP 확인 방법
X-Forwarded-For (XFF) 는 HTTP Header 중 하나로 HTTP Server에 요청한 Client의 IP를 식별하기 위한 사실상의 표준.
Client IP : A Header : A
Internet
Public 192.168.0.x
Floating IP (Pub) 119.xxx.xxx.xxx Header : A, B
LBaaS, L4, Proxy, etc IP : B Header : A, B
6. Developer’s Guide / Devcenter
일반
27 / Toast Cloud for Beginner
개발자 가이드
모든 상품의 Console 화면 상단에 “개발자 가이드” 링크 클릭 시 Devcenter의 상품 사용 가이드 페이지로 이동
Thank You.