OpsWorks는 기존의 AWS Cloud Formation의 대안격으로 보인다. 현재는 Beta서비스 중이지만, 개념이 Cloud Formation보다 훨씬 직관적인 것 같다. 물론 Chef에 대해 어느정도 배경지식이 있어야 하겠다.

(이런게 진짜, "as-a-Service" 아니겠나~ "I"냐 "P"냐 "S"냐는 경계가 모호해진지 오래라 의미 없고..)


이번 스레드에서는 OpsWorks상에서 Custom Cookbook(getting-started)를 적용하는 흐름을 간단히 정리해 두는 것이 목적이다.


먼저 OpsWorks 특징에 대해 파악된 부분만 우선 정리 하자면,


  • 단일 인스턴스가 최종 Goal이 아닌, 하나의 Stack(다 계층 구조의 시스템 전체)를 쉽게 배포/설정을 지원.
  • 하나의 Stack은 다수의 Layer로, 또 각 Layer는 다수의 Instance로, 또 각 Instance는 다수의 App으로 구성 된다.
  • 주요 도구는 이름에서도 드러나듯이, OpsCode사의 Chef가 주요 역할을 담당한다.
  • 일반적으로 통용되는 Stack구조(MySQL, PHP, node.js, 등)는 별도의 Cookbook이 필요 없이 기본 제공이 된다. 
  • Cookbook 적용시, 사용자 입력값이나, 개개의 Private한 값은 Data Bag이 아니라 JSON 형식으로 전달한다.
  • 사용자 정의 값을 기술한 JSON 내용은, Static하게 또는, 매번 실행시마다 1회성(Dynamic)으로 전달 할 수도 있다. 단, Static과 Dynamic에 동일 값이 있으면, Dynamic값이 Static값에 Override되어 우선순위가 높은 것으로 판단된다. (확인 필요)
  • (기타 특징들은 파악 되는대로 계속 업데이트 예정...)

[본론] OpsWorks에서 Chef의 기본 에제인 "getting-started" cookbook을 적용하는 예제 실습

가정
  • Stack이나 Layer에 대한 실습이 아니므로, 단일 레이어에 PHP템플릿 인스턴스 하나에 getting-started적용 진행.
  • "getting-started" 소스는 SSH Key기반의 GitHub에 등록되어 있다.
  • GitHub에 준비해둔 "getting-started"에 수정한 내역은 아래와 같다.
    (cookbooks/getting-started/templates/default/chef-getting-started.txt.erb)
    (붉은 색 부분을 추가 하였으며, 해당 값은 JSON으로 전달 한다.)
  • Welcome to Chef!


    This is Chef version <%= node[:chef_packages][:chef][:version] %>.

    Running on <%= node[:platform] %>.

    Version <%= node[:platform_version] %>.

    Custom <%= node['deploy']['test_string'] %>

  • Stack, Layer, Instance 등을 생성하는 방법은 아래 문서를 참조한다. 너무 쉽기도 하고 설명도 잘되어 있다.
    http://awsdocs.s3.amazonaws.com/opsworks/latest/opsworks-ug.pdf

실습 내용 요약
  • "getting-started" Cookbook을 PHP가 설치될 Instance에 추가로 적용시키고, "getting-started" 내용 일부를 수정/추가 하여, JSON으로 전달된 값들이 정상적으로 반영되는지까지 확인한다.

