Category: AWS re:Invent*


T2 무제한(Unlimited) 기능 – 피크에도 고성능 컴퓨팅 활용하기

2014년 여름에 T2 인스턴스에 대해 처음으로 소개하고, 대부분 IT 업무에서 지속적인 컴퓨팅 파워가 크게 요구되지 않고 가끔 더 많은 컴퓨팅이 필요할 때 사용할 수 있는 이제 버스팅 모델을 선보였습니다. T2 인스턴스는 현재 인기가 매우 높아져서 마이크로 서비스, 지연 시간이 짧은 대화형 애플리케이션, 가상 데스크톱, 빌드 및 스테이징 환경, 프로토타입 등을 호스팅하는 데 사용되고 있습니다.

신규 T2 무제한(Unlimited) 기능 출시
오늘 T2에서 제공하는 버스트 모델을 확장하여, 이제 최대한 낮은 비용으로 원하는 기간 동안 높은 CPU 성능을 유지할 수 있는 기능을 추가합니다. 사용하시려면 인스턴스를 시작할 때, 이 기능을 활성화하면 되고, 이미 실행 중인 인스턴스에 대해 이 기능을 활성화할 수도 있습니다. 24시간 동안 평균 CPU 사용률이 기준선보다 낮을 경우, 중간에 급증하는 모든 사용량이 시간당 T2 인스턴스 가격에 포함됩니다. 인스턴스가 장기간에 걸쳐 높은 CPU 사용률로 실행될 경우 소액의 시간당 요금이 청구됩니다. 예를 들어, t2.micro 인스턴스를 평균 15% 사용률(기준선보다 5% 높음)로 24시간 동안 실행할 경우 6센트(vCPU-시간당 5센트 * 1 vCPU * 5% * 24시간)의 추가 요금이 청구됩니다.

EC2 콘솔에서 T2 Unlimited 인스턴스를 시작하려면 T2 인스턴스를 선택한 다음 [T2 Unlimited] 옆에 있는 [Enable]을 클릭합니다.

T2 Standard에서 실행 중인 인스턴스를 T2 Unlimited로 전환하는 방법은 다음과 같습니다.

CPU 크레딧 계산 기준
원래 T2 인스턴스는 실행될 때마다 CPU 크레딧을 누적하였다가 최대 코어 속도로 실행할 때 CPU 크레딧을 사용합니다. 이때 크레딧 공급이 고갈되면 기준 레벨로 속도가 느려집니다. 하지만, T2 Unlimited 인스턴스에서는 하루 분량의 크레딧을 미리 빌려서 추가 버스팅을 수행할 수 있습니다. 이 값은 CloudWatch에 CPUSurplusCreditBalance라는 신규 측정치로 기록합니다. 잔여 크레딧 레벨이 하루 분량으로 증가하면 인스턴스에서는 전체 코어 성능을 계속 제공합니다. vCPU별로 시간당 $0.05(Linux) 또는 $0.096(Windows)의 요금이 청구됩니다. 청구되는 이 초과 크레딧은 새 CPUSurplusCreditsCharged 측정치에 의해 기록합니다. 지정된 시간 내에 초과 크레딧을 다 쓴 경우 한 시간 미만의 버스팅 시간에 대해 밀리초 단위로 요금이 청구됩니다. 따라서, 추가적으로 비용을 절감할 수 있습니다.

나머지 CPUSurplusCreditBalance에 대한 요금은 인스턴스를 종료하거나 T2 Standard로 구성할 때 처리됩니다. 누적된 CPUCreditBalance는 T2 Standard로 전환하는 동안 유지됩니다.

T2 Unlimited 모델은 CloudWatch 측정치를 조회하는 수고를 덜어주기 위해 설계되었지만, 원하는 경우 직접 확인해도 됩니다. 예를 들어, t2.nano의 시간의 흐름에 따른 크레딧에 대해 알아보겠습니다. 먼저 CPU 사용률이 100%로 증가하면 인스턴스에서는 5분마다 5크레딧을 소비합니다(1크레딧은 1 VCPU 분에 해당).

크레딧이 생성과 동시에 소비되고 있으므로 CPU 크레딧 잔고는 0으로 유지됩니다. 이 때, CPUSurplusCreditBalance 측정치에 의해 추적되는 초과 크레딧 잔고가 72까지 증가합니다. 이 초과 크레딧 잔고는 향후 크레딧에서 임차한 크레딧을 나타냅니다.

