Category: Launch*


출시 예고 – Amazon Aurora 멀티 마스터 및 서버리스 서비스

Amazon Aurora에 대해 이미 들어보셨을 수도 있습니다. MySQL 호환 또는 PostgreSQL 호환 버전으로 제공되는 Aurora는 완전 관리형 솔루션으로, 최대 64TB 크기의 데이터베이스 스토리지까지 자동으로 확장됩니다. Aurora 데이터베이스 인스턴스를 생성할 때 원하는 인스턴스 크기를 선택할 수 있으며, 읽기 복제본을 사용하여 읽기 처리량을 늘리는 옵션도 있습니다. 처리 요건이나 쿼리 속도가 변경되면 인스턴스 크기를 수정하거나 필요에 따라 읽기 복제본 수를 변경할 수 있습니다. 이 모델은 워크로드를 예측할 수 있는 환경에서 요청 속도 및 처리 요구 사항에 맞게 매우 효과적으로 작동합니다.

오늘 관계형 데이터베이스의 병목을 획기적으로 개선할 수 있는 Aurora 멀티 마스터 및 서버리스 두 가지 기능을 미리 보기로 출시합니다.

Amazon Aurora 멀티 마스터 기능

Amazon Aurora 멀티 마스터로 복수의 가용 영역에서 작동하는 복수의 읽기/쓰기 마스터 인스턴스를 생성할 수 있습니다. 애플리케이션은 이를 통해 마치 읽기 전용 복제본을 읽는 것처럼 클러스터에 있는 여러 데이터베이스 인스턴스에 데이터를 쓰거나 읽을 수 있게 됩니다.

멀티 마스터 클러스터는 Aurora의 우수한 고가용성을 한층 더 강화합니다. 마스터 인스턴스 중 하나에 장애가 발생하면 클러스터에 있는 다른 인스턴스가 즉시 이어받기 때문에 인스턴스 장애는 물론 AZ 전체에 장애가 발생하더라도 애플리케이션이 중단되지 않고 계속 읽거나 쓸 수 있습니다.

현재 마스터 하나로 운영되는 Aurora는 데이터베이스 클러스터 하나에서 쓰기 인스턴스 하나와 최대 15개의 읽기 전용 복제본(승격 가능)을 지원합니다. 기본 쓰기 인스턴스는 r4.16xlarge에서 1초당 최대 200,000개의 쓰기 작업을 실행할 수 있습니다. 쓰기 처리량이 그보다 많아야 하는 워크로드라면 마스터 인스턴스를 추가하고 쓰기 작업을 수평 확장함으로써 이익을 얻을 수 있습니다. 이 미리 보기는 Aurora MySQL 호환 버전에 사용 가능합니다. 참가하려면 등록 양식을 작성해 주십시오.

Amazon Aurora 서버리스 기능

데이터 베이스를 사용하다 보면, 경우에 따라 하루 또는 한 주에 몇 분 또는 몇 시간 동안 요청이 폭증하는 등, 워크로드가 간헐적이거나 예측 불가능할 수도 있습니다. 반짝 세일, 드물거나 일회성으로 진행하는 이벤트, 온라인 게임, 보고 워크로드(시간당 또는 일일), 개발/테스트 및 새로운 애플리케이션 출시가 대표적인 경우입니다. 정확히 알맞은 양의 용량만 확보하기 위해서는 많은 조사 작업이 필요할 수 있고, 정기 결제는 합리적이지 않을 수 있습니다.

바로 오늘 Amazon Aurora 서버리스의 프리뷰 버전이 출시됩니다(미리 보기 신청). 가변성이 높고 급격한 변화가 발생할 수 있는 워크로드에 적합하도록 설계된 이 새 구성에서는 데이터베이스 리소스 비용을 사용한 만큼 초 단위로 지불할 수 있습니다.

이 서버리스 모델은 Aurora 아키텍처의 일부로 내장된, 완벽하게 분리된 처리와 스토리지를 기반으로 구축됩니다(자세한 내용은 Design Considerations for High-Throughput Cloud-Native Relational Databases 참조). 처음에 데이터베이스 인스턴스 크기를 선택하는 대신 엔드포인트를 만들고, 필요에 따라 원하는 최소 및 최대 용량을 설정한 후 엔드포인트에 대해 쿼리를 발행합니다. 엔드포인트는 쿼리를 신속하게 확장된 데이터베이스 리소스 집합으로 라우팅하는 간단한 프록시입니다. 그러면 백그라운드에서 조정 작업이 이루어지는 동안에도 연결 상태를 그대로 유지할 수 있습니다. 새로운 리소스가 5초 이내에 온라인으로 제공되는 등, 조정이 빠르게 이루어집니다. 함께 정상적으로 작동되는 방식은 다음과 같습니다.

스토리지와 처리가 분리되므로 이론상 0까지 축소할 수 있고 스토리지에 대한 비용만 지불하면 됩니다. 정말 멋진 모델이라고 생각합니다. 덕분에 새로운 종류의 인스턴트 온 임시 애플리케이션이 개발될 것으로 기대합니다. 조정은 요청을 즉시 처리할 준비가 된 “웜” 리소스 풀을 기반으로 단 몇 초 만에 이루어집니다. 새로 추가된 리소스가 최고 속도로 작동하도록 캐싱 및 버퍼링된 기존 콘텐츠가 신중하게 구축됩니다. 거의 아무런 조치 없이 기존의 Aurora 데이터베이스를 서버리스로 만들 수 있습니다.

요금 청구는 Aurora 용량 단위를 기반으로 하며, 각 단위는 컴퓨팅 성능과 메모리의 조합을 의미합니다. 새로 추가되는 리소스당 1분을 최소값으로 하여 1분 단위로 측정됩니다.

지속적 업데이트
2018년 초, Amazon Aurora 서버리스에 대한 추가 정보를 제공할 예정입니다. 현재 계획은 상반기에 MySQL 호환성을 갖춘 프로덕션 형태로 출시하고, 하반기에는 PostgreSQL 호환 버전을 출시하는 것입니다. 바로 지금 프리뷰 서비스에 가입할 수 있습니다.

Jeff;

이 글은 AWS re:Invent 2017 신규 서비스 출시 소식으로 Sign Up for the Preview of Amazon Aurora Multi-Master 및  In The Works – Amazon Aurora Serverless의 한국어 번역 편집본입니다.

Amazon DynamoDB 업데이트 – 글로벌 테이블 및 온 디맨드 백업 기능 출시

다양한 산업 분야의 AWS 고객이 Amazon DynamoDB를 이용해 미션 크리티컬 데이터를 저장합니다. 금융 서비스, 상거래, AdTech, IoT 및 게임 애플리케이션 등은 수백 테라바이트 용량의 데이터 및 수조 개의 항목으로 구성된 개별 테이블로 초당 수백만 건의 요청을 처리하고 DynamoDB를 사용해 몇 밀리초 이내에 결과를 반환합니다.

지금부터 여러분이 좋아할 만한 강력한 새 기능 두 가지를 소개하겠습니다.

  • 글로벌 테이블 – 이제 몇 번의 클릭만으로 멀티 마스터 쓰기를 완벽하게 지원하면서 두 곳 이상의 AWS 리전에 걸쳐 자동으로 복제되는 테이블을 생성할 수 있습니다. 따라서 복제 프로세스를 관리할 필요 없이 글로벌 사용자 기반을 겨냥해 대규모로 확장되는 애플리케이션을 빠르게 구축할 수 있습니다.
  • 온 디맨드 백업 – 이제 한 번의 클릭으로 성능이나 가용성에 전혀 영향을 미치지 않으면서 DynamoDB 테이블의 전체 백업을 만들 수 있습니다. 애플리케이션은 온라인 상태를 유지하고 최고 속도로 실행됩니다. 백업은 장기 보존 및 보관에 적합하며 규정 요구 사항을 준수하는 데 도움이 될 수 있습니다.

글로벌 테이블
DynamoDB는 이미 3개 가용 영역에 걸쳐 테이블을 복제하여 내구성이 뛰어난 고가용성 스토리지를 제공합니다. 이제 글로벌 테이블을 사용하여 두 곳 이상의 AWS 리전에 걸쳐 테이블을 복제하고 몇 번의 클릭만으로 설정할 수 있습니다. 가장 까다로운 글로벌 앱의 필요에 따라 확장 가능한, 빠른 읽기 및 쓰기 성능을 얻을 수 있습니다.