[실습 과정]
  1. "test"라는 이름으로 Stack 생성
    (최초 Stack을 생성하면 녹색 원에 숫자가 "0"일 것이다. 이 캡쳐는 테스트 후에 작성한 것이라, "1"로 표시된 것일 뿐..)

  2. Layer 생성 (Custom Cookbook 적용이 목적이므로, 어느 것이든 관계 없다. 본 실습에서는 App Server에서 PHP로 하였다.

  3. "getting-started" Cookbook을 실제로 적용시킬 Instance 하나를 생성.

  4. 과정(2)에서 생성한 Layer의 편집 모드로 진입하여, "getting-started" Cookbook의 위치, SSH-Key 정보, 사용자 정의 Value를 포함하는 JSON 정보등을 설정.

  5. 설정을 마쳤으니, 실제로 "getting-started" Cookbook을 대상 Instance에 적용해 본다.

    (Custom Chef JSON에서 Override로 값을 재정의 할 수 있다.)


  6. 수행 Log 학인

    (/tmp/ 디렉토리에 "getting-started"의 default 레시피대로 파일이 에러 없이 작성되었다.)


  7. 생성 파일 내용 확인
    (과정상 "Custom call518"로 표시되어야 하나, 캡쳐 그림은 여러가지로 테스트 한 결과임)
[END]
아주 기초적인 흐름만 테스트 해보았다. 서두에 링크해둔 PDF(User Guide)를 참고해서, 사용자 Cookbook이 수행되는 타이밍(전체 Stack을 구성하다 보면 Cookbook간의 순서가 중요하다.)도 조절해 보고, Stack, Layer, Instance에서 App목록까지 Custom Cookbook으로 전달해야 할 일이 많을 텐데, 그러한 부분까지 테스트 해볼 예정이다. 그러기 위해서 가장 기초적인 내용을 정리 해둔 것.... 


Posted by 사랑줍는거지
,

EC2 & ELB Networking SockPerf TEST (Zone/Public/Private)


Edit

제반 사항

(Note)
- 부하(Load)나, 외부상황은 배제한, EC2 Instance간의 Network Latency 테스트.
- 횟수가 많아야 신뢰도가 있는 자료가 나오겠으나, 시간상 1회/10초 수행.
- "Percentile 99.99" 와 "Average" 그래프화. 




EC2-Latency.xlsx



  • Region: Tokyo
  • 인스턴스(VM): 3EA
  • 인스턴스 OS: Ubuntu Server 12.04.2 LTS (64bit)
  • 인스턴스 스펙: M1 Small (m1.small, 1.7 GiB)
  • 테스트 상세
    • 도구: sockperf_2.5.193 (https://code.google.com/p/sockperf/downloads/list)
    • 모드: ping-pong (run sockperf client for latency test in ping pong mode)
    • 방식: RTT (Round Trip Time)
    • 시간: 10sec
    • Size: 16KB (16384 Byte)
    • 단위: usec (마이크로초)
    • Command
      • Server: ./sockperf server -p 5001 {--tcp}
      • Client: ./sockperf ping-pong -i {Server-IP} -p 5001 -m 16384 -t 10 --pps=max {--tcp}
  • 예상 Case
    • 동일 Zone에 존재하는 VM to VM
      • 공인 DNS (TCP/UDP)
      • 사설 DNS (TCP/UDP)
      • ELB 경유 (TCP/UDP)
    • 다른 Zone에 존재하는 VM to VM
      • 공인 DNS (TCP/UDP)
      • 사설 DNS (TCP/UDP)
      • ELB 경유 (TCP/UDP)
Edit

VM 구성

Edit

구성도



Edit

설정 내역

  • VM-A
    • Zone: ap-northeast-1a
    • Privat DNS: 10.152.173.96 (ip-10-152-173-96.ap-northeast-1.compute.internal)
    • Public DNS: 54.249.200.29 (ec2-54-249-200-29.ap-northeast-1.compute.amazonaws.com)
  • VM-B
    • Zone: ap-northeast-1a
    • Privat DNS: 10.162.15.46 (ip-10-162-15-46.ap-northeast-1.compute.internal)
    • Public DNS: 54.250.97.46 (ec2-54-250-97-46.ap-northeast-1.compute.amazonaws.com)
  • VM-C
    • Zone: ap-northeast-1c
    • Privat DNS: 10.121.6.240 (ip-10-121-6-240.ap-northeast-1.compute.internal)
    • Public DNS: 54.250.69.124 (ec2-54-250-69-124.ap-northeast-1.compute.amazonaws.com)
  • ELB-B 정보
    • Zone: ap-northeast-1a
    • LB Protocol: TCP
    • LB Port: 5001
    • Instance Protocol: TCP
    • Instance Port: 5001
    • DNS/IP
      • 176.32.93.150 / SockPerf-1694303445.ap-northeast-1.elb.amazonaws.com (A Record)
  • ELB-C 정보
    • Zone: ap-northeast-1c
    • LB Protocol: TCP
    • LB Port: 5001
    • Instance Protocol: TCP
    • Instance Port: 5001
    • DNS/IP
      • 54.248.124.224 / sockperf-c-1386190870.ap-northeast-1.elb.amazonaws.com (A Record)
Edit

결과

첨부 엑셀/그래프 참조

Edit

동일 Zone

    A->B: 공인 DNS
    • TCP
      root@ip-10-152-173-96:/usr/local/sockperf/bin# ./sockperf ping-pong -i 54.250.97.46 -p 5001 -m 16384 -t 10 --pps=max --tcp
      sockperf:  == version #2.5. == 
      sockperf[CLIENT] send on:sockperf: using recvfrom() to block on socket(s)
      
      [ 0] IP = 54.250.97.46    PORT =  5001 # TCP
      sockperf: Warmup stage (sending a few dummy messages)...
      sockperf: Starting test...
      sockperf: Test end (interrupted by timer)
      sockperf: Test ended
      sockperf: [Total Run] RunTime=10.099 sec; SentMessages=3455; ReceivedMessages=3454
      sockperf: ========= Printing statistics for Server No: 0
      sockperf: [Valid Duration] RunTime=9.998 sec; SentMessages=3417; ReceivedMessages=3417
      sockperf: ====> avg-lat=1462.875 (std-dev=1090.760)
      sockperf: # dropped messages = 0; # duplicated messages = 0; # out-of-order messages = 0
      sockperf: Summary: Latency is 1462.875 usec
      sockperf: Total 3417 observations; each percentile contains 34.17 observations
      sockperf: ---> <MAX> observation = 31958.137
      sockperf: ---> percentile  99.99 = 31958.137
      sockperf: ---> percentile  99.90 = 18919.201
      sockperf: ---> percentile  99.50 = 3809.342
      sockperf: ---> percentile  99.00 = 3328.685
      sockperf: ---> percentile  95.00 = 2655.743
      sockperf: ---> percentile  90.00 = 2176.901
      sockperf: ---> percentile  75.00 = 1718.117
      sockperf: ---> percentile  50.00 = 1237.302
      sockperf: ---> percentile  25.00 = 1022.388
      sockperf: ---> <MIN> observation =  721.464
    • UDP
      root@ip-10-152-173-96:/usr/local/sockperf/bin# ./sockperf ping-pong -i 54.250.97.46 -p 5001 -m 16384 -t 10 --pps=max
      sockperf:  == version #2.5. == 
      sockperf[CLIENT] send on:sockperf: using recvfrom() to block on socket(s)
      
      [ 0] IP = 54.250.97.46    PORT =  5001 # UDP
      sockperf: Warmup stage (sending a few dummy messages)...
      sockperf: Starting test...
      sockperf: Test end (interrupted by timer)
      sockperf: Test ended
      sockperf: [Total Run] RunTime=10.101 sec; SentMessages=1172; ReceivedMessages=1171
      sockperf: ========= Printing statistics for Server No: 0
      sockperf: [Valid Duration] RunTime=9.997 sec; SentMessages=1159; ReceivedMessages=1159
      sockperf: ====> avg-lat=4312.799 (std-dev=1570.727)
      sockperf: # dropped messages = 0; # duplicated messages = 0; # out-of-order messages = 0
      sockperf: Summary: Latency is 4312.799 usec
      sockperf: Total 1159 observations; each percentile contains 11.59 observations
      sockperf: ---> <MAX> observation = 34023.287
      sockperf: ---> percentile  99.99 = 34023.287
      sockperf: ---> percentile  99.90 = 32017.070
      sockperf: ---> percentile  99.50 = 8009.275
      sockperf: ---> percentile  99.00 = 8002.157
      sockperf: ---> percentile  95.00 = 6002.642
      sockperf: ---> percentile  90.00 = 5995.283
      sockperf: ---> percentile  75.00 = 4005.037
      sockperf: ---> percentile  50.00 = 4000.878
      sockperf: ---> percentile  25.00 = 3997.844
      sockperf: ---> <MIN> observation = 3441.178
      
  • A->B: 사설 DNS
    • TCP
      root@ip-10-152-173-96:/usr/local/sockperf/bin# ./sockperf ping-pong -i 10.162.15.46 -p 5001 -m 16384 -t 10 --pps=max --tcp
      sockperf:  == version #2.5. == 
      sockperf[CLIENT] send on:sockperf: using recvfrom() to block on socket(s)
      
      [ 0] IP = 10.162.15.46    PORT =  5001 # TCP
      sockperf: Warmup stage (sending a few dummy messages)...
      sockperf: Starting test...
      sockperf: Test end (interrupted by timer)
      sockperf: Test ended
      sockperf: [Total Run] RunTime=10.101 sec; SentMessages=3850; ReceivedMessages=3849
      sockperf: ========= Printing statistics for Server No: 0
      sockperf: [Valid Duration] RunTime=10.001 sec; SentMessages=3814; ReceivedMessages=3814
      sockperf: ====> avg-lat=1310.974 (std-dev=1300.552)
      sockperf: # dropped messages = 0; # duplicated messages = 0; # out-of-order messages = 0
      sockperf: Summary: Latency is 1310.974 usec
      sockperf: Total 3814 observations; each percentile contains 38.14 observations
      sockperf: ---> <MAX> observation = 31679.585
      sockperf: ---> percentile  99.99 = 31679.585
      sockperf: ---> percentile  99.90 = 18777.097
      sockperf: ---> percentile  99.50 = 5004.997
      sockperf: ---> percentile  99.00 = 4177.719
      sockperf: ---> percentile  95.00 = 2647.471
      sockperf: ---> percentile  90.00 = 2222.535
      sockperf: ---> percentile  75.00 = 1618.295
      sockperf: ---> percentile  50.00 = 1085.067
      sockperf: ---> percentile  25.00 =  714.380
      sockperf: ---> <MIN> observation =  347.386
      
    • UDP
      root@ip-10-152-173-96:/usr/local/sockperf/bin# ./sockperf ping-pong -i 10.162.15.46 -p 5001 -m 16384 -t 10 --pps=max
      sockperf:  == version #2.5. == 
      sockperf[CLIENT] send on:sockperf: using recvfrom() to block on socket(s)
      
      [ 0] IP = 10.162.15.46    PORT =  5001 # UDP
      sockperf: Warmup stage (sending a few dummy messages)...
      sockperf: Starting test...
      sockperf: Test end (interrupted by timer)
      sockperf: Test ended
      sockperf: [Total Run] RunTime=10.101 sec; SentMessages=1231; ReceivedMessages=1230
      sockperf: ========= Printing statistics for Server No: 0
      sockperf: [Valid Duration] RunTime=9.601 sec; SentMessages=1224; ReceivedMessages=1224
      sockperf: ====> avg-lat=3921.816 (std-dev=1746.140)
      sockperf: # dropped messages = 0; # duplicated messages = 0; # out-of-order messages = 0
      sockperf: Summary: Latency is 3921.816 usec
      sockperf: Total 1224 observations; each percentile contains 12.24 observations
      sockperf: ---> <MAX> observation = 34020.301
      sockperf: ---> percentile  99.99 = 34020.301
      sockperf: ---> percentile  99.90 = 32013.095
      sockperf: ---> percentile  99.50 = 8008.463
      sockperf: ---> percentile  99.00 = 7998.229
      sockperf: ---> percentile  95.00 = 5999.880
      sockperf: ---> percentile  90.00 = 4990.765
      sockperf: ---> percentile  75.00 = 4005.645
      sockperf: ---> percentile  50.00 = 3999.775
      sockperf: ---> percentile  25.00 = 3990.058
      sockperf: ---> <MIN> observation = 1941.773
      
  • A->B: ELB-B 경유
    • TCP
      root@ip-10-152-173-96:/usr/local/sockperf/bin# ./sockperf ping-pong -i 176.32.93.150 -p 5001 -m 16384 -t 10 --pps=max --tcp
      sockperf:  == version #2.5. == 
      sockperf[CLIENT] send on:sockperf: using recvfrom() to block on socket(s)
      
      [ 0] IP = 176.32.93.150   PORT =  5001 # TCP
      sockperf: Warmup stage (sending a few dummy messages)...
      sockperf: Starting test...
      sockperf: Test end (interrupted by timer)
      sockperf: Test ended
      sockperf: [Total Run] RunTime=10.100 sec; SentMessages=2628; ReceivedMessages=2627
      sockperf: ========= Printing statistics for Server No: 0
      sockperf: [Valid Duration] RunTime=9.955 sec; SentMessages=2605; ReceivedMessages=2605
      sockperf: ====> avg-lat=1910.550 (std-dev=948.343)
      sockperf: # dropped messages = 0; # duplicated messages = 0; # out-of-order messages = 0
      sockperf: Summary: Latency is 1910.550 usec
      sockperf: Total 2605 observations; each percentile contains 26.05 observations
      sockperf: ---> <MAX> observation = 31351.928
      sockperf: ---> percentile  99.99 = 31351.928
      sockperf: ---> percentile  99.90 = 13266.080
      sockperf: ---> percentile  99.50 = 4643.678
      sockperf: ---> percentile  99.00 = 4265.762
      sockperf: ---> percentile  95.00 = 3234.758
      sockperf: ---> percentile  90.00 = 2781.928
      sockperf: ---> percentile  75.00 = 2069.907
      sockperf: ---> percentile  50.00 = 1670.907
      sockperf: ---> percentile  25.00 = 1427.325
      sockperf: ---> <MIN> observation = 1145.673
      
    • UDP
      • ELB에서 UDP 미지원으로 테스트 불가
Edit

다른 Zone

  • A->C: 공인 DNS
    • TCP
      root@ip-10-152-173-96:/usr/local/sockperf/bin# ./sockperf ping-pong -i 54.250.69.124 -p 5001 -m 16384 -t 10 --pps=max --tcp
      sockperf:  == version #2.5. == 
      sockperf[CLIENT] send on:sockperf: using recvfrom() to block on socket(s)
      
      [ 0] IP = 54.250.69.124   PORT =  5001 # TCP
      sockperf: Warmup stage (sending a few dummy messages)...
      sockperf: Starting test...
      sockperf: Test end (interrupted by timer)
      sockperf: Test ended
      sockperf: [Total Run] RunTime=10.102 sec; SentMessages=1982; ReceivedMessages=1981
      sockperf: ========= Printing statistics for Server No: 0
      sockperf: [Valid Duration] RunTime=10.001 sec; SentMessages=1962; ReceivedMessages=1962
      sockperf: ====> avg-lat=2548.662 (std-dev=1832.228)
      sockperf: # dropped messages = 0; # duplicated messages = 0; # out-of-order messages = 0
      sockperf: Summary: Latency is 2548.662 usec
      sockperf: Total 1962 observations; each percentile contains 19.62 observations
      sockperf: ---> <MAX> observation = 46399.863
      sockperf: ---> percentile  99.99 = 46399.863
      sockperf: ---> percentile  99.90 = 26070.326
      sockperf: ---> percentile  99.50 = 12983.683
      sockperf: ---> percentile  99.00 = 4294.068
      sockperf: ---> percentile  95.00 = 4025.450
      sockperf: ---> percentile  90.00 = 3924.323
      sockperf: ---> percentile  75.00 = 2629.824
      sockperf: ---> percentile  50.00 = 2070.109
      sockperf: ---> percentile  25.00 = 1963.635
      sockperf: ---> <MIN> observation = 1606.874
      
    • UDP
      root@ip-10-152-173-96:/usr/local/sockperf/bin# ./sockperf ping-pong -i 54.250.69.124 -p 5001 -m 16384 -t 10 --pps=max
      sockperf:  == version #2.5. == 
      sockperf[CLIENT] send on:sockperf: using recvfrom() to block on socket(s)
      
      [ 0] IP = 54.250.69.124   PORT =  5001 # UDP
      sockperf: Warmup stage (sending a few dummy messages)...
      sockperf: Starting test...
      sockperf: Test end (interrupted by timer)
      sockperf: Test ended
      sockperf: [Total Run] RunTime=10.101 sec; SentMessages=1153; ReceivedMessages=1152
      sockperf: ========= Printing statistics for Server No: 0
      sockperf: [Valid Duration] RunTime=10.001 sec; SentMessages=1140; ReceivedMessages=1140
      sockperf: ====> avg-lat=4386.197 (std-dev=1533.904)
      sockperf: # dropped messages = 0; # duplicated messages = 0; # out-of-order messages = 0
      sockperf: Summary: Latency is 4386.197 usec
      sockperf: Total 1140 observations; each percentile contains 11.40 observations
      sockperf: ---> <MAX> observation = 28006.313
      sockperf: ---> percentile  99.99 = 28006.313
      sockperf: ---> percentile  99.90 = 26138.757
      sockperf: ---> percentile  99.50 = 12003.960
      sockperf: ---> percentile  99.00 = 10006.633
      sockperf: ---> percentile  95.00 = 6004.485
      sockperf: ---> percentile  90.00 = 5995.108
      sockperf: ---> percentile  75.00 = 4007.216
      sockperf: ---> percentile  50.00 = 4001.184
      sockperf: ---> percentile  25.00 = 3996.925
      sockperf: ---> <MIN> observation = 3253.957
      
  • A->C: 사설 DNS
    • TCP
      root@ip-10-152-173-96:/usr/local/sockperf/bin# ./sockperf ping-pong -i 10.121.6.240 -p 5001 -m 16384 -t 10 --pps=max --tcp
      sockperf:  == version #2.5. == 
      sockperf[CLIENT] send on:sockperf: using recvfrom() to block on socket(s)
      
      [ 0] IP = 10.121.6.240    PORT =  5001 # TCP
      sockperf: Warmup stage (sending a few dummy messages)...
      sockperf: Starting test...
      sockperf: Test end (interrupted by timer)
      sockperf: Test ended
      sockperf: [Total Run] RunTime=10.100 sec; SentMessages=2316; ReceivedMessages=2315
      sockperf: ========= Printing statistics for Server No: 0
      sockperf: [Valid Duration] RunTime=10.003 sec; SentMessages=2297; ReceivedMessages=2297
      sockperf: ====> avg-lat=2177.273 (std-dev=1583.329)
      sockperf: # dropped messages = 0; # duplicated messages = 0; # out-of-order messages = 0
      sockperf: Summary: Latency is 2177.273 usec
      sockperf: Total 2297 observations; each percentile contains 22.97 observations
      sockperf: ---> <MAX> observation = 26539.603
      sockperf: ---> percentile  99.99 = 26539.603
      sockperf: ---> percentile  99.90 = 24238.810
      sockperf: ---> percentile  99.50 = 12957.637
      sockperf: ---> percentile  99.00 = 11637.611
      sockperf: ---> percentile  95.00 = 2913.860
      sockperf: ---> percentile  90.00 = 2579.413
      sockperf: ---> percentile  75.00 = 2088.335
      sockperf: ---> percentile  50.00 = 1997.917
      sockperf: ---> percentile  25.00 = 1768.126
      sockperf: ---> <MIN> observation = 1274.989
      
    • UDP
      root@ip-10-152-173-96:/usr/local/sockperf/bin# ./sockperf ping-pong -i 10.121.6.240 -p 5001 -m 16384 -t 10 --pps=max
      sockperf:  == version #2.5. == 
      sockperf[CLIENT] send on:sockperf: using recvfrom() to block on socket(s)
      
      [ 0] IP = 10.121.6.240    PORT =  5001 # UDP
      sockperf: Warmup stage (sending a few dummy messages)...
      sockperf: Starting test...
      sockperf: Test end (interrupted by timer)
      sockperf: Test ended
      sockperf: [Total Run] RunTime=10.101 sec; SentMessages=934; ReceivedMessages=933
      sockperf: ========= Printing statistics for Server No: 0
      sockperf: [Valid Duration] RunTime=9.997 sec; SentMessages=924; ReceivedMessages=924
      sockperf: ====> avg-lat=5409.573 (std-dev=1625.872)
      sockperf: # dropped messages = 0; # duplicated messages = 0; # out-of-order messages = 0
      sockperf: Summary: Latency is 5409.573 usec
      sockperf: Total 924 observations; each percentile contains 9.24 observations
      sockperf: ---> <MAX> observation = 25542.427
      sockperf: ---> percentile  99.99 = 25542.427
      sockperf: ---> percentile  99.90 = 20010.379
      sockperf: ---> percentile  99.50 = 12113.971
      sockperf: ---> percentile  99.00 = 8020.686
      sockperf: ---> percentile  95.00 = 7988.814
      sockperf: ---> percentile  90.00 = 6012.314
      sockperf: ---> percentile  75.00 = 6003.931
      sockperf: ---> percentile  50.00 = 5994.757
      sockperf: ---> percentile  25.00 = 4001.799
      sockperf: ---> <MIN> observation = 1996.650
      
  • A->C: ELB-C 경유
    • TCP
      root@ip-10-152-173-96:/usr/local/sockperf/bin# ./sockperf ping-pong -i 54.248.124.224 -p 5001 -m 16384 -t 10 --pps=max --tcp
      sockperf:  == version #2.5. == 
      sockperf[CLIENT] send on:sockperf: using recvfrom() to block on socket(s)
      
      [ 0] IP = 54.248.124.224  PORT =  5001 # TCP
      sockperf: Warmup stage (sending a few dummy messages)...
      sockperf: Starting test...
      sockperf: Test end (interrupted by timer)
      sockperf: Test ended
      sockperf: [Total Run] RunTime=10.099 sec; SentMessages=1579; ReceivedMessages=1578
      sockperf: ========= Printing statistics for Server No: 0
      sockperf: [Valid Duration] RunTime=10.000 sec; SentMessages=1562; ReceivedMessages=1562
      sockperf: ====> avg-lat=3200.865 (std-dev=1955.397)
      sockperf: # dropped messages = 0; # duplicated messages = 0; # out-of-order messages = 0
      sockperf: Summary: Latency is 3200.865 usec
      sockperf: Total 1562 observations; each percentile contains 15.62 observations
      sockperf: ---> <MAX> observation = 25292.453
      sockperf: ---> percentile  99.99 = 25292.453
      sockperf: ---> percentile  99.90 = 24183.071
      sockperf: ---> percentile  99.50 = 19981.548
      sockperf: ---> percentile  99.00 = 14068.981
      sockperf: ---> percentile  95.00 = 4114.684
      sockperf: ---> percentile  90.00 = 4015.404
      sockperf: ---> percentile  75.00 = 3850.997
      sockperf: ---> percentile  50.00 = 2928.466
      sockperf: ---> percentile  25.00 = 2218.596
      sockperf: ---> <MIN> observation = 1889.028
      
    • UDP
      • ELB에서 UDP 미지원으로 테스트 불가


(그외 유사 구글 검색 자료): http://orensol.com/2009/05/24/network-latency-inside-and-across-amazon-ec2-availability-zones/


Posted by 사랑줍는거지
,
정말 궁금하다... AWS가 클라우드의 표준일까?? SKT클라우드 기사 검색하면서 다시 느낀게... "S3 100%호환 스토리지~ 어쩌고~ 블라블라~~"..... AWS는 충분히 훌륭한 레퍼런스이고 독보적임은 분명하다. 그러나 호환은 옵셔널 한 것일뿐이다. 단지 그게 전부고 그기에 의존적이라는 건....... 최근의 DynamoDB의 출현만 봐도 그렇다. 결과론적이지만, SimpleDB는 DynamoDB의 전신? 테스트베드? 그정도가 된게 아닌가? 이런 상황에서의 오버헤드는 어떻게 할 것인지... 휘둘릴 수 밖에 없지 않나... 대한민국IT의 창의성이 부족한건 아닌거 같다...어떤 민족인데... 단지, 당장에 뭐라도 안하면 뒤쳐지는 것만 같아 조급해하고 있는 것 같다.... SKT클라우드 기사 내용도 참~... 지금으로선 딱히 내세울게 없었던지... 10g광케이블, 냉각시스템, 센터 평수, 전기요금.. 뭐 그런 식상한 내용들이 9할... 아무리 시작단계지만.. 중요한 먼가가 퍽~ 하고 빠져 있다는 느낌?? 뭐 마침 기사 검색하다 본내용이라 SKT가 언급했지만... 다른곳도 50보100보 같다... 비관은 아니다... 현재를 좀 냉정히 볼필요는 있을것 같다... 물론 틀린 판단일 수도 있다... 뭣도 모르는 놈이라~ 이런 저런 공상을 해보는 것일뿐...

SKT 기사 링크 : 
http://www.kbench.com/digital/?no=106196&sc=1 
[케이벤치-SK텔레콤, 국내 최고 수준 B2B 클라우드 서비스 개시] 
Posted by 사랑줍는거지
,
AWS가 정말 수익을 내고는(공급자 입장에서...) 있을까...... 아직까지 이에 대해 공개된 정보는 없는것 같다... 분명 기대이상.. 아니 그정도까지도 아닌, 긍정적으로 봐줄만큼의 수익이 나오고 있다면, 분명 자료나 기사가 나돌만도 한데... 그런 내용은 접하기 어려운걸로 봐서, 수익면에서는 적자를 보고 있거나, 고전을 면치 못하는건 아닐까 싶은 생각도 든다... 문득 든 생각이, 개념도 좋고, 이상도 좋지만, 결정적으로 사업성이나 수익성이 없다면, 큰문제 아닌가? 나는 재무나 이런분야엔 잼병이라 봐도 모를테지만... 그래도 아주 쬐~~끔은 걱정은 된다. 물론 그럴리는 없을테지만.........

- 신뢰성??
 
- 다양성???
- 플랫폼
- 프로그램
- 어플리케이션

- 자동화???
- 배포
- 설정
- 확장/축소
- 자가 복구

- 지원???
- 안정적인 운영
- 지속적인 업데이트/개선
- 서비스 개발/추가

- 경제성???
- 사용자 측면(저가)
- 공급자 측면(고효율)


* AWS의 EC2 가격 계산 (환율가정 : 1,000원/1달러)
- EC2 VM 한달 요금(Extra Large급 가정)
- 0.88(달러) * 24(시간) * 30(일) * 1,000(원) = 633,600원
- 한달 요금 샘플
- 트래픽 규모
- 1일 유입량 : 200GB -> 한달 : 6TB
- 0.1(달러) * 200(GB) * 1,000(원) * 30 = 600,000원
- 1일 유출량 : 500GB -> 한달 : 15TB
- 10TB까지 : 10,000(GB) * 0.17(달러) * 1,000원 = 1,700,000원
- 다음 5TB :  5,000(GB) * 0.13(달러) * 1,000원 = 650,000원
=> 총금액
633,600원 + 600,000원 + 1,700,000원 + 650,000원 = 3,583,600원

=> 동일 서비스를 처리할 수 있다는 가정하에서, 과연 저정도 금액이면 비용절감이 되는지... 된다면 얼마나 되는지.......궁금하다........
Posted by 사랑줍는거지
,