초과 크레딧 잔고가 72가 되면 더 이상 크레딧을 임차할 수 없으며, 추가 CPU 사용량에 대해서는 시간이 끝날 때 청구되며 이는 CPUSurplusCreditsCharged 측정치에 의해 추적됩니다. 인스턴스에서는 5분마다 5크레딧을 소비하고 0.25크레딧을 획득합니다. 따라서 5분의 버스팅당 4.75 VCPU 분의 순수 요금이 청구됩니다.

원한다면 언제든지 T2 Standard 및 T2 Unlimited 간에 각 인스턴스를 전환할 수 있습니다. CPUSurplusCreditsCharged를 제외한 모든 크레딧 잔고는 유지되며 이월됩니다. T2 Unlimited 인스턴스는 언제든지 버스팅할 수 있으므로 새로 시작된 T2 Standard 인스턴스에 제공되는 30분 크레딧이 제공되지 않습니다. 각 AWS 계정에서 매일 초기 CPU 크레딧을 사용하여 제한된 수의 T2 Standard 인스턴스를 시작할 수 있으므로, T2 Unlimited 인스턴스는 자동 스케일링 그룹과 다수의 인스턴스를 매일 동작하는 시나리오용으로 더 적합합니다.

정식 출시
T2 Unlimited 인스턴스는 현재 미국 동부(버지니아 북부), 미국 동부(오하이오), 미국 서부(캘리포니아 북부), 미국 서부(오리건), 캐나다(중부), 남아메리카(상파울루), 아시아 태평양(싱가포르), 아시아 태평양(시드니), 아시아 태평양(도쿄), 아시아 태평양(뭄바이), 아시아 태평양(서울), EU(프랑크푸르트), EU(아일랜드)EU(런던) 리전에서 시작할 수 있습니다.

Jeff;

이 글은 AWS re:Invent 2017 신규 서비스 소식으로 T2 Unlimited – Going Beyond the Burst with High Performance 의 한국어 번역입니다.

Kubernetes를 위한 Amazon Elastic Container Service 서비스 출시 예고

AWS에서 Kubernetes를 실행하는 AWS 고객이 매우 많으며, Cloud Native Computing Foundation 조사에 따르면 Kubernetes 워크로드의 63%가 AWS에서 실행하고 있습니다. AWS가 Kubernetes를 실행하기 좋은 지점이기는 하지만, 고객이 Kubernetes 클러스터를 관리하기 위해서는 적잖은 수동 구성 및 관리가 필요합니다. Kubernetes 마스터 및 클러스터를 설치하여 운영해야 하며, 클러스터에서 가용성을 높이려면 서로 다른 가용 영역(AZ)에서 Kubernetes 마스터를 3개 이상 실행해야 합니다.

각각의 마스터는 다른 마스터와 통신하고, 정보를 안정적으로 공유하고, 로드 밸런스 조치를 취하고, 장애가 발생하면 다른 마스터에게 장애 조치를 취하도록 구성해야 합니다. 이런 작업 동안에도 마스터 및 작업자 소프트웨어의 업그레이드 및 패치 적용을 관리해야 합니다. 이는 인프라 운영에 관한 상당한 전문 지식과 노력이 필요하며, 이 과정을 쉽게 만들어달라는 고객 요청이 있었습니다.

Amazon Elastic Container Service for Kubernetes(EKS)소개

Kubernetes용 Amazon Elastic Container Service(Amazon EKS)는 Kubernetes 클러스터를 별도 관리할 필요 없이 쉽게 사용할 수 있도록 지원하는 완전 관리형 서비스입니다.

몇 가지 특징적인 기능을 꼽자면, 첫째 Amazon EKS는 오픈 소스 Kubernetes 소프트웨어의 업스트림 버전을 실행하므로 Kubernetes 커뮤니티에서 모든 기존 플러그인과 도구를 사용할 수 있습니다. 온프레미스 데이터 센터에서 실행 중인지 퍼블릭 클라우드에서 실행 중인지에 상관없이, Amazon EKS에서 실행 중인 애플리케이션은 표준 Kubernetes 환경에서 실행 중인 애플리케이션과 완벽하게 호환됩니다.

즉, 코드를 전혀 수정하지 않고 Kubernetes 애플리케이션을 Amazon EKS로 쉽게 마이그레이션할 수 있습니다. 둘째, Amazon EKS는 단일 장애 지점을 방지하기 위해 3개 AZ에 걸쳐 3개의 마스터를 사용해 K8을 자동으로 실행합니다. 이 다중 AZ 아키텍처는 AWS 가용 영역 손실에 대한 복원력을 제공합니다.