기존 코드를 변경할 필요는 없습니다. 지정된 리전의 DynamoDB 엔드포인트로 쓰기 요청 및 최종적 일관된 읽기 요청을 보내기만 하면 됩니다(강력한 일관된 읽기와 관련된 쓰기는 공통 엔드포인트를 공유해야 함). 보이지는 않지만 DynamoDB가 멀티 마스터 쓰기를 구현하고 특정 항목에 대한 마지막 쓰기가 우선 적용되도록 합니다. 글로벌 테이블을 사용하면 각 항목에는 가장 최근의 쓰기 시간을 나타내는 타임스탬프 속성이 포함됩니다. 업데이트는 DynamoDB Streams를 통해 다른 리전에 비동기식으로 전파되며 일반적으로 1초 이내에 완료됩니다(새로운 ReplicationLatency 및 PendingReplicationCount 측정치를 사용하여 추적 가능).

시작 방법은 간단합니다. 일반적인 방법으로 테이블을 만든 다음, 한 번 클릭으로 추가하여 다른 리전으로의 복제를 예약합니다. 모두 동일한 이름과 키 구성(해시 및 선택적 정렬)의 빈 테이블을 가지고 시작해야 합니다. 모든 테이블은 Auto Scaling, TTL, 로컬 보조 인덱스, 글로벌 보조 인덱스, 프로비저닝된 처리량 설정 및 IAM 정책 집합도 일관되게 공유해야 합니다. 편의를 위해 새로운 글로벌 테이블에서는 Auto Scaling이 자동으로 활성화됩니다.

DynamoDB Auto Scaling을 사용하지 않을 경우 로컬 리전에서 시작되는 각 애플리케이션 쓰기에 대한 추가 시스템 쓰기 및 그룹의 모든 테이블에서의 쓰기를 수용하기에 충분한 쓰기 용량과 로컬 읽기를 처리하기에 충분한 읽기 용량을 프로비저닝해야 합니다. 시스템 쓰기는 최종 쓰기가 우선 적용되는 모델을 지원하는 데 사용됩니다.

세 개 리전에 걸쳐 있는 글로벌 테이블을 생성해보겠습니다. 일반적인 방법으로 테이블을 만든 후 [Global Tables] 탭을 클릭합니다.

DynamoDB는 테이블을 검사하여 요구 사항을 충족하는지 확인하고, 사용자에게 DynamoDB Streams를 활성화할 것을 지시합니다. 이제 [Add region]을 클릭하고 [EU (Frankfurt)]를 선택한 후 [ Continue:]를 클릭합니다.

테이블이 즉시 생성됩니다.

이 작업을 한 번 더 반복하면 세 개 AWS 리전에 걸쳐 있는 글로벌 테이블이 만들어집니다.

[EU (Ireland)]에 항목을 생성합니다.

만드는 즉시 [EU (Frankfurt)]에 표시됩니다.

교차 리전 복제 프로세스에 aws:rep:updateregion aws:rep:updatetime 속성이 추가됩니다. 애플리케이션에서 볼 수 있지만 수정해서는 안 됩니다.

글로벌 테이블은 현재 미국 동부(버지니아 북부), 미국 동부(오하이오), EU(아일랜드), EU(프랑크푸르트) 리전에서 사용할 수 있으며 2018년에 더 많은 리전이 추가될 예정입니다. 교차 리전 복제를 위한 데이터 전송 요금과 함께 읽기 용량 및 스토리지에 대한 통상적인 DynamoDB 요금을 지불하면 됩니다. 쓰기 용량은 복제된 쓰기 용량 단위로 청구됩니다.

온 디맨드 백업
이 기능은 장기 보관 및 데이터 보존에 대한 규정 요구 사항을 준수하도록 만들어졌습니다. 프로비저닝된 처리 용량을 소비하거나 애플리케이션의 응답에 영향을 주지 않고 클릭(또는 API 호출) 한 번으로 백업을 만들 수 있습니다. 백업은 내구성이 뛰어난 형태로 저장되며 새 테이블을 만드는 데 사용할 수 있습니다.

이제 DynamoDB 콘솔에 백업 섹션이 포함됩니다.

[Create backup]을 클릭하고 백업 이름을 지정하기만 하면 됩니다.

백업은 즉시 사용할 수 있습니다! 백업은 Amazon에서 관리하는 키로 암호화되며 모든 테이블 데이터, 프로비저닝된 용량 설정, 로컬 및 글로벌 보조 인덱스 설정 및 스트림이 포함됩니다. Auto Scaling 또는 TTL 설정, 태그, IAM 정책, CloudWatch 측정치 또는 CloudWatch 경보는 포함되지 않습니다.

일부 고객이 0.5페타바이트에 가까운 테이블을 가지고 있는 상황에서 이 작업이 어떻게 즉시 이루어질 수 있는지 궁금할 수 있습니다. 보이지는 않지만 DynamoDB가 전체 스냅샷을 생성하고 모든 변경 로그를 저장합니다. 백업 생성은 테이블의 현재 메타데이터와 함께 타임스탬프를 저장하는 작업만큼 간단합니다.

저의 백업입니다.

새 테이블로 복원하는 방법은 이와 같습니다.

다음은 DynamoDB 백업과 관련하여 몇 가지 유의해야 할 사항입니다.

  • 설정 – 새 테이블을 만든 후 DynamoDB가 몇 가지 설정 작업(책상에서 점심 식사를 하는 시간이면 충분)을 수행해야 첫 번째 백업을 생성할 수 있습니다.
  • 복원 – 복원 시간은 테이블의 크기에 따라 달라지며, 30분에서 몇 시간(매우 큰 테이블의 경우)에 이릅니다.
  • 가용성 – 현재 미국 동부(버지니아 북부), 미국 동부(오하이오), 미국 서부(오레곤), EU(아일랜드) 리전에 최초로 이 새로운 기능을 선보이고 있으며, 조속한 시일 내에 계정 단위로 제공할 계획입니다.
  • 요금 – 기가바이트-월 단위로 백업 스토리지 비용을 지불하고 복원하는 데이터 양에 따라 복원이 진행됩니다.

지금 일부 리전에서 바로 사용 가능하며, 향후 계속 가능 리전이 확대될 것입니다.

Jeff;

이 글은 AWS re:Invent 2017 신규 서비스 소식으로 Amazon DynamoDB Update – Global Tables and On-Demand Backup의 한국어 번역입니다.

Amazon Neptune – 완전 관리형 그래프 데이터베이스 서비스

최근 애플리케이션 데이터 구조와 알고리즘 중에서 특히 그래프(Graph)는 하루가 다르게 발전하고 있습니다. 최근 다양한 기업들은 소셜 미디어나 데이터 추천 등 복잡한 관계 데이터를 지속적으로 생성하고 수집합니다. 그러나, 개발자들은 복잡한 관계 기반 데이터를 기존 데이터베이스에서 모델링하게 되는데, 이로 인해 관계를 추가할 때마다 비용이 많이 들고 성능을 점점 저하시키는 극도로 복잡한 쿼리가 발생합니다. AWS는 갈수록 복잡해지는 최신 데이터 세트, 관계 및 패턴을 처리하고자 하는 고객의 요구를 지속적으로 받아왔습니다.

Amazon Neptune 소개

오늘 Amazon Neptune의 제한적 프리뷰 버전을 출시합니다. Amazon Neptune은 빠르고 안정적인 그래프 데이터베이스 서비스로, 고도로 연결된 데이터 세트 간의 관계로부터 쉽게 통찰력을 얻을 수 있습니다. 즉, 수십억 개의 관계를 저장하고 몇 밀리초의 지연 시간으로 그래프 기반 데이터를 쿼리하는 데 최적화된, 특수 목적의 고성능 그래프 데이터베이스 엔진입니다.

Amazon Neptune은 완전 관리형 데이터베이스로 제공되므로 고객은 유지 보수, 패치 적용, 백업 및 복원 같은 지루하고 반복적인 작업보다 애플리케이션 업무에 집중할 수 있습니다. 이 서비스는 가용성 증대를 위해 빠른 장애 조치, 지정 시간 복구 및 다중 AZ 배포를 지원합니다. 읽기 복제본을 최대 15개 지원하므로 쿼리 처리량을 초당 수십만 개의 쿼리로 확장할 수 있습니다. Amazon Neptune은 Amazon Virtual Private Cloud 내에서 실행되며, 유휴 데이터를 암호화할 수 있어, 전송 중이거나 유휴 상태인 데이터의 무결성을 완벽하게 달성할 수 있습니다.

이 서비스에는 흥미로운 기능이 있지만 여러분에게는 그래프 데이터베이스가 익숙하지 않은 주제일 수 있으므로 지금부터 관련 용어를 검토하는 시간을 갖겠습니다.

그래프 데이터베이스 기초

