Category: Events*


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의 한국어 번역입니다.

Amazon AppSync 출시 – 실시간 및 오프라인 기능을 갖춘 데이터 기반 앱 개발 서비스

요즘과 같은 시대에는 우리의 삶을 더욱 편안하게 만들어주는 모바일 디바이스와 애플리케이션 없이 산다는 게 불가능에 가깝습니다. 점점 휴대폰에 의존하고, 모바일 애플리케이션 시장은 수백만 개의 앱이 나올 정도의 규모로 급성장했습니다. 모바일 개발자에게 이러한 현상은 앱 사용자가 원하는 품질과 실시간 경험을 제공하는 애플리케이션을 빌드해야 함을 의미합니다. 따라서 다중 사용자 데이터 동기화, 오프라인 네트워크 지원 및 데이터 검색과 같은 기능을 포함하여 모바일 애플리케이션을 개발하는 것은 기본이 되었습니다.

최근에 InfoQ, DZone 및 모바일 개발 블로그인 AlleviateTech에 올라온 모바일 개발 트렌드에 관한 글들을 읽어보았는데, 이들에 따르면 앞서 언급한 기능을 제공하는 데 있어 핵심 요소 중 하나가 클라우드 기반 모바일 애플리케이션이라는 것입니다.  모바일 데이터 동기화 및 데이터 스토리지와 관련이 있는 만큼 이는 정말로 사실인 듯합니다.

그렇기 때문에 클라우드상의 데이터 집약적 서비스를 기반으로 하는 혁신적인 모바일 애플리케이션 빌드를 위한 새로운 서비스를 소개하기에 최적의 타이밍이라고 생각합니다. 바로 AWS AppSync입니다.

AWS AppSync는 실시간 데이터 쿼리, 동기화, 통신 및 오프라인 프로그래밍 기능을 위한 종합 관리형 서버리스 GraphQL 서비스입니다. 익숙하지 않은 분들을 위해 개방형 GraphQL 사양에 관한 몇 가지 정보를 간략하게 공유하고자 합니다. GraphQL은 실시간 데이터 검색과 동적 쿼리 실행을 가능케 하는 응답형 데이터 쿼리 언어이자 데이터 원본 쿼리용 서버 측 런타임입니다. GraphQL을 사용하여, 클라이언트 애플리케이션을 빌드할 때 사용할 응답형 API를 빌드할 수 있습니다. GraphQL은 애플리케이션 계층에서 작동하여 스키마 정의를 위한 유형 시스템을 제공합니다.

이러한 스키마는 작업이 데이터에서 어떻게 수행되고 데이터가 검색 시 어떻게 구성되는지를 정의하는 사양 역할을 합니다. 추가로 GraphQL에는 선언적 코딩 모델이 있는데, React, React Native, iOS 및 Android를 포함한 여러 클라이언트 라이브러리와 프레임워크가 이를 지원합니다.

이제 GraphQL 개방형 표준 쿼리 언어의 기능은 다음을 통한 풍부한 관리형 서비스에서 확보할 수 있습니다. AWS AppSync를 통해 개발자는 여러 데이터 원본 전체의 데이터 검색 및 조작을 손쉽게 간소화하여 빠르게 프로토타입을 만들고, 강력한 협업 다중 사용자 애플리케이션을 개발 및 생성할 수 있습니다. AppSync는 디바이스 연결 시 데이터 업데이트를 유지합니다. 그러면서도 개발자가 연결이 가능할 때 데이터를 로컬로 캐싱하고 로컬 데이터를 동기화함으로써 오프라인에서 작동하는 솔루션을 만들 수 있도록 합니다.

AWS AppSync의 핵심 개념 몇 가지와 이 서비스가 어떻게 작동하는지 살펴보겠습니다.

AppSync 개념

  • AWS AppSync 클라이언트: 작업을 정의하고, 요청의 권한 부여 세부 정보를 래핑하고, 오프라인 비즈니스 로직를 관리하는 서비스 클라이언트
  • 데이터 원본: 데이터 스토리지 시스템 또는 데이터 저장 트리거
  • 자격 증명: GraphQL 프록시에 대한 요청과 함께 제공되는 권한을 지닌 자격 증명 세트와 식별 컨텍스트
  • GraphQL 프록시: 요청 처리 및 매핑, 충돌 해결 처리 및 세분화된 액세스 제어 관리를 위한 GraphQL 엔진 구성 요소
  • 작업: AppSync에서 지원되는 세 가지 GraphQL 작업 중 하나
    • 쿼리: 데이터에 대한 읽기 전용 가져오기 호출
    • 변형: 가져오기 이후 발생한 데이터 쓰기
    • 구독: 이벤트에 대응하여 데이터를 수신하는 장시간 연결
  • 조치: GraphQL 구독으로부터 연결된 구독자로 보내는 알림.
  • 리졸버: 요청 및 응답 매핑 템플릿을 사용하여 데이터 원본에 대한 페이로드를 변환 및 실행하는 기능