셋째, Amazon EKS에서는 비정상 마스터도 자동으로 검색하여 교체하고 마스터에 대한 버전 업그레이드 및 패치를 자동으로 실행합니다. 마지막으로 Amazon EKS는 Elastic Load Balancing 부하 분산, IAM 인증, Amazon VPC 격리, AWS PrivateLink 프라이빗 네트워크 액세스, AWS CloudTrail 로깅 등 수많은 주요 AWS 기능과 통합됩니다.

컨테이너 운영 방법
이제 어떤 식으로 작동하는지 살펴봅시다. Amazon EKS는 Heptio와의 협업을 통해 IAM 인증을 Kubernetes RBAC(Kubernetes의 기본 역할 기반 액세스 제어 시스템)와 통합합니다.

RBAC 역할을 각 IAM 엔터티에 직접 할당하여 Kubernetes 마스터에 대한 액세스 권한을 세분화하여 제어할 수 있습니다. 그러면 kubectl 같은 표준 Kubernetes 도구를 사용하여 Kubernetes 클러스터를 손쉽게 관리할 수 있습니다.

Amazon VPC에서 직접 Kubernetes 마스터에 액세스하려는 경우, AWS PrivateLink를 사용할 수도 있습니다. PrivateLink를 사용하면 Kubernetes 마스터와 Amazon EKS 서비스 엔드포인트는 Amazon VPC에 프라이빗 IP 주소와 함께 탄력적 네트워크 인터페이스로 표시됩니다.

그러면 퍼블릭 IP 주소를 사용하거나 트래픽이 인터넷을 통과하도록 요구하지 않고도 Amazon VPC에서 직접 Kubernetes 마스터와 Amazon EKS 서비스에 액세스할 수 있습니다.

끝으로, AWS에서 각자의 Kubernetes 클러스터에 사용할 수 있는 오픈 소스 CNI 플러그인도 구축했습니다. 따라서 기본적으로 Kubernetes 포드와 함께 Amazon VPC 네트워킹을 사용할 수 있습니다.

Amazon EKS를 사용하면 AWS Management Console에서 몇 번의 클릭만으로 Kubernetes 클러스터를 쉽게 시작할 수 있습니다. Amazon EKS가 업그레이드, 패치 적용 및 가용성 증대 등 나머지 문제를 관리합니다. 현재 Amazon EKS는 미리보기 버전으로 제공됩니다. 여러분의 포럼에서 피드백을 기다리겠습니다.

— Deepak Singh, General Manager of AWS Container Services

이 글은 AWS re:Invent 2017 신규 서비스 소식으로 Amazon Elastic Container Service for Kubernetes 의 한국어 번역입니다.

AWS Fargate 출시 – 서버리스 콘테이너 서비스

컨테이너는 개발자가 애플리케이션을 개발, 패키징 및 배포하는 데 있어 강력한 도구입니다. AWS에서는 고객들이 매주 수십만 개의 활성 ECS 클러스터와 수억 개의 신규 컨테이너를 운영합니다. 2016년 이후로 고객 성장세는 400% 이상에 이릅니다. Amazon ECS와 Kubernetes 같은 컨테이너 오케스트레이션 솔루션이 있어 컨테이너 워크로드의 배포, 관리 및 확장을 손쉽게 하여 민첩성을 개선합니다. 하지만, 이러한 컨테이너 관리 솔루션이 있음에도 기본 인프라의 가용성, 용량 및 유지 관리는 여전히 고객이 책임져야 하는 상황입니다. AWS에서 일부 공통적인 과중한 업무를 줄이면서 여러분이 컨테이너가 제공하는 속도, 민첩성 및 불변성을 최대한 활용하고, 그에 따라 인프라 관리 대신 애플리케이션 빌드에 집중할 수 있도록 하고자 합니다.

AWS Fargate

AWS Fargate는 AWS에서 컨테이너를 손쉽게 배포하는 방법으로 컨테이너를 위한 인스턴스를 관리할 필요 없이 컨테이너 자체만을 배포할 수 있도록 하는 기술입니다. 컨테이너 이미지를 빌드하고, CPU 및 메모리 요구 사항을 지정하고, 네트워킹 및 IAM 정책을 정의하면 됩니다. Fargate가 있으면 애플리케이션의 유연한 구성 옵션과 함께 초 단위로 요금을 지불합니다.