그래프 데이터베이스는 키-값 쌍으로 저장되는 속성을 가질 수 있는 정점(노드)과 간선(관계 또는 연결)의 저장소입니다. 그래프 데이터베이스는 연결된 데이터, 컨텍스트 데이터, 관계 중심 데이터에 유용합니다. 대표적인 분야로 소셜 미디어 네트워크, 추천 엔진, 자동차 운전 안내 시스템, 물류, 진단, 사기 탐지 및 게놈 시퀀싱 등이 있습니다.

Amazon Neptune은 그래프 설명 및 쿼리 방식으로 두 가지 개방형 표준을 지원합니다.

  • Apache TinkerPop3 스타일 속성 그래프는 Gremlin으로 쿼리됩니다. Gremlin은 그래프 순회 언어로서, 쿼리는 노드의 엣지(Edge)에 따라 별개의 단계로 구성된 순회입니다. TinkerPop에서 작동하도록 설계된 기존 도구와 클라이언트를 사용하면 Neptune을 빠르게 시작할 수 있습니다.
  • RDF(Resource Description Framework)SPARQL로 쿼리됩니다. SPARQL은 W3C의 시맨틱 웹 표준을 기반으로 하는 선언적 언어입니다. subject->predicate->object 모델을 따릅니다. 특히 Neptune은 RDF 1.1, SPARQL Query 1.1, SPARQL Update 1.1 및 SPARQL Protocol 1.1 표준을 지원합니다.

SPARQL 또는 TinkerPop에서 작동하는 기존 애플리케이션이 있는 경우 애플리케이션이 연결되는 엔드포인트를 업데이트하기만 하면 Neptune을 사용할 수 있습니다. Amazon Neptune을 시작하는 방법을 알려드리겠습니다.

Amazon Neptune 시작하기

먼저 Neptune 콘솔로 이동한 다음 “Launch Neptune”을 클릭하여 시작 마법사를 시작합니다.

이 첫 번째 화면에서는 인스턴스의 이름을 지정하고 인스턴스 유형을 선택합니다. 그런 다음 고급 옵션을 구성합니다. 이전에 인스턴스 기반 AWS 데이터베이스 서비스(Amazon Relational Database Service(RDS) 또는 Amazon ElastiCache)를 실행해본 적이 있다면 대부분의 과정이 익숙하게 느껴질 것입니다.

Amazon Neptune은 VPC에서 안전하게 실행되며 편리한 액세스를 위해 EC2 인스턴스를 추가할 수 있는 자체 보안 그룹을 만들 수 있습니다.

다음으로 파라미터 그룹, 포트, 클러스터 이름 등 몇 가지 추가 옵션을 구성할 수 있습니다.

이 다음 화면에서는 KMS 기반의 저장 시 암호화, 장애 조치 우선 순위, 백업 보존 기간을 설정할 수 있습니다.

RDS와 마찬가지로 서비스에서 데이터베이스의 유지 관리를 처리할 수 있습니다.

인스턴스의 프로비저닝이 완료되면 클러스터의 세부 정보 페이지에서 연결 엔드포인트를 찾을 수 있습니다. 저의 경우 triton.cae1ofmxxhy7.us-east-1.rds.amazonaws.com입니다.

Amazon Neptune 사용

위에서 설명한 것처럼 Amazon Neptune에서는 두 종류의 쿼리 엔진을 사용할 수 있습니다. gremlin 엔드포인트에 연결하려면 /gremlin 엔드포인트를 사용해 다음 작업을 수행할 수 있습니다.


curl -X POST -d '{"gremlin":"g.V()"}' https://your-neptune-endpoint:8182/gremlin

마찬가지로 /sparql을 이용해 SPARQL 엔드포인트에 연결할 수 있습니다.


curl -G https://your-neptune-endpoint:8182/sparql --data-urlencode 'query=select ?s ?p ?o where {?s ?p ?o}'

데이터를 쿼리하기 전에 데이터베이스를 채워야 합니다. AWS re:Invent를 모델링하고 대량 로딩 API를 사용해 데이터를 삽입한다고 가정해봅시다. 속성 그래프의 경우, Neptune은 로딩 노드, 노드 속성, 엣지, 엣지 속성에 대해 Amazon Simple Storage Service(S3)에 저장된 CSV를 지원합니다.

일반적인 정점 CSV의 형식은 이와 같습니다.

~label,name,email,title,~id
Attendee,George Harrison,george@thebeatles.com,Lead Guitarist,1
Attendee,John Lennon,john@thebeatles.com,Guitarist,2
Attendee,Paul McCartney,paul@thebeatles.com,Lead Vocalist,3

엣지 CSV 형식은 이와 같습니다.

~label,~from,~to ,~id
attends,2,ARC307,attends22
attends,3,SRV422,attends27

이제 유사한 구조의 CSV를 Neptune에 로드하기 위해 다음과 같이 실행하겠습니다.

curl -H 'Content-Type: application/json' \
https://neptune-endpoint:8182/loader -d '
{
    "source": "s3://super-secret-reinvent-data/vertex.csv",
    "format": "csv",
    "region": "us-east-1",
    "accessKey": "AKIATHESEARENOTREAL",
    "secretKey": "ThEseARE+AlsoNotRea1K3YSl0l1234coVFefE12"  
}'

그러면 다음 결과가 반환될 것입니다.

{
    "status" : "200 OK",
    "payload" : {
        "loadId" : "2cafaa88-5cce-43c9-89cd-c1e68f4d0f53"
    }
}

이 결과를 가져와 로딩 상태를 쿼리할 수 있습니다. curl https://neptune-endpoint:8182/loader/2cafaa88-5cce-43c9-89cd-c1e68f4d0f53

{
    "status" : "200 OK",
    "payload" : {
        "feedCount" : [{"LOAD_COMPLETED" : 1}],
        "overallStatus" : {
            "fullUri" : "s3://super-secret-reinvent-data/stuff.csv",
            "runNumber" : 1,
            "retryNumber" : 0,
            "status" : "LOAD_COMPLETED",
            "totalTimeSpent" : 1,
            "totalRecords" : 987,
            "totalDuplicates" : 0,
            "parsingErrors" : 0,
            "datatypeMismatchErrors" : 0,
            "insertErrors" : 0
        }
    }
}

이 특정 데이터 직렬화 형식에 대해서는 이 로딩 프로세스를 내 엣지에도 반복합니다.

RDF의 경우 Neptune은 Turtle, N-Triples, N-Quads 및 RDF/XML 등 네 가지 직렬화를 지원합니다. 하나의 로딩 API를 통해 이 모든 것을 로드할 수 있습니다.

이제 데이터베이스에 데이터가 있으니 쿼리를 실행할 수 있습니다. Gremlin에서 그래프 순회로 쿼리를 작성합니다. 저는 폴 매카트니의 열렬한 팬으로서 그가 참여하는 모든 세션을 찾아보려고 합니다.
g.V().has("name","Paul McCartney").out("attends").id()

그러면 “Paul McCartney”라는 값의 “name” 속성을 가진 모든 노드를 찾는 그래프 순회가 정의됩니다(단 하나뿐입니다!). 다음으로 “참석” 유형의 해당 노드에서 모든 엣지를 따라 결과 노드의 ID를 가져옵니다.


==>ENT332
==>SRV422
==>DVC201
==>GPSBUS216
==>ENT323

위 내용을 통해 그래프 데이터베이스 기능의 간략한 개요를 파악하셨기를 바랍니다. 그래프 데이터베이스는 많은 고객들에게 새로운 가능성을 제공하며, Amazon Neptune을 사용하면 대용량 데이터를 쉽게 저장하고 쿼리할 수 있습니다.

Randall;

이 글은 AWS re:Invent 2017 신규 서비스 소식으로 Amazon Neptune – A Fully Managed Graph Database Service의 한국어 번역입니다.

AWS PrivateLink 업데이트 – 자체 애플리케이션 및 서비스용 VPC 엔드포인트

이번 달 초에 Colm MacCárthaigh을 통해 여러분에게 AWS PrivateLink에 관한 소식을 전하고, 이를 사용하여 Amazon Kinesis Streams, AWS Service Catalog, EC2 Systems Manager, EC2 API, 그리고 VPC 엔드포인트를 통한 ELB API와 같은 AWS 서비스에 액세스하는 방법을 보여주었습니다. 엔드포인트(한  개 이상의 탄력적 네트워크 인터페이스 또는 ENI로 표시)는 VPC 내에 상주하고, VPC 서브넷으로부터 IP 주소를 가져오며, 인터넷이나 NAT 게이트웨이를 필요로 하지 않습니다. 이 모델은 명확하고 이해하기 쉬우며, 안전하면서도 확장까지 가능합니다!