사용 방법

스키마가 생성되어 원하는 GraphQL API의 유형 및 기능을 정의하고 리졸버 기능과 연결됩니다.  스키마는 기존 데이터 원본을 미러링하여 생성될 수 있습니다. 또는 AWS AppSync가 스키마 정의를 기반으로 자동적으로 테이블을 생성할 수 있습니다. 개발자는 또한 백엔드 데이터 원본에 관한 지식을 보유하지 않고도 GraphQL의 데이터 검색 기능을 사용할 수 있습니다. 스키마 정의가 수립된 후, AWS AppSync 클라이언트는 쿼리 작업과 같은 작업 요청과 함께 구성될 수 있습니다. 클라이언트는 식별 컨텍스트 및 자격 증명과 함께 작업 요청을 GraphQL 프록시에 제출합니다. GraphQL 프록시가 이 요청을 리졸버로 전달하면, 리졸버가 Amazon DynamaoDB 테이블, AWS Lambda 함수 또는 Amazon Elasticsearch를 사용한 검색 기능과 같은 사전 정의된 AWS 데이터 서비스에 대한 요청 페이로드를 매핑하고 실행합니다. 리졸버는 단일 네트워크 내에서 하나 또는 전체 서비스에 대한 호출을 실행하여 CPU 주기 및 대역폭 수요를 최소화하고, 클라이언트에게 응답을 반환합니다. 추가로 클라이언트 애플리케이션은 온디맨드 코드의 데이터 요구 사항을 변경할 수 있고, AppSync GraphQL API는 그에 따라 동적으로 데이터에 대한 요청을 매핑하여 프로토타입 생성과 더욱 빠른 개발이 가능하도록 합니다.

서비스를 간단하게 살펴보기 위해 Amazon AppSync 콘솔로 이동하겠습니다. [Create API] 버튼을 클릭하여 시작하겠습니다.

[Create new API] 화면이 열리면 새 API에 TarasTestApp이라는 이름을 지정하겠습니다. 그리고 지금은 새 서비스를 살펴보는 것이기 때문에 [Sample schema] 옵션을 선택하겠습니다.  화면에 표시된 정보 대화 상자에서 샘플 스키마를 사용하여 AWS AppSync가 자동적으로 DynamoDB 테이블과 IAM 역할을 생성할 것임을 알려줍니다. 또한 저를 대신해서 TarasTestApp API 또한 배포할 것입니다.  콘솔에서 제공된 샘플 스키마를 검토하고 나면 [Create] 버튼을 클릭하여 테스트 API를 생성하겠습니다.

TaraTestApp API가 생성되고 저를 대신하여 프로비저닝된 AWS 리소스와 연결된 후에는 스키마, 데이터 원본 또는 리졸버에 대한 제 데이터 원본 연결을 업데이트할 수 있습니다. 또한 GitHub에서 샘플 리포지토리를 복제하고 그에 따른 GraphQL 스키마를 다운로드함으로써 제 GraphQL API를 iOS, Android, Web 또는 React Native 애플리케이션에 통합할 수 있습니다.  이러한 애플리케이션 샘플은 시작하는 데 있어서 큰 도움이 되고, 오프라인 시나리오에서 기능하도록 사전 구성되어 있습니다.

콘솔의 메뉴 옵션에서 [Schema]를 선택한다면 TarasTestApp GraphQL API 스키마를 업데이트하고 볼 수 있습니다.


추가로 콘솔의 메뉴 옵션에서 [Data Sources]를 선택한다면 존재하는 데이터 원본을 볼 수 있습니다.  이 화면 안에서 저는 원하는 대로 데이터 원본을 업데이트, 삭제 또는 추가할 수 있습니다.

다음으로 메뉴 옵션에서 [Query]를 선택하면 쿼리를 쓰고 테스팅하는 콘솔 도구로 이동합니다. 지금은 샘플 스키마를 선택했고, AWS AppSync 서비스가 저를 위해 대부분의 복잡한 작업을 처리했기 때문에 새로운 GraphQL API에 대한 쿼리를 시도해 보겠습니다.

변형을 사용하여 제 스키마의 이벤트 유형에 대한 데이터를 추가하겠습니다. 이것은 변형이고, 우선 데이터를 쓴 다음 데이터를 읽기 때문에 저는 쿼리가 이름과 위치에 대한 값을 반환하길 원합니다.