가장 좋은 점은 동일한 ECS가 제공하는 API 및 AWS 통합 기능을 계속 사용할 수 있다는 점입니다. Fargate는 Amazon Virtual Private Cloud, AWS Identity and Access Management(IAM), Amazon CloudWatch 및 로드 밸런서와의 기본 통합을 제공합니다. Fargate 작업(Task)은 AWS VPC 네트워킹 모드를 사용하고 VPC의 탄력적 네트워크 인터페이스(ENI)를 프로비저닝하여 리소스와의 안전한 통신이 가능합니다. AWS 명령줄 인터페이스(CLI)를 통해 Fargate 작업을 시작하는 것은 간단합니다.

ecs run-task --launch-type FARGATE --cluster BlogCluster --task-definition blog --network-configuration "awsvpcConfiguration={subnets=[subnet-b563fcd3]}"

또한 콘솔을 사용하여 작업 정의를 생성하고 Fargate 시작 유형에 따라 작업을 실행하기도 쉽습니다.

몇 가지 작업을 시작하고 나면 클러스터에서 실행 중인 것을 볼 수 있습니다.

ECS 클러스터는 유형이 다릅니다. Fargate 및 EC2에서 실행 중인 작업을 포함할 수 있습니다.

조금 더 자세히 작업을 살펴보면 Fargate가 VPC에서 프로비저닝한 ENI와 작업에서 사용하는 모든 컨테이너를 포함한 일부 유용한 정보를 확인할 수 있습니다. [Logs] 탭을 통해 작업에 대한 CloudWatch Logs에 쉽게 액세스할 수 있습니다.

이제 Fargate의 구성 옵션과 요금 세부 정보를 살펴보겠습니다.

요금

AWS Fargate는 온디맨드 요금 모델을 사용합니다. 애플리케이션에서 초당 소비한 vCPU 및 메모리 리소스 양에 대해 지불하면 됩니다. vCPU 요금은 초당 $0.00084333(시간당 $0.0506)이고, GB당 메모리는 초당 $0.00021167(시간당 $0.0127)입니다. Fargate를 사용하여 vCPU 및 메모리에 대한 50개의 구성 옵션을 통해 광범위한 워크로드를 지원할 수 있습니다. 구성 옵션은 아래와 같습니다.

CPU(vCPU) 메모리 값(GB)
0.25 0.5, 1, 2
0.5 1, 2, 3
1 최소 2GB 및 최대 8GB(1GB 증분)
2 최소 4GB 및 최대 16GB(1GB 증분)
4 최소 8GB 및 최대 30GB(1GB 증분)

알아둘 사항

  • 애플리케이션의 리소스 요구 사항에 가장 부합하도록 Fargate를 구성하고 컨테이너에 필요한 리소스에 대해서만 지불할 수 있습니다. 수십 또는 수천 개의 컨테이너를 몇 초 이내에 시작할 수 있습니다.
  • Fargate는 EC2에서 작업을 실행하는 것과 유사하게 작업을 실행합니다. 작업을 VPC에 추가하고, 로드 밸런서를 구성하며, IAM 역할을 할당할 수 있습니다.

장기 출시 계획

AWS Fargate는 2018년에는 Amazon EKS를 사용하여 Fargate에서의 컨테이너 시작을 지원할 계획이 있습니다. 늘 그렇듯 고객 여러분의 피드백을 기다리겠습니다. Amazon ECS 포럼에 의견을 남겨 여러분의 의견을 들려주세요.

Fargate는 현재 미국 동부(버지니아 북부) 리전에서 사용 가능합니다.

Randall;

이 글은 AWS re:Invent 2017 신규 서비스 소식으로 Introducing AWS Fargate – Run Containers without Managing Infrastructure 의 한국어 번역입니다.

Amazon S3 Select 및 Glacier Select – 원하는 객체 기반 데이터 질의 기능 출시

Amazon S3(Simple Storage Service)는 다양한 기업들이 사용하는 수백만 애플리케이션을 위한 대용량 데이터를 저장하며, 대부분 고객은 안전하고 지속성이 우수하며 경제적인 백업 아카이브 스토리지를 위해 Amazon Glacier를 사용하고 있습니다. S3를 사용하면 원하는 만큼 많은 객체를 저장할 수 있으며, 개별 객체의 크기는 5테라바이트까지 가능합니다. 객체 스토리지의 데이터는 일반적으로 하나의 완전한 개체로 액세스되었습니다. 즉, 5기가바이트 객체를 한 개 요청하면 5기가바이트를 모두 받게 됩니다. 이것은 객체 스토리지의 속성입니다.