프라이빗 연결용 엔드포인트
이제 PrivateLink 모델을 확장함으로써 여러분이 VPC 엔드포인트를 설정하고 사용하여 자체 서비스 및 다른 사람이 사용 가능하도록 한 서비스에 액세스할 수 있도록 합니다. AWS 서비스용 PrivateLink를 출시하기 전에도 이러한 기능에 대한 요청이 많았기에 굉장히 많이 사용될 것으로 예상합니다. 예를 들어 한 고객은 저희에게 수백 개의 VPC를 만들고, 각각의 VPC가 단일 마이크로서비스(자세히 알아보려면 AWS의 마이크로서비스 기술 백서 참조)를 호스팅 및 제공할 계획이라고 말했습니다.

이제 기업들은 관련 서비스를 만들어 다른 AWS 고객에 대한 판매용 프라이빗 연결을 통한 액세스용으로 제공할 수 있습니다. TCP 트래픽을 허용하는 서비스를 만들고, 이를 네트워크 로드 밸런서 뒤에서 호스팅한 다음, 직접 또는 AWS Marketplace를 통해 서비스를 사용할 수 있습니다. 새로운 구독 요청에 대한 알림을 받고 각각의 허용 또는 거부를 선택할 수 있습니다. 이 기능이 2018년에 강력하고 생동감이 넘치는 클라우드 서비스 공급자 생태계를 만드는 데 일조할 것으로 예상합니다.

서비스 공급자와  사용자는 별도의 VPC와 AWS 계정을 실행한 다음 엔드포인트를 통해 커뮤니케이션합니다. 이때 모든 트래픽은 Amazon의 프라이빗 네트워크를 통해 전송합니다. 서비스 소비자는 중첩되는 IP 주소를 걱정하거나 VPC 피어링을 처리하거나 VPC 게이트웨이를 사용할 필요가 없습니다. 또한, 클라우드 기반 애플리케이션이 온프레미스에서 실행 중인 서비스에 액세스하는 경우, 또는 그 반대의 경우를 허용하기 위해 AWS Direct Connect를 사용하여 기존 데이터 센터를 VPC 중 하나에 연결할 수 있습니다.

서비스 제공 및 사용 방법
신규 기능은  VPC API, VPC CLI 또는 AWS Management Console을 사용하여 모든 것을 설정할 수 있습니다. 이제 콘솔을 사용해서 서비스를 제공하고 활용하는 방법을 보여 드리겠습니다. 단, 시연을 목적으로 하는 것이기 때문에 하나의 AWS 계정에서 두 가지를 모두 하겠습니다.

우선 서비스 제공 방법 부터 살펴보겠습니다. 네트워크 로드 밸런서 뒤에서 실행이 되어야 하고, TCP를 통해 액세스가 가능해야 합니다. EC2 인스턴스, ECS 컨테이너, 또는 온프레미스(IP 대상으로 구성됨)에서 호스팅될 수 있으며, 예상 수준의 수요를 충족할 수 있도록 확장이 가능해야 합니다. 낮은 지연 시간과 내결함성을 위해 리전의 모든 AZ에 대상을 포함한 NLB를 사용하는 것을 권장합니다. 예로 들자면 아래와 같습니다.

VPC 콘솔을 열고 [Endpoint Services]로 이동한 다음 [Create Endpoint Service]를 클릭합니다.

NLB(이 경우에는 단 1개이지만, 2개 이상을 선택할 수 있고, 라운드 로빈 방식으로 사용자에게 매핑됩니다)를 선택합니다. [Acceptance required]를 클릭함으로써 각 요청을 기준으로 제 엔드포인트에 대한 액세스를 제어합니다.

[Create service]를 클릭하면 제 서비스가 즉시 준비됩니다.

이 서비스를 AWS Marketplace에서도 사용할 수 있도록 할 생각이라면 계속 진행하다 여기서 목록을 만들 것입니다. 이 블로그 게시물에서는 생산자도 되고 소비자도 될 것이기 때문에 이 단계는 건너뛰겠습니다. 대신 다음 단계에서 사용할 서비스 이름을 복사하겠습니다.

VPC 대시보드로 돌아가서 [Endpoints]로 이동한 다음 [Create endpoint]를 클릭합니다. [Find service by name]을 선택한 다음 서비스 이름을 붙여 넣고 [Verify]를 클릭하여 계속 진행합니다. 그런 다음 원하는 AZ와 각 AZ의 서브넷을 선택한 다음 보안 그룹을 고르고 [Create endpoint]를 클릭합니다.

엔드포인트 서비스를 만들 때 [Acceptance required]를 선택했기 때문에 연결이 수락을 대기 중입니다.

엔드포인트 서버 측(일반적으로는 별도의 AWS 계정)으로 돌아가면 대기 중인 요청을 확인하고 수락할 수 있습니다.

엔드포인트가 사용 가능한 상태가 되고, 1분 정도 이내에 사용 준비가 됩니다. 서비스를 만들고 유료 기반으로 액세스를 판매하고 있었다면 새로운 고객에 대한 더 큰 규모의 어쩌면 자동화된 온보딩 워크플로우의 일환으로 요청을 수락했을 것입니다.

사용자 측에서는 DNS 이름을 통해 저의 새로운 엔드포인트에 액세스할 수 있습니다.

AWS에서 제공하는 서비스와 AWS Marketplace에 있는 서비스는 분할-수평 DNS를 통해 액세스할 수 있습니다. 이 이름을 통해 서비스에 액세스하면 “최적의” 엔드포인트로 확인되고, 리전 및 가용 영역을 고려합니다.

Marketplace에서 활용하기
이미 언급한 대로 PrivateLink의 이 새로운 기능은 AWS Marketplace의 신규 및 기존 판매업체에 기회를 만들어 줍니다. 다음 SaaS 제품은 이미 엔드포인트로 사용 가능하며, 종류는 더 늘어날 것으로 예상합니다(시작하려면 AWS Marketplace에서의 판매 참조).

정식 출시
PrivateLink의 이 새로운 기능은 바로 오늘부터 사용할 수 있습니다!

Jeff;

이 글은 AWS re:Invent 2017의 신규 서비스로서 AWS PrivateLink Update – VPC Endpoints for Your Own Applications & Services의 한국어 번역입니다.

AWS Cloud9 정식 출시 – 클라우드 기반 통합 개발 환경(IDE)

프로그래밍을 시작할 때 무엇보다 개발 도구가 중요합니다. 단순히 메모장으로는 할 수 없고, 다양한 기능을 가진 코드 편집기와 테스트 파이프라인이 개발 생산성을 높입니다. 처음에 Vim을 배우고 시스템과 복잡한 프로그램을 번갈아 사용할 수 있었던 것이 아직도 기억납니다. 당시 새 PC에 컴파일러와 종속 라이브러리를 설치하는 데, 얼마나 많은 시간이 걸렸는지 기억합니다. 각각 버전을 맞추고, 신규 개발자가 프로젝트에 합류하도록 문서를 작성하는 데 많은 노력을 쏟기도 합니다.

이런 문제를 해결하기 위해, 오늘 웹 브라우저에서 코드 작성, 실행 및 디버깅 모두를 가능케 하는 통합 개발 환경(IDE)인 AWS Cloud9을 출시합니다. Cloud9은 주요 프로그래밍 언어(Javascript, Python, PHP, etc.)에 대한 필수 개발 도구을 미리 배포됩니다. 따라서, 다양한 컴파일러와 도구 체인을 직접 다룰 필요가 없습니다.

Cloud9은 또한 서버리스 애플리케이션 작업을 위한 완벽한 환경을 제공하므로 로컬 및 원격 테스팅 또는 디버깅을 빠르게 전환할 수 있습니다. 인기 오픈 소스인 Ace Editor와 c9.io IDE(작년에 도입)를 기반으로 하는 AWS Cloud9은 매우 강력한 페어 프로그래밍 기능을 통해 협업 클라우드 개발을 손쉽게 하도록 설계되었습니다. 이 글에서 다루기에는 기능이 너무나 많지만, IDE에서 필요한 3가지 요소인 코드 편집, AWS 통합, 그리고 협업 기능에 대해 소개합니다.

코드 편집


Cloud9 기능의 핵심인 Ace Editor를 통해 코드를 빠르고 쉽게 작성할 수 있습니다. 한 가지를 잘하자는 UNIX의 철학을 따르는데, 바로 소스 코드 작성입니다.