스키마의 이벤트 유형에 대해 생성된 DynamoDB 테이블로 이동하면 테이블에 성공적으로 쓰여진 제 쿼리로부터의 값을 볼 수 있습니다. 데이터 원본에서 GraphQL API 스키마를 기반으로 데이터를 쓰고 검색하는 것은 굉장히 간단한 작업이었습니다.


요약

AWS AppSync미리 보기로 사용 가능하며, iOS, Android 및 JavaScript 애플리케이션 개발을 지원합니다.   AppSync 제품 페이지에서 서비스에 대한 자세한 내용을 검토하거나 서비스 관련 AWS 설명서를 읽어보면서 자세히 알아보십시오.

Tara;

이 글은 AWS re:Invent 2017 신규 서비스 소식으로 Introducing AWS AppSync – Build data-driven apps with real-time and off-line capabilities의 한국어 번역입니다.

Alexa for Business 서비스 출시 – 업무용 음성 비서 서비스 지원

Alexa는 미국을 비롯한 전 세계 가정의 일상 생활에 스며들고 있습니다. Amazon Echo 디바이스에 활성화된 Alexa Skills를 사용하여 집에 있는 전등을 켜고, Echo Show에서 비디오를 보면서 누가 현관 벨을 누르는지 확인하고, 매주 해야 할 일 목록을 추적하고, 음악을 재생하는 등의 일을 할 수 있습니다.

가족들도 Echo 디바이스에서 Alexa 스킬을 활성화하여 이제는 없이는 살아갈 수 없을 것만 같은 모든 활동을 합니다.  주부들은 Alexa 스킬을 사용하여 베이킹 레시피를 저장하고, 최신 건강 및 미식 정보가 있는 스킬을 알아보기도 합니다. 그런데, 당연히 회사에 가면 무언가 빠진 것 같다는 느낌이 듭니다. 예를 들어 사무실에 가서 Alexa에게 뉴스 브리핑을 읽어달라고 요청하고 싶다면 어떻게 해야 할까요?

인공 지능형 업무 비서로서 Alexa를 보유하고 싶은 여러분들에게 좋은 소식이 있습니다. 기업 규모에 관계없이 직장에 Alexa를 도입할 수 있도록 비즈니스와 조직을 지원하는 새로운 서비스 Alexa for Business를 발표합니다. 이를 통해 기업 업무 환경에 Alexa를 도입하여 생산성을 높일 뿐만 아니라 조직이 규모에 관계없이 Alexa 디바이스를 설정 및 관리하고, 프라이빗 스킬을 지원하고, 사용자를 등록하도록 하는 도구와 리소스를 제공합니다.

Alexa for Business 소개

Alexa for Business는 여러분이 알고 사랑하는 Alexa를 기업 환경에 도입하여 직장인들이 개인 디바이스 및 공유 Echo 디바이스를 통해 생산성과 조직적인 정리를 향상 시킬 수 있습니다. 직장에서 누구나 사용할 수 있도록 공유 디바이스를 공동 영역에 배치할 수 있고, 직장인들은 개인 디바이스를 사용하여 직장과 집에서 연결할 수 있습니다.

최종 사용자는 공유 디바이스 또는 개인 디바이스를 사용할 수 있습니다. 각각을 통해 수행할 수 있는 작업은 다음과 같습니다.

공유 디바이스

  1. 회의실에서 회의 참여: 이렇게 말만 하면 됩니다. “Alexa, 회의 시작해.” Alexa는 화상 회의 장비를 켜고, 컨퍼런스 콜을 호출하고, 회의를 시작합니다.
  2. 사무실 지원: 사용자 지정 스킬에 액세스하여 사무실 주변의 방향을 안내하고, 열려 있는 회의실을 찾고, 건물 장비 문제를 보고하고, 새로운 물품을 주문하는 데 도움을 줍니다.

개인 디바이스

  1. 통화 및 메시징 지원: Alexa는 전화 통화와 핸즈프리 통화를 돕고, 사용자를 대신해 메시지를 전송할 수 있습니다.
  2. 자동으로 컨퍼런스 콜 호출: Alexa는 가정, 직장, 이동 중에도 음성을 통해 컨퍼런스 콜 번호를 사용하여 어떤 회의든 참석할 수 있습니다.
  3. 지능형 비서: Alexa는 빠르게 달력을 확인하고, 회의 일정을 짜는 데 도움을 주고, 할 일 목록을 관리하고, 알림을 설정할 수 있습니다.
  4. 정보 검색: Alexa는 Salesforce, Concur 또는 Splunk와 같은 유명 비즈니스 애플리케이션에서 정보를 찾는 데 도움을 줄 수 있습니다.

