국내 접속자를 상대로 웹서버를 운영하는 경우 해외 VPS를 이용할때 가장 가까운 지역인 일본 도쿄를 사용하게 되는데요.
도쿄에서 서비스하는 해외 VPS의 대표주자가 VULTR와 Linode 인데 필자가 각각 6개월 정도 사용해보고 느낀점과 서버 벤치마크, 서비스 장단점을 간단하게 비교해 작성해 보려 합니다.
목차
VPS 스펙
VULTR | Linode |
1 CPU 1024MB 메모리(Ram) 20GB SSD 1000GB 트래픽 도쿄 로케이션 우분투 17.10 $5 |
양쪽 VPS 다 5달러 짜리 서비스로 테스트 했으며 표면적인 서버 사양 역시 같습니다.
CPU 정보
VULTR | Linode |
vendor_id : GenuineIntel cpu family : 6 model : 61 model name : Virtual CPU a7769a6388d5 stepping : 2 microcode : 0x1 cpu MHz : 2399.996 cache size : 16384 KB bogomips : 4799.99 | vendor_id : GenuineIntel cpu family : 6 model : 62 model name : Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz stepping : 4 microcode : 0x1 cpu MHz : 2799.986 cache size : 16384 KB bogomips : 5599.97 |
cat /proc/cpuinfo
명령어로 확인한 실제 할당되어 있는 하드웨어 구성 정보입니다. VULTR 같은 경우 모델명이 정확하게 나오지는 않지만 캐시사이즈로 봤을때 E5 시리즈로 추측됩니다.
기타 하드웨어 리소스
메모리 및 SSD등의 리소스는 가상서버에서 물리서버의 정보를 불러올수 없기 떄문에 생략하겠습니다.
하드웨어 벤치마크 비교
벤치마크는 Sysbench로 진행하며 코어를 나눠 쓰는 VPS 특성상 1코어의 100% 성능은 아니라고 생각되기 때문에 비교대상으로 사용량이 거의 0%에 가까운 IDLE 상태의 홈서버를 같은 가상화 환경(1 코어, 1024M 메모리, SSD, 우분투 17.10)으로 세팅해서 비교해 봤습니다.
벤치마크는 오전 7~8시에 진행했습니다.
홈서버 사양
- CPU 2670v1 2way
- RAM 64GB 1333Mhz DDR3 Reg
- SSD Intel 530 120GB (ssdsc2bw120a4)
- 네트워크 1Gbps KT 기가인터넷
- Windows 2012R2 Hyper-V
CPU 테스트
사용 명령어
sysbench cpu run
홈서버 | VULTR | Linode | |
CPU speed | |||
events per second | 911.85 | 780.28 | 746.82 |
General statistics | |||
total time | 10.0005s | 10.0006s | 10.0010s |
total number of events | 9121 | 7470 | 7806 |
Latency (ms) | |||
min | 1.04 | 1.31 | 1.17 |
avg | 1.10 | 1.34 | 1.28 |
max | 8.09 | 3.67 | 6.67 |
95th percentile | 1.12 | 1.37 | 1.39 |
sum | 9995.94 | 9992.93 | 9984.61 |
클럭이 400Mhz 높은 Linode가 우세할것 이라는 생각과는 다르게 VULTR가 미세하게 빠른 결과를 보여줍니다.
홈서버와 비교했을때도 Linode가 클럭에 비해 처리량이 떨어지는 결과를 보여주는걸 보니 1코어를 공유하는 사용자가 많은 것으로 추측할 수 있습니다.
RAM 읽기 테스트
사용 명령어
sysbench memory run
홈서버 | VULTR | Linode | |
MiB transferred(MiB/sec) | 4157.42 | 3213.39 | 3539.91 |
General statistics | |||
total time | 10.0001s | 10.0004s | 10.0001s |
total number of events | 42581467 | 32915068 | 36255895 |
Latency (ms) | |||
min | 0.00 | 0.00 | 0.00 |
avg | 0.00 | 0.00 | 0.00 |
max | 3.81 | 3.84 | 0.18 |
95th percentile | 0.00 | 0.00 | 0.00 |
sum | 4444.45 | 4523.31 | 4460.98 |
RAM 쓰기 테스트
사용 명령어
sysbench memory --memory-oper=write run
홈서버 | VULTR | Linode | |
MiB transferred(MiB/sec) | 4122.71 | 3300.46 | 3842.53 |
General statistics | |||
total time | 10.0001s | 10.0004s | 10.0001s |
total number of events | 42225677 | 33807500 | 39355253 |
Latency (ms) | |||
min | 0.00 | 0.00 | 0.00 |
avg | 0.00 | 0.00 | 0.00 |
max | 3.43 | 5.09 | 0.12 |
95th percentile | 0.00 | 0.00 | 0.00 |
sum | 4447.77 | 4507.02 | 4366.35 |
메모리 속도 결과는 읽기/쓰기 모두 Linode가 좀더 빠르게 측정되었습니다.
디스크 순차 읽기/쓰기 테스트
홈서버 | VULTR | Linode | |
File operation | |||
reads/s | 37597.85 | 19497.81 | 45551.81 |
writes/s | 109.97 | 8785.82 | 11597.74 |
fsyncs/s | 130.26 | 11241.66 | 14840.51 |
Throughput | |||
read, MiB/s | 411.98 | 304.65 | 711.75 |
written, MiB/s | 1.72 | 137.28 | 181.21 |
사용 명령어
sysbench fileio --file-test-mode=seqrd run sysbench fileio --file-test-mode=seqwr run
읽기/쓰기를 동시에 하는 명령어가 먹히지 않아 별도로 진행한 다음 결과값을 합쳐 표기했습니다.
Linode가 읽기/쓰기 모두 빠른 결과값을 보여줍니다. 읽기 속도와 쓰기 속도 차이로 봤을때 보급형 SSD를 raid10으로 묶지 않았나 추측해 봅니다.
디스크 랜덤 읽기/쓰기 테스트
홈서버 | VULTR | Linode | |
File operation | |||
reads/s | 59.96 | 2111.24 | 2516.43 |
writes/s | 39.97 | 1407.49 | 1677.62 |
fsyncs/s | 122.13 | 4499.68 | 5361.99 |
Throughput | |||
read, MiB/s | 0.94 | 32.99 | 39.32 |
written, MiB/s | 0.62 | 21.99 | 26.21 |
사용 명령어
sysbench fileio --file-test-mode=rndrw run
랜덤 읽기/쓰기 또한 Linode가 앞서고 있습니다.
네트워크 속도 테스트
핑 테스트
VULTR | Linode | |
VPS에서 홈서버(KT 기가인터넷)로 핑을 날렸을때 | ||
오전 8시대 | 36.7 ms 36.6 ms 37.4 ms 37.7 ms 37.6 ms | 37.4 ms 37.9 ms 36.4 ms 36.7 ms 36.9 ms |
오후 10시대 | 81.8 ms 81.5 ms 87.5 ms 80.5 ms 85.8 ms | 115 ms 106 ms 107 ms 108 ms 104 ms |
VPS에서 구글 DNS(8.8.8.8)로 핑을 날렸을때 | ||
오전 8시대 | 1.05 ms 1.07 ms 1.28 ms 1.10 ms 1.17 ms | 0.587 ms 0.635 ms 0.697 ms 0.683 ms 0.650 ms |
오후 10시대 | 37.5 ms 38.0 ms 37.8 ms 37.7 ms 38.2 ms | 37.7 ms 38.2 ms 38.0 ms 38.1 ms 37.4 ms |
핑 테스트는 VPS에서 홈서버로 핑을 날려 5번의 응답값을 측정했습니다.
저녁 시간에 네트워크가 전반적으로 느려지는 경향이 있어 오전과 오후를 나눠 체크했으며 오후 시간대에 네트워크 접속이 느려지는 이유는 VPS에 접속하는 사용자가 많아서가 아닌 한국-일본간 국가망 속도에 영향을 받는 것입니다.
VULTR와 Linode 모두 NTT 망을 사용하지만 KT 기준으로 Linode가 1홉 더 많은 경로를 거칩니다.
FTP 파일 업로드/다운로드 속도 테스트
VULTR | Linode | |
업로드 | 3.6MB/s | 29.1MB/s |
다운로드 | 7.4MB/s | 6.7MB/s |
SFTP 프로토콜로 파일을 다운로드, 업로드 할때 속도입니다.
스크린샷은 파일 전송시 속도의 변화가 없는 상태일때 찍었으며 FTP 같은 경우 시간별 편차가 심한 편이므로 참고 정도만 하시길 바랍니다.
서비스 비교
VULTR | Linode |
DNS 지원 커스텀 ISO 지원 라이브 스냅샷 지원 서버 앞단 방화벽 지원 SSH Key 지원 | DNS 지원 커스텀 ISO 지원(글 작성 현재 베타) 여러 VPS 사용시 트래픽 통합 산정 클론 기능 디스크 및 부트로더 관리 지원 디테일한 로그 뷰어 제공(Longview) |
Linode와 VULTR를 가입해 로그인해 보면 VULTR 쪽이 좀더 직관적이며 세련된 UI인 반면 Linode는 오픈소스 리소스 리포트 같은 디자인으로 투박하며 기능들이 상대적으로 기능들이 한눈에 들어오지는 않습니다.
하지만 양쪽 모두 국내 VPS 보다는 수준 높은 매니지먼트 기능을 제공해 VPS 리소스에 관한 전반적인 관리를 웹에서 할 수 있습니다.
트래픽 과금
VULTR | Linode | |
Inbound | 양쪽 트래픽중 사용량이 높은 것을 기준으로 함 | 무료 |
Outbound | 1000GB |
두 서비스 모두 한달에 1000GB의 트래픽 용량을 제공하는데 산정하는 방식은 위와 같습니다.
VULTR 장점
부가적인 서비스는 비슷하며 VULTR는 라이브 상태의 인스턴스에 대한 스냅샷과 방화벽을 지원합니다. 스냅샷은 무료지만 롤백시 시간이 꽤 지체됩니다.
필자 같은 경우 홈서버로 Hyper-V 기반의 가상 서버를 세팅해 사용하는데 운영체제 업데이트나 설정 변경등의 문제점이 생길만한 요소가 있다면 스냅샷을 찍어 놓고 세팅 변경 후 문제가 있으면 롤백하는 패턴으로 서버를 관리하는데 VULTR 같은 경우 스냅샷 복원 시간이 오래 걸리기 때문에 라이브 서버에서 이러한 패턴의 서버 관리는 불가능합니다.
또한 웹상에서 관리할 수 있는 방화벽은 서버 앞단에 위치하기 때문에 여러 인스턴스를 관리할 경우 관리가 수월해 집니다.
추가 공인 IP를 신청해 사용할 수 있으며(월 $2) 인스턴스에 공인 IP 추가 후 운영체제에서 설정하는 과정을 쉽게 설명해 놨습니다.
Linode 장점
리눅스에 대한 약간의 지식이 있다면 커널 및 디스크 파티션을 웹상에서 쉽게 관리할 수 있으며 Clone과 StackScript 조합으로 여러 인스턴스를 쉽게 배포할 수 있습니다.
VULTR와 Linode 모두 CPU와 메모리, 트래픽 사용량을 확인할 수 있는 그래프를 제공하는데 Linode 같은 경우 Longview 라는 기능을 제공해 설치할 경우 웹에서 기본 기능보다 상세한 인스턴스 모니터링을 할 수 있습니다.
결론
Linode의 하드웨어 퍼포먼스가 높은 반면 네트워크 반응속도는 수치상 VULTR가 좀더 높게 측정되었지만 수치상일뿐 실제 서비스시 큰 차이를 느끼긴 힘들었으며 오히려 네트워크 반응속도가 VULTR 쪽이 빨랐기 떄문에 VULTR를 위주로 이용했습니다.
하지만 VULTR 같은 경우 큰 단점이 존재하는데 한두달에 한번꼴로 네트워크가 접속에 큰 차질이 생길 정도로 빈사 상태인 경우가 있으며 하드웨어적인 문제(Uptime)가 아니라 크레딧 보상은 없었습니다.
구글링을 해보면 Linode 역시 같은 문제가 있다고는 하는데 필자가 직접 겪어 보지는 못했습니다.
웹서버 같은 경우 하드웨어 리소스 보다는 네트워크 response가 더 체감이 크기 때문에 네트워크 반응 속도가 좀더 빠른 VULTR에 손을 들어 주고 싶으며 만일 단순히 컴퓨팅 능력을 필요로 한다면 배포가 좀더 유연하고 하드웨어 속도가 빠른 Linode를 사용하면 될것 같습니다.