[ 1월 8일 업데이트 ]

* AWS의 공식 영상 및 자료

https://aws.amazon.com/ko/events/aws-cloud-ondemand/?sc_ichannel=em&sc_icountry=apac&sc_icampaigntype=event&sc_icampaign=em_9230&mkt_tok=3RkMMJWWfF9wsRovua%2FJZKXonjHpfsX77egrWaGg38431UFwdcjKPmjr1YECS8p0aPyQAgobGp5I5FEJS7LYSLptt6ILXQ%3D%3D

* 유튜브

https://www.youtube.com/playlist?list=PLORxAVAC5fUUQKb-NJ3mAUKqclGzMC9wV

 

S사

오랫동안 AWS를 사용하고 있다. 이제는 IOT 분야에 확산하려는 계획을 가지고 있는데, 2020년까지 모든 제품을 IOT로 연결할 것이다.

2013년부터 빅데이터 관리 시스템을 운영하고 있다. 다양한 형태의 데이터가 있으며, 데이터량은 증가하고 있다. 이 빅데이터 관리 시스템을 어떻게 운영할 것인가? 쉬운 데이터 관리가 필요하며 시스템 구축과 변경이 쉬워야 하고 지역적 제한이 없어야 한다. 결론은 AWS이다.

 

M사

처음에는 해외 웹사이트를 위하여 AWS를 도입하였다. 그 이전에는 인도와 한국 IDC에서만 서비스하였다. 따라서 미국 등 지역에서는 느릴 수 밖에 없었다.

이제는 업무 범위를 더욱 넓힐 예정으로 2016년에는 미션 크리티컬 업무에 적용 계획을 가지고 있다. 향후 IT 자원은 개발에 집중할 예정이다.

 

N사

넥슨은 매출 1.6조의 게임 회사이다. AWS의 경우 초기 투자 비용이 없는데, 서비스가 금방 생기고 금방 없어지는 게임 회사에 적합하다. 약정하지 않고 현재 상황에 맞추어 사용하기 때문이다. 또한 모바일의 경우 이익률이 다소 낮아서 AWS 도입은 필수적이다.

게임 H*는 AWS에서 서비스하고 있다. 서울 도쿄 리전에 있는데 서울 리전으로의 이전을 테스트하고 검토 중이다. 또한 H*는 Amazon DynamoDB를 사용하고 있다. 이전에는 MS SQLServer를 주로 사용하였는데 DynamoDB는 데이터량 증가에도 일정한 Latency를 보여준다.

게임 D*는 사용자 행동 패턴 분석을 위해 Amazon Redshift를 사용 중이다.

 

AWS 서비스 및 전문가

  • Account Manager

AWS 사용을 위한 Gateway이자 비용의 동반자, 고민 상담사이다.

  • Solutions Architect

기술 영역을 담당한다.

  • Consultant

Professional Service를 제공하고, Time to value를 개선하며 Cloud Project의 Risk를 감소하는데 도움을 준다.

  • Technical Account Manager/Support Team

S사, N사 등을 대상으로 하는 Enterprise Support는 Concierge 역할을 하며 IEM(Infra Event Management), TAM(기술 지원 담당) 등을 수행한다. 또 Trusted Advisor이기도 한데 글로벌하게 2013년 이래 260만개의 보고서를 만들었으며 이로 인한 비용 절감액은 약 3억5천만불이다.

  • Partner

Partner에는 컨설팅 Partner와 기술적 Partner가 있다.

 

데이터 마이그레이션

AWS 기존 구조는 다음과 같다.

  • Single AZ : 개발, 테스트
  • Multi AZ : 두개 이상의 AZ로 구성하여 가용성 확보
  • Multi Region (Cross Region) : 지역적으로 분리

이 때 마이그레이션 방법은 다음과 같다.

  • Cross Region Copy 기능
  • AMI Copy 기능 (콘솔에서 제공)
  • EBS는 볼륨 Copy하여(Snapshot) 타 Region으로 보낼 수 있다.
  • Security Group은 아직은 콘솔에서 타 Region으로 Copy할 수 없지만 CLI 상에서는 가능하다.
  • VM Export/Import는 기존 VM 이미지를 이용하여 EC2로 마이그레이션 하는 것으로 Windows 계열, RHEL, Ubuntu, CentOS 등이 가능하다. 

 

파일 마이그레이션