여러분이 예상하는 일반적인 IDE 기능을 모두 갖추고 있습니다. 실시간 구문 확인, 자동 들여쓰기, 자동 완료, 코드 폴딩, 분할 창, 버전 제어 통합, 다중 커서 및 선택 등입니다. 특히, 대규모 파일(10만 개 이상 행) 로딩도 빠릅니다. 입력 시 랙이나 다른 문제가 없습니다. 20개 이상의 테마가 내장되어 있어 Sublime Text나 TextMate에서 좋아하는 모든 테마를 가져올 수 있습니다. 40개 이상의 언어 모드와 프로젝트에 대해 사용자 지정이 가능한 실행 구성이 내장되어 있습니다. 그리고, 무엇보다 중요한 것은 Vim 모드가 있다는 것으로 (또는 손가락만 잘 움직인다면 emacs 가용 가능) 원하는 대로 편집기를 움직이도록 하는 키 결합 편집기도 있습니다.

편집기는 강력한 키보드 탐색과 명령을 지원합니다(Sublime Text 또는 ctrlp와 같은 vim 플러그인과 유사). Mac에서 ⌘+P를 통해 퍼지 검색을 사용하여 환경에서 모든 파일을 열 수 있습니다. 포함 ⌘+. 이름 입력을 통해 모든 편집기 명령을 호출하도록 할 수 있는 명령 창을 열 수 있습니다. 창에서 명령에 대한 키 결합이 표시되어 유용합니다. 예를 들어 다음을 누르면 터미널을 열 수 있습니다. ⌥+T. 참, 터미널이 있다는 얘기를 했나요? 리소스 액세스에 대한 AWS CLI 사전 구성에 포함되어 있습니다.

또한 환경에는 자주 사용되는 여러 언어에 대한 사전 설치된 디버깅 도구가 포함됩니다. 하지만 이미 설치된 것만 사용하도록 제한된 것은 아닙니다. 새 프로그램을 추가하고 새로운 실행 구성을 정의하기 쉽습니다.

AWS 서비스와의 통합

AWS Cloud9 IDE는 최초의 IDE로 진정한 “클라우드 네이티브”입니다. 서비스는 추가 요금 없이 제공되며, 기본 컴퓨팅 및 스토리지 리소스에 대한 요금만 지불하면 됩니다. 개발 환경을 생성하면, 인스턴스 유형 및 자동 최대 절전 시간, 또는 선택하는 머신에 대한 SSH 액세스에 대한 설정 정보가 표시됩니다.

AWS에서 실행 중인 경우, 자동 최대 절전 기능을 통해 IDE 사용을 중단하는 즉시 인스턴스를 중단합니다. 개발자 데스크탑을 실행하는 데 비해 비용 절감이 매우 클 수 있습니다. 또한, VPC 내에서 이를 시작하여 클라우드 내부 개발 리소스에 대한 안전한 접근을 제공할 수 있습니다. AWS 외부 또는 기존 인스턴스에서 Cloud9을 실행하고자 하는 경우 서비스에 대한 SSH 액세스를 제공하여 외부 머신에 환경을 생성할 수 있습니다. AWS 계정에 대한 안전한 자동 액세스를 통해 환경이 프로비저닝되므로 자격 증명 (키페어) 복사 문제를 걱정할 필요가 없습니다. 다시 한 번 말씀 드리지만 어디서나 개발 환경을 실행할 수 있습니다.

AWS Cloud9을 통한 서버리스 개발

그동안 Twitch에서 서버리스 애플리케이션 개발에 대한 라이브 코딩을 많이 진행했는데, 배포한 Lambda 함수와 API가 수백 개는 됩니다. Cloud9은 이러한 모든 함수를 통한 작업을 정말 유쾌하게 만듭니다. 어떻게 그렇게 되는지 보여드리겠습니다.

편집기의 오른쪽 상단을 보면 [AWS Resources] 탭이 보입니다. 이를 열면 리전의 모든 Lambda 함수를 볼 수 있습니다(AWS 기본 설정 창에서 리전 기본 설정을 조정하면 다른 리전의 함수를 볼 수 있습니다).

두 번 클릭하면 이러한 원격 함수를 로컬 작업 영역으로 가져올 수 있습니다. 이를 통해 서버리스 애플리케이션의 편집, 테스트 및 디버그를 모두 로컬에서 수행할 수 있습니다.

새로운 애플리케이션 및 함수 또한 손쉽게 만들 수 있습니다. 창 오른쪽 상단에 있는 Lambda 아이콘을 클릭하면 새로운 Lambda 함수를 생성하라는 메시지가 표시되고, Cloud9이 자동으로 Serverless Application Model 템플릿을 생성합니다.

IDE에는 사전 설치된 인기 SAM 로컬 도구에 대한 지원이 포함됩니다. 제 로컬 테스팅 및 서버리스 개발에서 가장 많이 사용하는 것입니다. 터미널이 있기 때문에 추가 도구를 설치하고 기타 서버리스 프레임워크를 사용하기 쉽습니다.

AWS CodeStar에서 환경 시작

AWS CodeStar를 통해 AWS 개발을 위한 엔드 포인트간 간 지속적 배포(CI/CD)을 프로비저닝할 수 있습니다. Codestar는 AWS CodeCommit, CodeBuild, CodePipelineCodeDeploy 서비스 제품군을 사용한 애플리케이션 빌드, 테스팅, 배포 및 관리에 대한 통합 환경을 제공합니다.

이제 클릭 몇 번만으로 Cloud9 환경을 프로비저닝하여 애플리케이션을 개발할 수 있습니다. 환경은 이미 체크아웃된 CodeStar 애플리케이션과 이미 구성된 git 자격 증명에 대한 코드로 사전 구성됩니다.

동료들과 이 환경을 손쉽게 공유할 수 있고, 이를 통해 또 다른 유용한 기능 세트 사용으로도 이어집니다.

동료와 협업 기능

다른 편집기와 차별화되는 AWS Cloud9의 여러 특성 중 하나가 풍부한 협업 도구입니다. 클릭 몇 번만으로 IAM 사용자를 환경으로 초대할 수 있습니다.

어떤 파일을 작업 중인지, 커서가 어디에 있는지를 볼 수 있고, 터미널을 공유할 수도 있습니다. 채팅 기능 또한 유용합니다.

알아야 할 것들

  • 기본 컴퓨팅 및 스토리지를 제외하고 이 서비스에 대한 추가 요금은 없습니다.
  • c9.io는 계속해서 기존 사용자를 대상으로 실행됩니다. c9.io의 모든 기능을 계속 사용할 수 있고, 팀 계정이 있다면 새로운 팀 구성원을 추가할 수 있습니다. 향후에는 c9.io 작업 영역에서 AWS Cloud9로의 손쉬운 마이그레이션을 위한 도구를 제공할 예정입니다.
  • AWS Cloud9은 미국 서부(오레곤), 미국 동부(오하이오), 미국 동부(버지니아 북부), EU(아일랜드), 아시아 태평양(싱가포르) 리전에서 사용할 수 있습니다.

AWS Cloud9을 사용하여 여러분이 개발한 것을 보고 싶습니다!

Randall;

이 글은 AWS re:Invent 2017의 신규 서비스로서 AWS Cloud9 – Cloud Developer Environments 의 한국어 번역입니다.

Amazon SageMaker 출시 – 머신 러닝 기반 서비스 가속화

머신 러닝은 많은 스타트업 및 대기업을 위한 중추적 기술입니다. 수십 년간의 투자와 발전에도 불구하고 머신 러닝 모델을 개발 및 학습하고 유지하는 것은 여전히 다루기 힘들고 까다로운 일입니다. 일반적으로 머신 러닝을 애플리케이션에 통합하는 프로세스에는 전문가 팀이 수개월 동안 불일치 설정을 조정하고 수정하는 과정이 포함됩니다. 기업과 개발자들이 원하는 것은 개발부터 실제 운영까지의 총체적인 파이프라인입니다.

Amazon SageMaker 소개

Amazon SageMaker는 데이터 과학자, 개발자, 머신 러닝 전문가가 모든 규모의 머신 러닝 모델을 간편하게 만들어 학습 및 배포할 수 있는 총체적인 종합 관리형 서비스입니다. 이 서비스는 머신 러닝을 위한 모든 작업의 능률을 대폭 높여 주므로 머신 러닝을 실제 운영 애플리케이션에 신속하게 추가할 수 있습니다.