다음은 관리자가 사용할 수 있는 몇 가지 제어 사항입니다.

  1. 공유 Alexa 디바이스 프로비저닝 및 관리:  관리 콘솔을 사용하여 직장 주변에 있는 공유 디바이스를 프로비저닝 및 관리할 수 있습니다. 각 디바이스에 대해 회의실 지정과 같이 위치를 설정할 수 있고, 디바이스에 대한 퍼블릭 및 프라이빗 스킬을 할당할 수 있습니다.
  2. 회의실 설정 구성: “Alexa, 회의 시작해“라는 말과 함께 회의를 시작합니다.  본 서비스를 사용하여 회의실 설정을 구성할 수 있습니다. 따라서 Alexa를 사용하여 회의를 시작하고, 회의실 장비를 제어하거나 회의실의 Amazon Echo 디바이스를 통해 직접 호출할 수도 있습니다.
  3. 사용자 관리: 조직의 사용자들이 각자의 개인 Alexa 계정을 Alexa for Business 계정에 등록하도록 사용자에게 초대를 보낼 수 있습니다. 사용자가 등록을 완료하면 직장이나 집에서 개인 Alexa 계정에 있는 모든 장치를 사용할 수 있도록 하는 사용자 지정 프라이빗 스킬을 활성화할 수 있습니다.
  4. 스킬 관리: 조직에서 만든 퍼블릭 스킬 및 사용자 지정 프라이빗 스킬을 공유 디바이스에 할당하고, 등록된 사용자가 직접 개발한 스킬을 사용할 수 있도록 할 수 있습니다.  스킬 그룹을 생성한 다음 특정 공유 디바이스에 할당할 수 있습니다.
  5. 프라이빗 스킬 빌드 및 Alexa for Business API 사용: Alexa Skills Kit를 자세히 알아보고 고유한 스킬을 빌드해 보십시오.  그런 다음 이러한 스킬을 공유 디바이스와 Alexa for Business 계정에 할당된 사용자들이 사용하도록 할 수 있습니다. 이 모든 것이 퍼블릭 Alexa Skills Store에 게시할 필요 없이 가능합니다.  본 서비스가 제공하는 추가 API를 사용하여 스킬과 자동화 관리 작업에 컨텍스트를 추가할 수 있습니다.

Alexa for Business를 이제 간단히 살펴보겠습니다. 우선 AWS Console에 로그인한 다음 Alexa for Business 서비스로 이동하겠습니다.

서비스에 로그인하고 나면 Alexa for Business 대시 보드가 표시됩니다. 보시다시피 [Rooms], [Shared devices], [Users] 및 [Skills]에 액세스할 수 있고, 회의, 달력 및 사용자 초대를 제어할 수도 있습니다.

우선 제 Alexa 디바이스 설정부터 시작하겠습니다. Alexa for Business가 Device Setup Tool을 제공하여 여러 디바이스를 설정하고, Wi-Fi 네트워크에 연결하고 Alexa for Business 계정에 등록합니다. 개인 Alexa 디바이스 설정 프로세스와는 다릅니다. 이를 통해 한 번에 25대의 디바이스를 프로비저닝할 수 있습니다.

제 디바이스가 프로비저닝되고 나면 이 디바이스를 두고자 하는 위치(예: 회의실 내)에 대한 위치 프로필을 생성할 수 있습니다. 관리 콘솔에서 이 위치를 “공간”이라고 부릅니다. [Room profiles] 메뉴로 이동하여 공간 프로필을 생성할 수 있습니다. 공간 프로필에는 디바이스의 웨이크 워드, 주소, 시간대, 측정 단위 및 아웃바운드 호출 활성화 여부와 같은 공간 내 Alexa 디바이스 관련 일반 설정이 포함됩니다.

다음 단계는 설정한 디바이스의 스킬을 활성화하는 것입니다. Alexa Skills 스토어에서 모든 스킬을 활성화하거나 프라이빗 스킬 기능을 사용하여 직접 빌드한 스킬을 활성화하고 Alexa for Business 계정에서 사용할 수 있도록 할 수 있습니다. 공유 디바이스에 대한 스킬을 활성화하려면 [Skills] 메뉴로 이동하여 스킬을 활성화할 수 있습니다. 스킬을 활성화한 이후 이를 스킬 그룹에 추가하거나 스킬 그룹을 공간에 할당할 수 있습니다.