파일 마이그레이션의 경우 개별 파일 업로드 이관 방식은 Bandwidth의 한계 때문에 느릴 수 밖에 없다. 그래서 Parallel하게 Multipart로 업로드하면 좀 더 속도를 끌어올릴 수 있다. 한편 S3끼리의 파일 마이그레이션은 CLI에서 지원한다. ($ aws s3 sync …) 또한 대량 파일, 즉 수백TB 수준의 파일을 마이그레이션하는 경우 Hadoop 기반인 Amazon EMR을 통해 마이그레이션 할 수 있다. 

 

DB 마이그레이션

DB 마이그레이션의 경우 RDS 자체의 경우 콘솔에 의해 작업 가능하다. 다만 AWS 정책 상 인바운드 트래픽은 무료이나 아웃바운드 트래픽이 발생하는 경우 비용이 발생하므로 AZ간의 마이그레이션 시에는 약간의 비용이 발생할 수 있다.

Parameter Group을 마이그레이션하고자 하는 경우도 있는데 아직 다이렉트로 마이그레이션하는 기능은 공식적으로 제공되지 않는다. 다만 관련된 소스 코드가 AWS 코리아 블로그에 오픈되어 있다.

한편 기존 IDC와 AWS간에 DB를 Replication 또는 마이그레이션 할 수도 있다. 마이그레이션의 경우 소스 DB에서 덤프를 받고 이 덤프 파일을 넘겨서 AWS에 Import하는 과정을 거쳐야 한다. 대략 500G 정도의 DB를 마이그레이션하는데 약 7시간 정도가 소요되는 것으로 알려져 있다. 이 때 Tsunami라는 툴을 사용하면 멀티 작업과 UDP 방식 통신을 통해 어느 정도의 시간을 절약할 수 있다.

또한 AWS 자체적으로 데이터베이스 마이그레이션 서비스를 제공하고 있다. 이 마이그레이션 서비스는 콘솔을 통해 사용할 수 있는데 소스 DB와 타겟 DB의 정보(IP, 포트 등)를 입력하면 마이그레이션 서비스가 (최대한) 무중단으로 마이그레이션 작업을 수행한다. 만약 고객 정보 등 민감 데이터가 있을 경우 VPN 상에서 작업을 수행하면 된다. 현재는 T2와 C4 인스턴스에서만 이 마이그레이션 서비스를 사용할 수 있다.

데이터베이스의 Schema 단위로도 마이그레이션 할 수 있는데 AWS Schema Converter를 이용할 수 있다. 다만 이것은 콘솔의 서비스 형태가 아니라 다운로드하여 사용하는 별도 툴 형식이다. 이를 통해 Oracle이나 MS SQLServer에서 MySQL 계열로 쉽게 마이그레이션 할 수 있도록 문제가 되는 부분을 찾아 알려준다.

DynamoDB를 Region간에 Replication할 수 있다. 내부적으로는 데이터베이스 Pipleline이라는 서비스를 이용하는 것이다. 여러 Template을 제공하고 있으며 구성 상의 Property들은 콘솔 상에서 확인 가능하다.

 

네트웍 마이그레이션

네트웍의 경우는 Route 53 서비스를 통해 마이그레이션 할 수 있다. 특히 Weighted Routing 기능을 이용하여 복수 개의 ELB에 각기 다른 Weight를 주어 ELB간 사용자 트래픽을 제어할 수 있다.

 

엔터프라이즈 마이그레이션의 고려사항

AWS 마이그레이션의 고려사항은 다음과 같다.

  • 총소유비용(TCO) 검토
  • 마이그레이션 방식
  • 마이그레이션 단계
  • License는  BYOL(Bring Your Own License, 기존 구매 License) 활용 혹은 Pay-as-you-go 모델 중 선택, 단 S/W 벤더와 클라우드 기반의 License 정책 협의 필요

이렇게 도입한 AWS가 주는 장점은 다음과 같다.

  • 자유와 통제력
  • 거대한 양의 데이터로부터 진정한 가치
  • 자유로운 AWS 클라우드 데이터의 이동
  • 마이그레이션의 자유
  • AWS의 보안 역량

 

도입 현황

전통적인 기업의 IT 영역은 보안, 비즈니스 애플리케이션, 사내 애플리케이션, IT 자원(데스크탑 등), 인프라 등으로 구분할 수 있다. 이제 AWS를 도입하면 각 영역에서 모두 AWS를 활용할 수 있게 된다. 예를 들어 Dole사의 경우 MS SharedPoint를 AWS 상에서 이용하고 있다. 만약 인프라 영역에 AWS를 도입하면 기존 인원은 DevOps로 활용할 수 있다.