Amazon SageMaker의 3가지 주요 구성 요소는 다음과 같습니다.

  • 노트북 기반 코딩: 설정 작업이 필요 없는 호스팅형 Jupyter 노트북 IDE로서, 데이터 탐색, 정리 및 사전 처리를 수행합니다. 이러한 IDE를 일반 인스턴스 유형이나 GPU 구동 인스턴스에서 실행할 수 있습니다.
  • 모델 학습: 배포된 모듈 구축, 학습 및 확인 서비스. 기본으로 제공되는 지도(supervised) 및 비지도(unsupervised) 학습 알고리즘과 프레임워크를 사용하거나, 도커 컨테이너를 사용하여 학습을 직접 만들 수 있습니다. 이 학습은 모델 구축 속도를 높이기 위해 수십 개의 인스턴스로 확장할 수 있습니다. 학습 데이터를 S3에서 읽어와서 모델 결과물이 S3에 저장됩니다. 이 모델 결과물은 데이터에 종속된 모델 파라미터이며, 모델에서 추론할 수 있는 코드가 아닙니다. 이렇게 구분되기 때문에 Amazon SageMaker 학습 모델을 IoT 디바이스 같은 다른 플랫폼에 쉽게 배포할 수 있습니다.
  • 모델 호스팅: 모델을 호출하여 실시간 추론을 받기 위한 HTTPs 엔드포인트 모델 호스팅 서비스. 이러한 엔드포인트는 트래픽을 지원하도록 확장할 수 있으며 여러 모델에 대해 동시에 A/B 테스트를 수행할 수 있습니다. 또한 기본 제공되는 SDK를 사용하여 이러한 엔드포인트를 생성하거나, 도커 이미지를 사용하여 구성을 직접 제공할 수 있습니다.

이러한 구성 요소를 별개로 사용할 수 있기 때문에 Amazon SageMaker를 사용하면 기존 파이프라인의 공백을 쉽게 채울 수 있습니다. 즉, 서비스를 전체적으로 이용할 때 사용할 수 있는 몇 가지 강력한 기능이 있습니다.

SageMaker 사용

Apache MXNet 기반 이미지 분류자를 만들어 학습하고 배포하려 합니다. Gluon 언어, CIFAR-10 데이터 세트, ResNet V2 모델 아키텍처를 사용하겠습니다.

Jupyter 노트북을 사용하여 저작


노트북 인스턴스를 만들 경우 이 인스턴스는 딥 러닝에서 일반적인 Anaconda 패키지 및 라이브러리와 함께 제공된 ML 컴퓨팅 인스턴스를 실행하고, 5GB ML 스토리지 볼륨 및 다양한 알고리즘을 보여주는 몇 가지 예제 노트북을 실행합니다. 리소스에 간편하고 안전하게 액세스할 수 있도록 하기 위해 VPC에 ENI를 생성하는 VPC 지원을 선택적으로 구성할 수도 있습니다.

인스턴스가 프로비저닝되면 노트북을 열고 코드 작성을 시작할 수 있습니다.

모델 학습

간결하게 하기 위해 여기서는 실제 모델 학습 코드를 생략할 것이지만, 일반적으로 모든 종류의 Amazon SageMaker 공통 프레임워크 학습의 경우 다음과 같은 간단한 학습 인터페이스를 구현할 수 있습니다.

def train(
    channel_input_dirs, hyperparameters, output_data_dir,
    model_dir, num_gpus, hosts, current_host):
    pass

def save(model):
    pass

Amazon SageMaker 인프라의 ml.p2.xlarge 인스턴스 4개에 배포된 학습 작업을 생성하려고 합니다. 로컬에 필요한 모든 데이터를 이미 다운로드했습니다.

import sagemaker
from sagemaker.mxnet import MXNet
m = MXNet("cifar10.py", role=role, 
          train_instance_count=4, train_instance_type="ml.p2.xlarge",
          hyperparameters={'batch_size': 128, 'epochs': 50, 
                           'learning_rate': 0.1, 'momentum': 0.9})

모델 학습 작업을 만들었으므로 이제 다음을 호출하여 데이터를 제공할 수 있습니다. m.fit("s3://randall-likes-sagemaker/data/gluon-cifar10").

작업 콘솔로 이동하면 작업이 실행 중임을 볼 수 있습니다.

호스팅 및 실시간 추론

모델 학습이 완료되었으므로 이제 예측 생성을 시작할 수 있습니다. 위와 동일한 코드를 사용하여 엔드포인트를 만들고 실행하겠습니다.


predictor = m.deploy(initial_instance_count=1, instance_type='ml.c4.xlarge')

그런 다음 엔드포인트를 호출하는 것은 실행하는 것만큼 간단합니다. predictor.predict(img_input)!

100줄도 안 되는 코드에 머신 러닝 파이프라인이 완성되었습니다.

이제 Amazon SageMaker의 모델 호스팅 구성 요소를 어떻게 사용할 수 있는지를 보여주는 예제를 한 가지 더 살펴보겠습니다.

사용자 지정 도커 컨테이너 사용

Amazon SageMaker는 학습 알고리즘이나 추론 컨테이너를 직접 쉽게 작성할 수 있는 도커 컨테이너용의 간단한 사양을 정의합니다.

여기에서 설명한 아키텍처를 기반으로 하는 기존 모델이 있으며, 실시간 추론을 위해 이 모델을 호스팅하려고 합니다.

추론을 수행할 간단한 Dockerfile과 flask 앱을 만들었습니다.

모델을 불러와 예측을 생성하는 코드는 각각 다를 것이기 때문에 여기서는 생략했습니다. 기본적으로, 입력 URL에서 이미지를 다운로드하여 이 이미지 데이터를 예측용 MXNet 모델에 전달하는 메서드를 만들었습니다.

from flask import Flask, request, jsonify
import predict
app = Flask(__name__)

@app.route('/ping')
def ping():
    return ("", 200)

@app.route('/invocations', methods=["POST"])
def invoke():
    data = request.get_json(force=True)
    return jsonify(predict.download_and_predict(data['url']))

if __name__ == '__main__':
    app.run(port=8080)
FROM mxnet/python:latest
WORKDIR /app
COPY *.py /app/
COPY models /app/models
RUN pip install -U numpy flask scikit-image
ENTRYPOINT ["python", "app.py"]
EXPOSE 8080

이 이미지를 ECR에 넣은 후 Amazon SageMaker의 모델 콘솔로 이동하여 새 모델을 만듭니다.

새 모델을 만든 후 엔드포인트도 할당하겠습니다.

이제 AWS Lambda 또는 다른 애플리케이션에서 직접 엔드포인트를 호출할 수 있습니다. 트위터 계정을 설정하여 이 모델을 공개하고 있습니다. 이 모델이 위치를 추정할 수 있는지 보려면 @WhereML에 사진을 트윗해 보십시오.

import boto3
import json
sagemaker = boto3.client('sagemaker-runtime')
data = {'url': 'https://pbs.twimg.com/media/DPwe4kMUMAAWCd_.jpg'}
result = sagemaker.invoke_endpoint(
    EndpointName='predict',
	Body=json.dumps(data)
)

사용 요금

AWS 프리 티어를 사용하는 고객은 Amazon SageMaker를 무료로 시작할 수 있습니다. 첫 두 달 동안은 매달 250시간의 t2.medium 노트북 사용량, 학습을 위한 50시간의 m4.xlarge 사용량, 호스팅을 위한 125시간의 m4.xlarge 사용량이 제공됩니다. 프리 티어 후에는 리전별로 요금이 다르지만 초 단위 인스턴스 사용량, GB 기준 스토리지 사용량, GB 기준 데이터 전송량(서비스 송수신)으로 청구됩니다.

올해 re:Invent를 위한 블로그 게시물을 작성하기 전에는 최고를 선택하지 말라고 Jeff가 그러더군요. 맞는 말이었습니다. 정말 대단한 몇 가지 출시 중에서도 Amazon SageMaker는 제게 있어 re:Invent 2017의 최고 서비스입니다. 우리 고객들이 이렇게 놀라운 도구를 사용하여 어떤 것을 수행해 낼 수 있을지 정말 기대됩니다.

Randall;

이 글은 AWS re:Invent 2017의 신규 서비스로서 Amazon SageMaker – Accelerating Machine Learning의 한국어 번역입니다.

Amazon EC2 업데이트 – 손 쉬운 스팟 용량 접근 및 가격 변경, 인스턴스 최대 절전 기능 등

EC2 스팟 인스턴스를 통해 AWS 클라우드에서 컴퓨팅 파워를 아낄 수 있습니다. 고객들은 스팟 인스턴스 집합을 사용하여 CI/CD 환경 및 트래픽 생성기, 웹 서버 및 마이크로서비스 호스팅, 영화 렌더링을 구동하고, 많은 유형의 분석 작업을 실행합니다. 그리고 이 모든 것을 온디맨드 인스턴스와 비교하여 크게 절감된 가격으로 실행합니다.