오늘 Amazon S3 및 Glacier를 위한 두 가지 새로운 기능을 발표하여 새로운 데이터 분석 패러다임을 제공합니다. 표준 SQL 질의를 사용하여 여기에 저장된 객체에서 필요한 정보만 가져올 수 있는 기능입니다. 이렇게 하면 S3 또는 Glacier의 객체를 액세스하는 모든 애플리케이션 성능이 근본적으로 향상됩니다.

Amazon S3 Select 미리 보기

Amazon S3 Select는 간단한 SQL 식을 사용하여 애플리케이션이 객체에서 일부 데이터만 가져올 수 있도록 하는 서비스입니다. S3 Select를 사용하여 애플리케이션에서 필요한 데이터만 가져옴으로써, 상당한 성능 향상을 이룰 수 있습니다. 대부분의 경우 이러한 성능 향상은 최대 400%에 이릅니다.

대형 소매 기업의 개발자가 한 매장의 주간 판매 데이터를 분석해야 하는데, 매일 200개 매장 모두의 데이터가 새로운 GZIP 압축 CSV로 저장되고 있는 상황을 생각해 보십시오. S3 Select가 없으면 전체 CSV를 다운로드하여 압축을 풀고 처리하여 필요한 데이터를 가져와야 합니다. S3 Select를 사용하면, 전체 객체를 가져오는 대신 해당 매장의 데이터만 반환하는 간단한 SQL 식을 사용할 수 있습니다. 즉, 최소한의 데이터만 처리하면 되며 결과적으로 기반 애플리케이션의 성능이 향상됩니다.

Python 예제를 간단히 살펴보겠습니다.

import boto3
from s3select import ResponseHandler

class PrintingResponseHandler(ResponseHandler):
    def handle_records(self, record_data):
        print(record_data.decode('utf-8'))

handler = PrintingResponseHandler()
s3 = boto3.client('s3')
response = s3.select_object_content(
    Bucket="super-secret-reinvent-stuff",
    Key="stuff.csv",
    SelectRequest={
        'ExpressionType': 'SQL',
     'Expression': 'SELECT s._1 FROM S3Object AS s'',
        'InputSerialization': {
            'CompressionType': 'NONE',
            'CSV': {
                'FileHeaderInfo': 'IGNORE',
                'RecordDelimiter': '\n',
                'FieldDelimiter': ',',
            }
        },
        'OutputSerialization': {
            'CSV': {
                'RecordDelimiter': '\n',
                'FieldDelimiter': ',',
            }
        }
    }
)
handler.handle_response(response['Body'])

이렇게 하기 위해 S3 Select는 이진 유선 프로토콜을 사용하여 객체를 반환합니다. 현재 이를 위해서는 역직렬화를 지원하는 작은 라이브러리를 추가로 사용해야 합니다.

고객들은 S3 Select를 사용하여 모든 종류의 애플리케이션 속도를 향상시킬 수 있을 것으로 기대됩니다. 예를 들어 일부 데이터를 가져오는 이 기능은 AWS Lambda를 사용하여 만든 서버리스 애플리케이션에 특히 유용합니다. 서버리스 MapReduce 참조 아키텍처를, S3 Select를 사용하여 필요한 데이터 가져오도록 수정했을 때, 성능은 2배 향상했고 비용은 80% 감소했습니다.

또한, S3 Select 팀은 쿼리를 변경하지 않고 Amazon EMR에 대한 성능을 즉시 높일 수 있는 Presto 커넥터를 개발했습니다. S3에서 가져온 데이터의 약 99%를 필터링하는 복합 쿼리를 실행하여 이 커넥터를 테스트했습니다. S3 Select를 사용하지 않을 경우 Presto는 S3의 전체 객체를 스캔하여 필터링해야 했지만, S3 Select를 사용하면 S3 Select를 통해 쿼리에 필요한 데이터만 가져왔습니다.

[hadoop@ip-172-31-19-123 ~]$ time presto-cli --catalog hive --schema default --session hive.s3_optimized_select_enabled=false -f query.sql
"31.965496","127178","5976","70.89902","130147","6996","37.17715","138092","8678","135.49536","103926","11446","82.35177","116816","8484","67.308304","135811","10104"
 