AWS는 기존 서비스와 신규 서비스 모두에 도입할 수 있다. 기존 서비스라 함은 Oracle, SAP, Microsoft 등에서 제공하는 서비스이다.

  • Amazon RDS for Oracle은 Oracle 데이터베이스를 활용할 수 있으며 모든 Oracle 오라클 기반 애플리케이션을 사용할 수 있다. 또한 License가 없는 경우에도 AWS에서 사용 가능하다.
  • AWS는 SAP 인증 파트너이다. 따라서 AWS는 SAP 기반 업무 서비스를 제공한다. 또한 대부분의 SAP 제품이 AWS 상에서 구동 가능하도록 인증이 완료되어 있다.
  • Microsoft 역시 윈도우 서버를 위한 완벽한 License를 제공한다. 물론 이미 보유하고 있는 Microsoft License를 사용할 수도 있다. 또한 Active Directory, SQLServer, Exchange, SharedPoint 서버 등을 AWS에 설치할 수 있다.

반대로 신규 서비스는 AWS를 기반으로 하는 새로운 서비스를 개발하는 것이다.

  • SM엔터테인먼트의 경우 everysing이라는 노래방 앱을 AWS 상에서 서비스하고 있으며 EXO 등 인기 아이돌의 팬 사이트로 AWS를 기반으로 하고 있다. 팬 사이트의 경우 글로벌하게 너무 많은 팬이 몰리게 되므로 기존 방식으로는 감당할 수가 없다.
  • 나스닥(NASDAQ)은 장이 종료된 이후에 해당 데이터를 바탕으로 AWS 상에서 금융 빅데이터 분석 작업을 수행한다.
  • 노키아(Nokia)는 AWS 상에서 모바일 로그 분석을 수행 중이다.
  • 이스타 항공은 모바일 앱 서비스를 AWS로 구현하였다.
  • 콴타스(Qantas) 항공은 AWS 상에서 호텔 예약 사이트를 서비스 중이다.
  • 여행업계의 Expedia는 AWS 상에 Global Deals Engine을 올렸다.
  • 출판업계의 McGraw-Hill은 Oracle 데이터베이스 백업에 AWS를 활용하고 있다.
  • MLBAM(Major League Baseball Advanced Media)은 AWS 상에서 통계 사이트인 Statcast를 서비스 중이다.
  • 삼성전자의 경우 Smart TV의 서비스는 AWS를 기반으로 하지만 결제는 기존 인프라를 사용하는 역할 분담 방식을 사용하고 있기도 하다.

 

CloudWatch

각종 리소스를 감시하며 그래프화하여 보여주고 알람 서비스를 제공한다. 모니터링 데이터는 Scale In/Out의 기준 데이터가 될 수 있다. 또한 이 데이터를 EC2, Lambda, Kinesis Application 등과 연동할 수 있다. 예를 들어 IAM 설정 변경에 대한 경고를 수신하거나 CloudWatch Logs Subscription을 이용하여 Zabbix에 로그를 전송하는 것이다.

한편 CloudWatch에 나오는 데이터가 이상한 것 아닌가 하는 의심이 들 수도 있지만 수치는 신뢰할 수 있다. 단지 이 "통계 값"을 올바르게 해석하느냐의 문제가 있을 뿐이다. 관련된 값으로는 Sum, Min, Max, Avg, Sample Count 등이 있다.

지표(metrics)는 시 계열로 표시되는 측정 데이터이다. 약 300개 이상의 빌트-인 지표, 즉 표준 지표를 제공하고 있으며, 사용자가 임의로 수집하고자 하는 표준 지표에는 없는 지표, 즉 커스텀 지표도 등록할 수 있다. 커스텀 지표 등록은 CLI(put-metric-data)를 이용할 수 있다. 하나의 PutMetricData 요청에 20개의 데이터를 처리할 수 있다.

Namespace는 AWS 서비스의 구분자이며, Dimension은 지표를 고유하게 식별할 수 있도록 하는 이름과 값의 페어이다.

리눅스의 경우 CloudWatch Logs Agent를 사용할 수 있다. 이는 CLI 플러그인 형태로 제공되며 데몬형 스크립트이다. 1회 전송 레코드 크기는 최대 32K인데 그 이상은 잘린다. 로그는 Rename and re-create 또는 Copy and truncate 방식으로 관리할 수 있다.

윈도우의 경우 EC2Config에서 CloudWatch Logs를 설정한다. 해당 파일은 AWS.EC2.Windows.CloudWatch.json이다.