간소화된 접근 방법
오늘은 새롭게 간소화된 스팟 인스턴스 액세스 모델을 소개하겠습니다. 다음을 통해 인스턴스를 시작할 때 스팟 용량을 사용하고 싶어하는 마음이 있을 것입니다. RunInstances 함수, run-instances 명령 또는 AWS 관리 콘솔을 통해 용량을 사용할 수 있는 동안 이행될 요청을 제출하고 싶을 것입니다. 별도의 수고 없이 인스턴스 유형에 대해 온디맨드 가격의 최대 90%를 절감한다면 동일한 예산으로 전체적인 애플리케이션 처리량을 최대 10배 늘릴 수 있는 셈입니다. 이렇게 시작한 인스턴스는 직접 종료하거나 EC2가 이를 온디맨드 사용으로 회수할 때까지 계속해서 실행될 것입니다. 이럴 경우 인스턴스가 일반적으로 2분의 경고가 주어진 다음 회수되기에 애플리케이션 내결함성에 있어 매우 적절합니다.

스팟 시장, 입찰 및 독립 실행형 비동기식 API에 대한 이해가 필요한 이전 모델과는 달리 새로운 모델은 동기식이고 온디맨드만큼 사용하기 쉽습니다. 코드와 스크립트가 인스턴스 ID를 즉시 받고, 요청이 처리 및 수락되었는지 여부를 재확인할 필요가 없습니다.

우리는 이를 최대한 명확하고 간단하게 만들었기 때문에 스팟 용량을 요청하고 사용할 많은 현재 스크립트 및 애플리케이션을 수정하기 쉬울 것으로 기대합니다. 스팟 인스턴스 예산에 대한 추가적인 통제를 행사하고자 한다면 용량 요청을 할 때 최고 가격을 지정하는 옵션이 있습니다. 스팟 용량을 사용하여 Amazon EMR, Amazon ECS 또는 AWS Batch 클러스터를 구동하거나 AWS CloudFormation 템플릿 또는 Auto Scaling 그룹을 통해 스팟 인스턴스를 시작하는 경우 어떠한 변화 없이 이 새로운 모델의 이점을 누릴 수 있습니다.

애플리케이션이 RequestSpotInstances 또는 RequestSpotFleet 를 중심으로 빌드되는 경우 어떠한 변화 없이 계속해서 작동합니다. 하지만 이제 다음 파라미터가 포함되지 않는 요청을 만들 수 있는 옵션이 있습니다. SpotPrice 파라미터입니다.

손쉬운 스팟 가격 변경
오늘 출시의 일환으로 스팟 가격의 변경 방식을 바꾸어 가격이 공급 및 수요의 장기적 추세를 기반으로 점진적으로 변하는 모델로 이동합니다. 앞서 언급한 대로 계속해서 온디맨드 가격의 평균 70~90%를 절감하고, 인스턴스가 실행 중인 기간 동안 적용되는 스팟 가격을 지불하면 됩니다. 스팟 집합 기능을 중심으로 빌드된 애플리케이션은 집합을 생성할 때 지정한 구성을 기반으로 하는 가장 비용 효율적인 풀 전체의 스팟 인스턴스 배치를 자동적으로 다양화합니다.

스팟 실행
명령줄에서 스팟 인스턴스를 시작하려면 스팟 시장을 지정하면 됩니다.

$ aws ec2 run-instances –-market Spot --image-id ami-1a2b3c4d --count 1 --instance-type c3.large 

인스턴스 최대 절전
많은 인 메모리 상태를 유지하는 워크로드를 실행한다면 이 기능이 마음에 드실 것입니다!

인스턴스가 회수될 때에도 인 메모리 상태를 저장하도록 조정하여 용량을 다시 사용할 수 있을 때 인스턴스와 인스턴스에 있는 애플리케이션이 중단된 지점에서 다시 시작하도록 할 수 있습니다. 마치 노트북을 닫았다가 다시 열어서 사용하는 것처럼 말이죠. 이 기능은 Amazon Linux, Ubuntu 또는 Windows Server를 실행하는 C3, C4, 그리고 특정 크기의 R3, R4 및 M4 인스턴스에서 작동하며, EC2 최대 절전 에이전트의 지원을 받습니다.

인 메모리 상태는 인스턴스 시작 시 별도로 확보된 공간을 사용하여 인스턴스의 루트 EBS 볼륨에 기록됩니다. 프라이빗 IP 주소와 탄력적 IP 주소 또한 중지/시작 주기에 걸쳐 유지됩니다.

Jeff;

이 글은 AWS re:Invent 2017 신규 서비스 소식으로 Amazon EC2 Update – Streamlined Access to Spot Capacity, Smooth Price Changes, Instance Hibernation의 한국어 번역입니다.

H1 인스턴스 – 빅 데이터 애플리케이션을 위한 빠른 고밀도 스토리지 정식 출시

AWS의 규모와 다양한 고객층 덕분에 우리에게는 많은 다양한 워크로드를 위해 특별히 설계된 EC2 인스턴스 유형을 만들 기회가 생겼습니다. 예를 들어 많은 대중적인 빅 데이터 사용 사례는 몇 테라바이트에 이르는 데이터에 대한 고속의 순차적 액세스에 의존합니다. 고객들은 매우 큰 MapReduce 클러스터를 빌드 및 실행하고, 분산된 파일 시스템을 호스팅하고, Apache Kafka를 사용하여 볼륨이 방대한 로그 파일을 처리하는 등의 작업을 원합니다.

새로운 H1 인스턴스
새로운 H1 인스턴스는 특히 이러한 사용 사례를 위해 설계되었습니다. 기존 D2(고밀도 스토리지) 인스턴스와 비교해 H1 인스턴스는 로컬 마그네틱 스토리지에 더 많은 vCPU와 더 많은 테라바이트당 메모리를 제공하고, 네트워크 대역폭 또한 증가하여 최적의 균형을 갖춘 리소스 조합을 통해 더욱 복잡한 문제를 해결할 수 있습니다.

인스턴스는 기본 클럭 주파수 2.3GHz에서 실행되는 인텔 Xeon E5-2686 v4 Broadwell 프로세서를 기반으로 하고, 4개의 인스턴스 크기로 구성됩니다(모두 VPC 전용 및 HVM 전용).

인스턴스 이름 vCPU
RAM
로컬 스토리지 네트워크 대역폭
h1.2xlarge 8 32GiB 2TB 최대 10Gbps
h1.4xlarge 16 64GiB 4TB 최대 10Gbps
h1.8xlarge 32 128GiB 8TB 10Gbps
h1.16xlarge 64 256GiB 16TB 25Gbps

크기가 가장 큰 2개는 올 코어 Turbo(2.7GHz) 및 싱글 코어 Turbo(3.0GHz)를 통해 인텔 Turbo 및 CPU 성능 관리를 지원합니다.

로컬 스토리지가 최적화되어 순차 I/O에 대한 높은 처리량을 제공합니다. 따라서 2메가바이크의 블록 크기를 사용한다면 최대 초당 4.5기가바이트의 전송을 기대할 수 있습니다. 스토리지는 256비트 XTS-AES와 1회용 키를 사용하여 유휴 상태에서 암호화됩니다.

향상된 네트워킹을 사용하여 인스턴스에서 대량의 데이터 이동이 지원되어 배치 그룹 내에서 최대 25Gbps의 네트워크 대역폭을 확보할 수 있습니다.

정식 출시
H1 인스턴스는 현재 미국 동부(버지니아 북부), 미국 서부(오레곤), 미국 동부(오하이오)EU(아일랜드) 리전에서 사용 가능합니다. 온디맨드 또는 스팟 형식으로 시작할 수 있습니다. 전용 호스트, 전용 인스턴스 및 예약 인스턴스(1년 및 3년) 또한 사용 가능합니다.

Jeff;

이 글은  AWS re:Invent 2017 신규 서비스 출시 소식으로 H1 Instances – Fast, Dense Storage for Big Data Applications의 한국어 번역입니다.

M5 – 차세대 범용 EC2 인스턴스 정식 출시

저는 항상 신규 EC2 사용자들에게 다른 인스턴스 유형을 살펴보기 전에 우리의 범용 인스턴스로 시작하여 스트레스 테스트를 몇 가지 실행하고, 애플리케이션의 컴퓨팅, 메모리 및 네트워킹 프로필이 정상적인지 확인할 것을 조언합니다. 컴퓨팅, 메모리 및 스토리지에 최적화된 인스턴스의 선택권이 폭넓은 가운데 우리 고객에게는 요구 사항에 가장 적합한 인스턴스 유형을 선택할 많은 옵션과 유연성이 있습니다.