Alexa for Business에서 제가 정말 마음에 드는 점은 Alexa를 사용하여 컨퍼런스 콜을 호출할 수 있다는 점입니다. 이를 활성화하기 위해 [Conferencing] 메뉴 옵션으로 이동하여 [Add provider]를 선택합니다. Amazon에서는 Amazon Chime을 사용하지만 다양한 공급자 목록에서 선택할 수 있으며, 원하는 경우 자체 공급자를 추가할 수도 있습니다.

이를 설정하고 나면 “Alexa, 회의에 참석해”라고 말하면 됩니다. Alexa가 제 Amazon Chime 회의 ID를 요청하면, Echo 디바이스가 자동적으로 Amazon Chime 회의를 호출합니다.  또한 어떠한 회의든 빠르게 시작할 수 있는 지능적인 방법을 제공합니다. 회의실에 들어갔는데 회의 ID나 컨퍼런스 콜 번호를 찾을 수 없는 상황을 다들 겪어봤을 것입니다.  본 서비스를 통해 회사 일정과 연결할 수 있으며, Alexa가 회의 정보를 파악하고 자동적으로 호출할 수 있으며, 회의 ID 같은 건 필요하지 않습니다. 방법은 다음과 같습니다.

또한, Alexa는 공간의 화상 회의 장비를 제어할 수 있습니다. 이를 위해 해야 할 일은 보유한 장비 스킬을 선택하고, 장비 공급자를 선택하고, 회의실에 이를 활성화하는 것입니다. 이제 Alexa에게 회의 참석을 요청하면 Alexa가 공간의 장비에서 호출하고, 화상 회의 시스템을 켭니다. 사용자가 직접 무언가를 할 필요는 없습니다.

다음으로 등록된 사용자로 전환하겠습니다.

먼저 조직에 대한 사용자 초대를 설정하면 Alexa for Business 계정에 사용자를 초대할 수 있습니다. 사용자가 조직 내에서 Alexa for Business를 사용하게 하려면 관리 콘솔에서 이메일을 통해 사용자 초대를 전송하여 사용자들이 각자의 개인 Alexa 계정을 서비스에 등록하도록 해야 합니다. 선택을 하고 나면 추가 콘텐츠를 포함하도록 사용자 등록 이메일을 사용자 지정할 수 있습니다. 예를 들어, 초대 수락 후 등록 프로세스를 완료하고 나면 활성화될 수 있는 회사의 Alexa 스킬에 관한 정보를 추가할 수 있습니다. 이제 사용자들은 컨퍼런스 콜 자동 호출, Microsoft Exchange 일정 연결, 프라이빗 스킬 사용과 같은 Alexa for Business 기능을 사용하려면 등록을 해야 합니다.

사용자 초대를 사용자 지정했으니, 이제 대시보드의 [Users] 메뉴로 이동하고 이메일 주소를 입력하여 조직에 대한 Alexa for Business를 사용할 사용자를 초대하겠습니다.  이를 통해 조직 참여에 사용할 수 있는 링크가 포함된 이메일을 전송합니다. 사용자들은 개인 Alexa 디바이스가 등록된 Amazon 계정을 사용하여 참여합니다. Alexa for Business 조직에 Jeff Barr를 초대해 보도록 하겠습니다.

Jeff가 제가 만든 Alexa for Business 계정에 등록한 후, 그는 제가 등록된 사용자들에 대해 활성화한 프라이빗 스킬을 발견할 수 있습니다. 또한 본인의 Alexa 스킬에 접속하고, 사무실에 있는 Echo를 포함해 개인 디바이스를 통해 컨퍼런스 콜에 참여할 수 있습니다.

요약

Alexa for Business 콘솔과 서비스 기능을 간략하게 살펴보았습니다.  Alexa for Business 웹 사이트를 보거나 AWS 설명서의 관리 및 API 가이드를 읽어보거나 Alexa for Business 콘솔 내에 있는 시작하기 비디오를 시청하고 더 많은 내용을 알아볼 수 있습니다.

Alexa for Business 웹 사이트를 보거나 Alexa for Business 개요 비디오를 시청하거나 AWS 설명서의 관리 및 API 가이드를 읽어보거나 Alexa for Business 콘솔 내에 있는 시작하기 비디오를 시청하고 더 많은 내용을 알아볼 수 있습니다.

Alexa, 인사하고 블로그 게시물 종료해줘.”

Tara;

이 글은 AWS re:Invent 2017의 신규 서비스 소식으로 Announcing Alexa for Business: Using Amazon Alexa’s Voice Enabled Devices for Workplaces 의 한국어 번역입니다.

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의 한국어 번역입니다.