real  0m35.910s
user  0m2.320s
sys   0m0.124s
[hadoop@ip-172-31-19-123 ~]$ time presto-cli --catalog hive --schema default --session hive.s3_optimized_select_enabled=true -f query.sql
"31.965496","127178","5976","70.89902","130147","6996","37.17715","138092","8678","135.49536","103926","11446","82.35177","116816","8484","67.308304","135811","10104"
 
real  0m6.566s
user  0m2.136s
sys   0m0.088s

S3 Select를 사용하지 않은 경우 이 쿼리는 35.9초 걸렸고, S3 Select를 사용했을 때는 6.5초밖에 걸리지 않았습니다. 5배 빠른 속도입니다.

알아둘 사항

  • S3 Select 프리뷰 버전은 GZIP으로 압축되거나 압축되지 않은 CSV 또는 JSON 파일을 지원합니다. 프리뷰 버전에서는 저장 시 암호화된 객체를 지원하지 않습니다.
  • S3 Select 프리뷰 버전은 무료입니다.
  • Amazon Athena, Amazon Redshift, Amazon EMR을 비롯하여 Cloudera, DataBricks, Hortonworks 등의 파트너들은 모두 S3 Select를 지원합니다.

Glacier Select 정식 출시

금융 서비스, 의료 등 규제가 엄격한 업종의 일부 기업에서는 SEC 규정 17a-4 또는 HIPAA 등과 같은 규정을 준수하기 위해 Amazon Glacier에 직접 데이터를 쓰고 있습니다. 많은 S3 사용자들은 더 이상 정기적으로 액세스하지 않는 데이터를 Glacier로 옮김으로써 스토리지 비용을 절약하도록 설계된 수명 주기 정책을 사용합니다. 온프레미스 테이프 라이브러리 등과 같은 기존의 아카이브 솔루션은 대부분 데이터 검색 처리량에 제한이 많아서 신속한 분석이나 처리에는 부적합합니다. 이러한 테이프 중 하나에 저장된 데이터를 사용하려면 유용한 결과를 얻기까지 몇 주씩 기다려야 할 수도 있습니다. 반면에 Glacier에 저장된 콜드 데이터는 단 몇 분만에 쉽게 쿼리할 수 있습니다.

따라서 아카이브된 데이터를 활용하여 새롭고 가능성 있는 비즈니스 가치를 창출할 수 있습니다. Glacier Select를 사용하면 표준 SQL 문을 사용하여 Glacier 객체에 대해 직접 필터링을 수행할 수 있습니다.

Glacier Select는 다른 검색 작업과 마찬가지로 수행되지만 다른 점은 초기 작업 요청에 전달할 수 있는 SelectParameters 파라미터 집합을 제공한다는 사실입니다.

다음은 간단한 예제입니다.

import boto3
glacier = boto3.client("glacier")

jobParameters = {
    "Type": "select", "ArchiveId": "ID",
    "Tier": "Expedited",
    "SelectParameters": {
        "InputSerialization": {"csv": {}},
        "ExpressionType": "SQL",
        "Expression": "SELECT * FROM archive WHERE _5='498960'",
        "OutputSerialization": {
            "csv": {}
        }
    },
    "OutputLocation": {
        "S3": {"BucketName": "glacier-select-output", "Prefix": "1"}
    }
}

glacier.initiate_job(vaultName="reInventSecrets", jobParameters=jobParameters)

알아둘 사항

Glacier Select는 모든 상용 리전에서 오늘 부터 사용할 수 있습니다. Glacier는 3가지 측정량으로 요금이 책정됩니다.

  • 스캔한 데이터량(GB)
  • 반환된 데이터량(GB)
  • Select 요청 수

각 측정량에 대한 요금은 원하는 결과 반환 속도에 따라 정해지며, 고속(1-5분), 일반(3-5시간), 대량(5-12시간)으로 구분됩니다. 곧 다가오는 2018년에 Athena는 Glacier Select를 사용하여 Glacier와 통합됩니다.

이러한 기능을 활용하여 애플리케이션 속도를 높이거나 새로운 성과를 달성하시기 바랍니다.

Randall;

이 글은 AWS re:Invent 2017 신규 서비스 소식으로 S3 Select and Glacier Select – Retrieving Subsets of Objects 의 한국어 번역입니다.

출시 예고 – 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의 한국어 번역입니다.

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