EC2 인스턴스 내역 게시물에서 볼 수 있듯 범용(M) 인스턴스의 시작은 우리가 m1.small을 출시한 2006년으로 거슬러 올라갑니다. 그리고 M2(2009년), M3(2012년) 및 M4(2015년) 인스턴스를 출시하면서 제품군을 계속해서 진화시켰습니다. 우리의 고객들은 범용 인스턴스를 사용하여 웹 및 앱 서버를 실행하고, 엔터프라이즈 애플리케이션을 호스팅하고, 온라인 게임을 지원하며, 캐시 집합을 빌드합니다.

새로운 M5 인스턴스
오늘은 새로운 M5 인스턴스 출시를 통해 한 걸음 더 전진합니다. 이러한 인스턴스를 통해 우리의 지속적인 혁신에 대한 노력과 이전 인스턴스에 비해 더 나아진 가격/성능을 누릴 수 있습니다. 2.5GHz로 실행되는 맞춤형 인텔® Xeon® Platinum 8175M 시리즈 프로세서를 기반으로 하는 M5 인스턴스는 고도로 까다로운 워크로드를 위해 설계된 제품으로 코어당 기준으로 M4 인스턴스 대비 14% 더 나아진 가격/성능을 제공합니다. AVX-512 명령을 사용하는 애플리케이션은 FLOPS가 최대 2배에 달합니다. 또한 하이엔드에 새 크기를 추가하여 더 많은 옵션을 제공합니다.

M5 인스턴스는 다음과 같습니다(모두 VPC 전용, HVM 전용 및 EBS 최적).

인스턴스 이름 vCPU
RAM
네트워크 대역폭 EBS 최적 대역폭
m5.large 2 8GiB 최대 10Gbps 최대 2,120Mbps
m5.xlarge 4 16GiB 최대 10Gbps 최대 2,120Mbps
m5.2xlarge 8 32GiB 최대 10Gbps 최대 2,120Mbps
m5.4xlarge 16 64GiB 최대 10Gbps 2,120Mbps
m5.12xlarge 48 192GiB 10Gbps 5,000Mbps
m5.24xlarge 96 384GiB 25Gbps 10000Mbps

라인업에서 가장 높은 m5.24xlarge는 vCPU 수와 메모리에 있어 X1 인스턴스 다음으로, 워크로드를 확장 및 통합할 수 있는 더 많은 공간을 제공합니다. 향상된 네트워킹을 지원하는 인스턴스이며, 배치 그룹 내에서 사용할 때 최대 25Gbps를 제공합니다.

EBS에 대한 전용, EBS 최적 대역폭에 추가로 NVMe의 사용을 통해 EBS 스토리지에 대한 액세스가 향상됩니다(이전 AMI를 사용하는 경우 적절한 드라이버를 설치해야 합니다). 더 많은 대역폭과 NVMe의 조합을 통해 M5 인스턴스가 소화할 수 있는 데이터의 양이 증가합니다.

정식 출시
현재 미국 동부(버지니아 북부), 미국 서부(오레곤)EU(아일랜드) 리전에서 온디맨드 및 스팟 형식(예약 인스턴스 또한 사용 가능)으로 M5 인스턴스를 시작할 수 있으며, 리전 추가 작업이 진행 중입니다.

간단한 참고 사항: 현재 NVMe 드라이버가 고성능 순차 워크로드에 최적화되지 않은 경우 M5 인스턴스를 sc1 또는 st1 볼륨과 결합하여 사용하는 것을 권장하지 않습니다. 우리는 이 문제를 주시하고 있으며, 이러한 중요 사용 사례를 위한 드라이버 최적화에 노력을 기울이고 있습니다.

Jeff;

이 글은 re:Invent 2017의 신규 서비스 출시 소식으로 M5 – The Next Generation of General-Purpose EC2 Instances의 한국어 번역입니다.

Amazon MQ – ActiveMQ용 관리형 메시지 브로커 서비스

메시징은 분산 애플리케이션의 일부분을 차지하면서 복원성을 더하고 확장성이 뛰어난 아키텍처의 구현을 가능케 합니다. 예를 들어 올해 초, Amazon Simple Queue Service(SQS)Amazon Simple Notification Service(SNS)는 프라임 데이의 고객 주문 처리를 지원하면서 도합 400억 개의 메시지를 초당 1,000만 개의 속도로 처리하였고, 고객에게는 어떠한 문제도 표시되지 않았습니다.

SQS와 SNS는 클라우드상에서 빌드된 애플리케이션에 대해 광범위하게 사용되었습니다. 하지만 많은 대형 고객들이 이미 오픈 소스 또는 상용 라이선스 메시지 브로커를 사용하고 있습니다. 고객의 애플리케이션은 미션 크리티컬이며, 이를 지원하는 메시징 또한 마찬가지입니다. 우리의 고객들은 메시징 인프라의 설치 및 지속적인 유지 관리를 “고통스러운 일”이라 설명하며, 이를 위해 인력 기준으로 주당 10시간을 사용한다고 보고합니다.

새로운 Amazon MQ
이제 우리는 Amazon MQ를 출시합니다. 이는 클릭 세 번으로 몇 분 만에 시작할 수 있는 Apache ActiveMQ용 관리형 메시지 브로커 서비스입니다. 아실 수도 있겠지만 ActiveMQ는 빠르고 기능이 다양하여 인기가 많은 오픈 소스 메시지 브로커입니다. 대기열 및 주제, 지속적 및 비지속적 구독, 푸시 기반 및 폴링 기반 메시징, 그리고 필터링을 제공합니다.

관리형 서비스로서 Amazon MQ는 ActiveMQ의 관리 및 유지 관리를 처리합니다. 여기에는 브로커 프로비저닝, 패치 적용, 고가용성을 위한 장애 탐지 및 복구, 그리고 메시지 지속성에 대한 책임이 포함됩니다. Amazon MQ를 사용하면 ActiveMQ 콘솔과 JMS, NMS, AMQP, STOMP, MQTT 및 WebSocket 등 업계 표준 메시징 API 및 프로토콜에 직접 액세스할 수 있습니다. 이를 통해 코드 재작성 없이도 이러한 표준을 사용하는 모든 메시지 브로커로부터 Amazon MQ로 이동할 수 있으며, 이때 지원되는 애플리케이션도 함께 이동합니다.

개발 및 테스팅용 단일 인스턴스 Amazon MQ 브로커, 또는 빠른 자동 장애 조치를 포함하여 AZ를 확장하는 활성/대기 페어를 생성할 수 있습니다. 어느 쪽이든 AZ에 걸친 데이터 복제와 브로커 인스턴스 및 메시지 스토리지를 위한 종량 과금제 모델을 얻습니다.

Amazon MQ는 AWS 제품군의 완성된 부분으로, 서비스 API 사용을 위한 인증 및 권한 부여용 AWS Identity and Access Management(IAM)의 사용을 포함합니다. Amazon CloudWatch 지표를 사용하여 대기열 깊이와 같은 지표를 지속적으로 확인하고 필요한 경우 소비자 집합의 Auto Scaling을 시작할 수 있습니다.

Amazon MQ 브로커 시작
Amazon MQ 콘솔을 열고, 원하는 AWS 리전을 선택하고, 브로커 이름을 입력하고 [Next step]을 클릭하는 것으로 시작합니다.

그런 다음 인스턴스 유형을 선택합니다. 여기서는 대기를 생성하겠습니다. 그리고 [Create broker]를 선택합니다([Advanced settings] 섹션에서 VPC를 선택하고 기타 설정을 세부 조정할 수도 있습니다).

5~10분 정도면 제 브로커가 생성되어 사용할 준비가 끝납니다.

브로커 액세스에 사용할 URL과 엔드포인트를 클릭 한 번으로 사용할 수 있습니다.

제공된 링크에서 ActiveMQ 웹 콘솔에 액세스할 수 있습니다.

브로커가 인스턴스, 주제 및 대기열 지표를 CloudWatch에 게시합니다. 이것이 인스턴스 지표입니다.

지금 이용 가능
Amazon MQ는 지금부터 미국 동부(버지니아 북부), 미국 동부(오하이오), 미국 서부(오레곤), EU(아일랜드), EU(프랑크푸르트)아시아 태평양(시드니) 리전에서 사용 가능합니다.

AWS 프리 티어를 통해 1년 동안 매달 단일 AZ 마이크로 인스턴스를 최대 750시간 사용하고, 최대 1기가바이트씩 저장할 수 있습니다. 이후에는 인스턴스 시간과 메시지 스토리지에 따라 결제되고, AWS 외부에서 브로커에 액세스한 경우 인터넷 데이터 전송 요금이 추가됩니다.

Jeff;