Amazon Web Services 한국 블로그

AWS 최신 기능 모음 – Amazon RDS 사용자 인증, SES 데이터 추적 및 AWS 솔루션 업데이트 등

AWS의 새로 출시된 몇 가지 서비스와 기능을 따라잡기 위해, 이 게시물에서는 지난 여름부터 9월 말까지 출시된 몇 가지 멋진 서비스를 요약 정리하고자 합니다. 더 자세한 업데이트 내역은 AWS 신규 기능 업데이트 페이지를 참고하세요.

오늘 여러분께 소개할 새로운 서비스와 기능은 다음과 같습니다.

  • RDS MySQL 및 Amazon Aurora의 데이터베이스 사용자 인증을 위한 AWS IAM
  • Amazon SES 평판 대시보드
  • Amazon SES 확인 및 클릭 추적 지표
  • Solutions Builder 팀의 서버리스 이미지 핸들러
  • Solutions Builder 팀의 AWS Ops Automator

그럼 자세히 살펴보겠습니다.

RDS MySQL 및 Amazon Aurora의 데이터베이스 사용자 인증을 위한 AWS IAM

Amazon RDS 데이터베이스 인스턴스 및 클러스터에 대한 액세스를 AWS IAM으로 관리하고 싶지 않으셨습니까? 이제 그 소원이 이루어졌습니다. Amazon RDS에서 MySQL용 Amazon RDS 및 Amazon Aurora DB에 대한 데이터베이스 액세스를 IAM으로 관리하는 기능을 출시했습니다.

이 새로운 서비스 기능에서 가장 마음에 드는 부분은 시작하기가 정말 쉽다는 점입니다. IAM을 이용한 데이터베이스 사용자 인증을 활성화하려면 DB 인스턴스 또는 클러스터를 생성, 수정 또는 복원할 때 [Enable IAM DB Authentication] 확인란을 선택하면 됩니다. RDS 콘솔, AWS CLI 및/또는 Amazon RDS API를 사용해서 IAM에 액세스하도록 할 수 있습니다.

IAM 인증을 사용하도록 데이터베이스를 구성하면, 클라이언트 애플리케이션은 데이터베이스 엔진에 대해 자신을 인증할 때 IAM 보안 토큰 서비스에서 생성된 임시 보안 자격 증명을 제출합니다. 데이터베이스 엔진에 암호를 제시하는 대신 이러한 자격 증명을 사용하는 것입니다.

IAM으로 MySQL 및 Aurora에 대한 목표 권한 및 인증을 제공하는 자세한 방법은 Amazon RDS 사용 설명서에서 알아볼 수 있습니다.

Amazon SES 평판 대시보드

Amazon Simple Email Service 고객이 이메일 전송을 위한 모범 사례 지침을 활용할 수 있도록 이메일 전송 상태를 포괄적으로 보고해 주는 평판 대시보드가 출시되었다는 소식을 기쁜 마음으로 알려 드립니다. 이제 고객들은 전반적인 계정 상태, 전송 지표, 규정 준수 또는 시행 상태를 파악하여 전송 중인 이메일을 선제적으로 관리할 수 있습니다.

평판 대시보드는 다음과 같은 정보를 제공합니다.

  • 계정 상태: 계정 상태에 대한 설명입니다.
    • 정상 – 현재 계정에 영향을 주는 문제가 없습니다.
    • 관찰 – 계정이 관찰 상태입니다. 일시 중지 사태를 방지하기 위해 관찰을 유발한 문제를 해결해야 합니다.
    • 관찰 종료 결정 보류 중 – 계정이 관찰 상태입니다. Amazon SES 팀원이 해당 계정을 검토한 뒤 조치를 취해야 합니다.
    • 종료 – 계정이 종료되었습니다. Amazon SES를 사용해 이메일을 보낼 수 없습니다.
    • 종료 보류 중 – 계정이 관찰 상태이고 관찰 상태를 유발한 문제가 해결되지 않았습니다.
  • 반송 메일 발생률: 반송된 이메일의 비율과 반송률 상태에 대한 메시지입니다.
  • 불만 제기 비율: 수신자가 스팸으로 보고한 이메일의 비율과 불만 제기율에 대한 상태 메시지입니다.
  • 알림: 기타 계정 평판 문제에 대한 메시지입니다.

Amazon SES 확인 및 클릭 추적 지표

최근 Amazon SES에 추가된 또 한 가지 흥미로운 기능은 이메일 확인 및 클릭 추적 지표입니다. SES 고객은 이제 이메일 확인 및 클릭 추적 지표 기능으로 보낸 이메일의 확인 시점과 이메일 내 링크의 클릭 시점을 추적할 수 있습니다. 이 SES 기능을 사용하면 이메일 캠페인에 대한 참여도와 효과를 더욱 정확하게 추적할 수 있습니다.

이 기능은 어떻게 작동할까요?

이메일 확인 추적 기능을 사용하는 경우, SES에서는 사용자가 추적하도록 선택한 이메일에 투명한 작은 이미지를 추가합니다. 받는 사람이 이메일을 열어 보면 메일 애플리케이션 클라이언트가 앞서 언급한 추적 이미지를 로드하고, 이에 따라 Amazon SES에서 확인 추적 이벤트가 트리거됩니다. 이메일 클릭(링크) 추적의 경우 이메일 및/또는 이메일 템플릿에 들어 있는 링크가 사용자 지정 링크로 바뀝니다. 받는 사람이 이 사용자 지정 링크를 클릭하면 SES에 클릭 이벤트가 기록되고, 이메일 사용자는 사용자 지정 링크를 통해 원본 이메일의 링크 대상으로 리디렉션됩니다.

새로운 확인 추적 및 클릭 추적 기능을 사용하려면 SES에서 새로운 구성 집합을 생성하거나 기존 구성 집합을 변경하면 됩니다. 두 방법 중 하나를 선택한 다음, 확인 및 클릭 지표를 수신하기 위한 AWS 서비스로 Amazon SNS, Amazon CloudWatch 또는 Amazon Kinesis Firehose를 선택하십시오. 이제 전송할 모든 이메일에 대해 이러한 새 기능을 적용하는 새로운 구성 집합만 선택하면 됩니다.

AWS 솔루션: 서버리스 이미지 핸들러 및 AWS Ops Automator

AWS Solution Builder 팀은 AWS에서 애플리케이션 빌드 및 실행을 위해 일반적인 아키텍처 질문에 대한 답변을 쉽게 찾을 수 있도록 많은 노력을 기울이고 있습니다. 이러한 솔루션은 AWS Answers 페이지에서 찾을 수 있습니다. 올 가을 초 AWS Answers에 발표된 두 가지 새로운 솔루션은 서버리스 이미지 핸들러AWS Ops Automator입니다.
서버리스 이미지 핸들러AWS 클라우드의 이미지 취급 과정을 실시간으로 처리, 조작 및 최적화하는 고객을 위한 지원 솔루션으로 개발되었습니다. 이것은 캐싱을 위해 Amazon CloudFront를, 실시간 이미지 검색과 수정을 위해 AWS Lambda를, 이미지 저장을 위해 Amazon S3 버킷을 결합한 솔루션입니다. 또한 서버리스 이미지 핸들러는 이미지를 더 세밀하게 조작, 처리 및 최적화할 수 있도록 오픈 소스 이미지 처리 제품군인 Thumbor를 사용합니다.

AWS Ops Automator 솔루션의 자동 작업 프레임워크에서 시간 기반 트리거나 이벤트 기반 트리거를 사용하여 스냅샷 예약 등의 수작업을 자동화할 수 있습니다. 여기에는 작업 감사 추적, 로깅, 리소스 선택, 조정, 동시 처리, 작업 완료 전달 및 API 요청 재시도 등이 포함됩니다.

이 솔루션에는 다음 AWS 서비스가 포함됩니다.

  • AWS CloudFormation: 마이크로서비스 및 솔루션에서 생성한 작업 구성의 핵심 프레임워크를 시작하기 위한 템플릿
  • Amazon DynamoDB: 이벤트 트리거 및 리소스를 정의하기 위한 작업 구성 데이터와 작업 및 오류의 결과를 저장하는 테이블
  • Amazon CloudWatch Logs: 경고 및 오류 메시지 추적을 위한 로깅 기능 제공
  • Amazon SNS: 솔루션에서 로깅 정보를 보내는 구독자 이메일 주소로 관련 주제의 메시지 전송

즐겁게 탐구하고 코딩하시기 바랍니다.

Tara

이 글은 Just in Case You Missed It: Catching Up on Some Recent AWS Launches의 한국어 번역입니다.

Stephen Orban – 엔터프라이즈 클라우드 혁신 센터(CCoE)를 설립하는 방법

“내게 충분히 긴 지렛대와 지렛대를 놓을 받침점을 달라. 그러면 세상을 움직이겠다.” -Archimedes

 

지금까지 엔터프라이즈 클라우드 여정 시리즈에서는 임원의 역할 직원 교육실험 시간 부여, 그리고 파트너 참여 방법을 (다시) 고려하는 것이 얼마나 중요한 지 살펴봤습니다. 이 게시물에서는 그 다음 모범 사례로 구현 자체는 아마 가장 힘들지만 조직에서의 변화 창출에 관해서는 가장 효과가 큰 클라우드 혁신 센터(CCoE – Cloud Center of Excellence) 설립에 대해 소개합니다.

2012년, 저는 운 좋게도 Dow Jones의 CIO로 임명되었습니다. 당시 Dow Jones는 유서 깊은 123년 역사의 조직으로 강력한 브랜드, 풍부한 콘텐츠, 충성도 높은 고객 기반을 가지고 있었습니다. 제 일은 갈수록 경쟁이 치열해지는 환경에서 살아남고 운영 효율성을 개선하며 비용을 절감하기 위해 기술 조직의 업무 초점을 기술 개발로 전환하는 것이었습니다.

이런 목표를 달성하기 위해 끊임없이 전략을 개발하는 과정에서 우리는 비즈니스에 집중할 수 있도록 사내 인재 확충, 오픈 소스 활용, 클라우드 서비스 도입 등 여러 가지 지렛대를 활용했습니다. 하지만 우리가 내린 최고의 결정은 아마도 조직 전체에 클라우드 전략을 어떻게 구축하고 실행할지 규범화하기 위해 우리가 DevOps라고 불렀던 CCoE를 창설한 것이었습니다. 저는 일하는 동안 변화 관리 프로그램의 성공과 실패를 지켜보면서 조직에서 가장 중요한 프로그램에 대해 단일 소유권을 지닌 전담 팀을 두는 것이 빠르게 결과를 얻고 변화에 영향을 미치는 효과적 방법 중 하나라는 것을 알고 있었습니다. 제 엔터프라이즈 DevOps 시리즈에서는 이런 경험 몇 가지를 더 자세히 다루고 있습니다.

 

© Les Chatfield https://www.flickr.com/photos/elsie/

그 이후로 제가 만나 본 기업 중 여정에서 유의미한 발전을 이뤄낸 기업들은 하나같이 모범 사례, 프레임워크, 진화하는 기술 운영 거버넌스의 창출, 전파, 제도화를 전담하는 팀을 두고 있었으며, 이러한 구현에서 클라우드의 활용은 점점 늘어나고 있습니다. 이 CCoE 팀은 소규모 조직으로 시작하여 기업의 규모에 맞게 클라우드 기술을 구현할 방법에 대한 관점을 개발하며, 제대로 구현될 경우, 기술이 비즈니스에 기여하는 방식을 혁신하는 지렛대 받침점이 될 수 있습니다.

다음 몇몇 게시물에서는 엔터프라이즈가 다음 요소를 통해 이를 수행하는 방법을 살펴보겠습니다.

팀 구축

다양한 직업적 배경을 가진 3명에서 5명 정도의 팀을 꾸리는 것이 좋습니다. 개발자, 시스템 관리자, 네트워크 엔지니어, IT 운영 및 데이터베이스 관리자를 찾으십시오. 원칙적으로 이들은 생각이 열려 있고 현대 기술과 클라우드 서비스를 활용하여 일하는 방식을 바꾸고 조직을 미래로 이끌 방법을 고민하는 사람들이어야 합니다. 경험이 일천한 직원을 합류시키는 것을 꺼리지 마십시오. 태도가 능력만큼 중요할 수 있으며, 필요한 인재는 이미 조직에 있을 수 있습니다.

팀의 책임 범위 설정(및 확장)

CCoE는 조직의 나머지 부분이 클라우드에 시스템을 구현할 때 (또는 시스템을 이전할 때) 활용하는 모범 사례, 거버넌스, 프레임워크 구축을 책임져야 합니다. 역할과 권한, 비용 거버넌스, 모니터링, 사고 관리, 하이브리드 아키텍처, 보안 모델 등 기본부터 시작하십시오.

시간이 지나면서 이러한 책임은 복수계정 관리, “골든” 이미지 관리, 자산 관리, 사업 단위 요금상환, 재사용 가능한 참조 아키텍처 등을 망라하는 수준까지 발전할 것입니다. 분석 불능 상태에 빠지지 않도록 하십시오. 실무 경험이 쌓이면서 역량은 자연스럽게 발전시킬 수 있습니다.

팀을 다른 모범 사례에 연계

제가 글에 썼던 모든 모범 사례는 상호 의존적입니다. CCoE가 성공하기 위해서는 경영진의 파격적 지원을 확보하고, CCoE 방법에 대해 조직을 교육하며, 경쟁력을 유지하기 위해 실험을 받아들이고, 환경에 가장 좋은 도구와 파트너를 늘 파악하며, 조직의 하이브리드 아키텍처를 소유하고, 클라우드 우선 전략에서 핵심 플레이어가 되어야 합니다.

이 각각의 주제는 앞으로 몇 주에 걸쳐 자세히 살펴볼 계획입니다. 공유하고 싶은 경험이 있거나 시리즈에서 앞으로 다루기를 바라는 분야가 있다면 알려 주십시오!

 

-Stephen
@stephenorban
http://aws.amazon.com/enterprise/

본 블로그 글은 Stephen Orban의 엔터프라이즈 클라우드 여정 시리즈 입니다. 더 자세한 것은 전체 목록을 참고하시기 바랍니다.

Amazon Redshift, 비용 최적 고밀도 컴퓨팅(DC2) 노드 활용하기

Amazon Redshift를 사용하면 엑사바이트 규모의 데이터를 빠르고 쉽고 비용 효율적으로 분석할 수 있습니다. 이 솔루션은 병렬 실행, 압축된 컬럼 방식 스토리지, 종단 간 암호화 등과 같은 고급 데이터 웨어하우징 기능을 종합 관리형 서비스로 제공합니다. 비용은 TB당 연간 $1,000 미만입니다. Amazon Redshift Spectrum을 사용하면 Amazon S3에서 엑사바이트 규모의 비정형 데이터에 대해 SQL 쿼리를 직접 실행할 수 있습니다. 비용은 스캔 용량 기준 TB당 $5입니다.

현재 이전 세대 DC1과 동일한 가격에 새로운 2세대 Dense Compute(DC2) 노드를 지원하여 DC(Dense Compute) 제품군을 더 빠르고 비용 효율적으로 개선하고 있습니다. DC2는 지연 시간이 짧고 처리량은 많아 까다로운 데이터 웨어하우징 워크로드를 위해 설계되었습니다. DC2는 강력한 Intel E5-2686 v4(Broadwell) CPU와 빠른 DDR4 메모리, 그리고 NVMe 기반의 SSD(Solid State Disk)를 사용합니다.

특히 DC2 노드에서 더 좋은 CPU와 네트워크, 디스크를 활용하도록 Amazon Redshift를 조정한 결과, 같은 가격에 DC1의 최대 두 배에 달하는 성능을 발휘합니다. DC2.8xlarge 인스턴스는 이제 데이터 슬라이스당 두 배의 메모리를 제공하며, 최적화된 스토리지 레이아웃으로 스토리지 사용률을 30%나 높였습니다.

고객 활용사례

급성장 중인 스타트업부터 Fortune 100대 기업까지 굴지의 여러 고객들이 새로운 DC2 노드 유형을 미리 살펴보았습니다. 이들의 테스트에서 DC2는 DC1에 비해 최대 두 배에 달하는 성능을 발휘했습니다. 고객 프리뷰 결과, DC1과 동일한 비용에 ETL(추출, 변환, 로드) 작업 속도, 쿼리 처리량, 동시성, 보고 속도, 데이터 통찰 시간 등이 모두 향상되었습니다. 또한 DC2.8xlarge 고객의 경우 최적화된 스토리지 형식 덕분에 데이터베이스가 차지하는 디스크 공간이 최대 30%나 줄어 비용을 절감할 수 있었습니다.

아메리카 지역에서 가장 빠르게 성장하는 민간 기업 중 하나인 4Cite Marketing에서는 Amazon Redshift를 사용하여 고객 데이터를 분석하고 소매업체를 위한 맞춤형 제품을 추천합니다. “Amazon Redshift의 새로운 DC2 노드가 100% 향상된 성능을 발휘한 덕분에 소매업체에 더 빠른 분석 정보를 더 경제적으로 제공함으로써 매출이 점점 증가하고 있다”고 4Cite의 Jim Finnerty 제품 담당 수석 부사장은 말합니다.

브랜드 보호 및 규정 준수 업체인 시애틀의 BrandVerity는 온라인 브랜드, 상표 및 규정 준수 침해를 모니터링하고 감지하여 문제를 완화하는 솔루션을 제공합니다. “DC2 노드로 Redshift Spectrum 쿼리를 실행하자 성능이 70%나 높아졌습니다. 그 결과 훨씬 더 많은 고객 데이터를 분석하고, 훨씬 더 빠르게 결과를 제공할 수 있게 되었습니다.” BrandVerity의 책임 소프트웨어 엔지니어인 김현준 씨가 말합니다.

핀란드 최대의 통신 그룹이자 핀란드 최대의 케이블 방송사 겸 유료 TV 공급자로 손꼽히는 DNA Plc의 Jarno Kartela 분석 책임자 겸 수석 데이터 과학자 역시 “Amazon Redshift는 운영 및 마케팅 자동화 도구의 핵심”이라고 주장합니다. “Amazon Redshift의 DC2 노드로 바꾼 결과 52%의 성능 향상을 실현했습니다. 지금은 쿼리 시간이 절반으로 줄었고, 분석 및 마케팅 자동화 고객들에게 강화된 분석 역량과 더 빠른 통찰력을 제공할 수 있습니다.”

고객 성공 사례 페이지에서 고객들의 경험담을 읽어 보십시오.

시작하기

시작 안내서에 따라 새 노드 유형에 도전해 보십시오. Amazon Redshift 콘솔에서 dc2.large 또는 dc2.8xlarge를 선택하면 됩니다.

DC1.large Amazon Redshift 클러스터가 있다면 기존 스냅샷을 사용하여 새 DC2.large 클러스터로 복원할 수 있습니다. DS2.xlarge, DS2.8xlarge 또는 DC1.8xlarge Amazon Redshift 클러스터에서 마이그레이션할 때는 크기 조정 작업을 이용하여 데이터를 새 DC2 클러스터로 옮기면 됩니다. 자세한 내용은 Clusters and Nodes in Amazon Redshift를 참조하십시오.

최신 Amazon Redshift 기능 발표 알림을 받으려면 새로운 기능 페이지를 선택하고 RSS 피드를 구독하시기바랍니다.

이 글은 AWS Big Data 블로그의 Amazon Redshift Dense Compute (DC2) Nodes Deliver Twice the Performance as DC1 at the Same Price의 한국어 번역입니다.

Amazon EC2 차세대 컴퓨팅 최적화 C5 인스턴스 출시

수년 동안 우리는 고객에게 최상의 네트워킹, 스토리지 및 컴퓨팅 성능을 제공하기 위해 끊임없이 노력해 왔으며 AWS에 의해 설계되고 구축 된 전용 하드웨어로 다양한 유형의 작업을 오프로드하는 데 오랜 기간 집중했습니다. 오늘 새로운 Amazon EC2 C5 인스턴스 타입을 추가하여, 최신 세대의 하드웨어 오프로드를 통합하며 하드웨어와 함께 새로운 하이퍼 바이저를 추가하여 했습니다.

EC2 C5 인스턴스 타입 출시
EC2 C5 인스턴스는 Amazon EC2의 차세대 컴퓨팅 최적화 인스턴스로, 3.0GHz Intel® Xeon® Scalable 프로세서(Skylake)로 구동됩니다. C5 인스턴스는 새로운 경량 하이퍼바이저를 사용하여 빌드되며, 이 하이퍼바이저가 고객의 인스턴스에 거의 모든 컴퓨팅 및 메모리 리소스를 제공합니다. 그 결과, C5 인스턴스는 EC2 제품군에서 최상의 가격 대 컴퓨팅 성능 비율을 자랑합니다.

C5 인스턴스의 가격 대 성능비는 C4 인스턴스에 비해 25% 개선되었고 일부 애플리케이션에서는 50% 이상 개선되었습니다. C5 인스턴스는 배치 처리, 분산 분석, 고성능 컴퓨팅(HPC), 머신/딥 러닝 추론, 광고 서비스, 확장성이 높은 멀티플레이어 게임, 비디오 인코딩 등 컴퓨팅 집약적 워크로드를 실행하는 데 이상적입니다.

C5 인스턴스는 6가지 크기로 이용 가능하며, 고객이 효과적으로 워크로드를 병합할 수 있도록 72개 vCPU 및 144GiB 메모리를 제공하는 더 큰 크기의 c5.18xlarge를 새로 출시했습니다.

인스턴스 타입 vCPUs
RAM
EBS 대역폭
네트워크 대역폭
c5.large 2 4 GiB Up to 2.25 Gbps Up to 10 Gbps
c5.xlarge 4 8 GiB Up to 2.25 Gbps Up to 10 Gbps
c5.2xlarge 8 16 GiB Up to 2.25 Gbps Up to 10 Gbps
c5.4xlarge 16 32 GiB 2.25 Gbps Up to 10 Gbps
c5.9xlarge 36 72 GiB 4.5 Gbps 10 Gbps
c5.18xlarge 72 144 GiB 9 Gbps 25 Gbps

차세대 Elastic Network Adapter(ENA) 및 NVM Express(NVMe) 기술이 적용되어 C5 인스턴스는 네트워킹 및 Amazon Elastic Block Storage(Amazon EBS)를 위한 높은 처리량, 낮은 지연 시간 인터페이스를 제공합니다. C5 인스턴스는 최대 25Gbps의 네트워크 대역폭과 최대 9Gbps의 Amazon EBS 대역폭을 제공합니다. 또한 C5 인스턴스는 더 작은 인스턴스 크기에서 월등히 높은 네트워킹 및 Amazon EBS 성능을 자랑합니다. 새로운 Intel Advanced Vector Extensions 512(AVX-512) 명령 집합을 지원하여 이전 세대 C4 인스턴스에 비해 사이클당 코어별 FLOPS가 최대 2배에 달합니다.

정식 출시
C5 인스턴스는 미국 동부, 미국 서부 및 EU에서 온디맨드, 예약 및 스팟 인스턴스로 제공됩니다. 자세히 알아보려면 Amazon EC2 요금 페이지를 참조하십시오.

Jeff;

AWS 주간 소식 모음 – 2017년 11월 6일

안녕하세요! 여러분~ 매주 월요일 마다 지난 주에 업데이트된 국내 AWS 관련 콘텐츠를 정리해 드립니다.  AWS 클라우드에 대한 새로운 소식을 확인하시는데 많은 도움 되시길 바랍니다. 혹시 빠지거나 추가할 내용이 있으시면, 저에게 메일 주시면 추가 공유해 드리겠습니다.

AWS코리아 블로그

AWS코리아 발표 자료

AWS코리아 동영상

AWS 관련 뉴스 추천 콘텐츠

AWS 글로벌 신규 소식

AWS 제품별 블로그(영문)

AWS 주요 행사 온라인 세미나

AWS 마케팅 행사

 

AWS 공인 교육 일정

 

AWSKRUG 소모임

AWS 주요 파트너사 블로그

AWS 관련 새 소식을 확인하고 싶으시다면, 매주 업데이트 되는 AWS 주간 소식 모음을 살펴 보시기 바랍니다! 좀 더 빠르게 새소식을 접하시고 싶다면, 공식 트위터공식 페이스북을 팔로우 하세요!

이번 한주도 즐겁게 보내시고, 다음주에 다시 만나요!.

– AWS코리아 마케팅팀;

 

 

Stephen Orban – 클라우드를 통해 실험할 때 해야 할 일과 하지 말아야 할 일 4가지

“막대기가 휘어져 있음을 보여 주는 가장 좋은 방법은 막대기에 관해 논쟁하거나 비난하는 데 시간을 허비하는 것이 아니라 곧은 막대기를 옆에 놓는 것이다” ― D.L. Moody

지난 게시물에서 규모와 형태를 막론하고 모든 회사에게 클라우드를 통해 실험이 얼마나 쉬워지고 저렴해지며 덜 위험해지는지 설명했습니다. 회사가 오늘날의 시장에서 실험 문화를 가지고 있다는 것은 경쟁력을 유지할 수 있는 기반이 됩니다. 실험은 혁신을 키우며, 지금처럼 새로운 아이디어를 실천하기에 좋은 때는 없었습니다.

그럼 어디서부터 시작해야 할까요? 조직에서 실험 문화를 구축할 때 고려해야 할 네 가지와 피해야 할 네 가지를 알려 드리겠습니다.

1. 기대수준을 관리하십시오.

예상과 다른 결과가 나오는 실험도 있지만 모든 실험은 배우고 운영을 개선할 수 있는 기회입니다. 조직이 “배우기 위한 실패”라는 개념에 익숙하지 않다면 작은 것부터 시작하고 실험이라고 생각하는 프로젝트를 모두에게 알리십시오. 실험의 목표, 바라는 결과, 결과를 측정하고 테스트할 방법, 이를 통해 배우고자 하는 것을 명확히 함으로써 이해관계자의 기대치를 관리하십시오. 제가 이 과정을 통해 발견한 것은 실험을 해보고 뭔가를 배움으로써 조직이 어떻게 발전하는지 알게 되면 대부분의 임원도 결과가 불확실한 실험의 가치를 이해한다는 것입니다.

모두가 구체적인 성과를 바라보고 있는 프로젝트부터 시작하지 마십시오.

실험 문화를 조성하기 위해 노력하는 변화 관리자 역할을 맡고 있다면  초기에는 이해 관계자들이 구체적인 성과를 요구하는 프로젝트로 실험을 시작하지 마십시오. 예를 들어, 연말 거래 총액 집계로 실험을 시작하는 것은 권장하지 않습니다. 제가 예전에 함께 일했던 한 CEO는 실험에 대해 이렇게 말했습니다. “실패해서는 안 될 때가 아니라면 실패해도 괜찮다”. 점진적 발전에 만족하고 실행하는 실험의 수를 천천히 늘리되 조직보다 앞서가지는 마십시오.

2. 팀의 실험 제안을 독려하십시오.

조직마다 기술 자원을 어떤 프로젝트에 할당할 지 결정하는 고유의 방식이 있습니다. 불행히도 현재 일부 조직은 기술 또는 IT 부서를 코스트 센터로 취급하고 있습니다.  또한 아이디어 생성 과정이 아이디어를 실행하는 사람들과  동떨어져 분리되어 있습니다. 좋은 아이디어는 어디서나 나올 수 있으며, 외부 프로젝트와 관련하여 대부분의 기술 전문가는 독특한 시각을 드러내곤 합니다. 막 클라우드를 시작하는 조직에서는 특히 그렇습니다. 클라우드 고유의 기능을 활용하여 비즈니스에 가치를 가져다 주는 실험을 제안할 적임자는 바로 클라우드를 사용하는 개개인입니다. 팀의 제안을 장려하고 경영진이 어떤 프로젝트에 투자하는지에 영향을 미칠 수 있는 위치에 직원들을 배치하십시오.

측정 방법을 알기 전까지는 실험을 추진하지 마십시오.

여러분은 적절한 실험에 시간을 쏟고 실험에서 얻은 교훈을 통해 조직과 제품이 개선되기를 바랄 것입니다. 팀의 실험 진행을 허락하기 전에 실험 도중 무엇을 어떻게 측정할지 합의해야 합니다. 웹사이트의 새 기능을 테스트한다면 성공적인 웹사이트의 지표는 무엇입니까? 페이지 뷰 수입니까? 클릭 수입니까? 포기율입니까? 이 작지만 중요한 실사 작업은 애초에 팀이 실험을 제안하는 이유를 곱씹어 보도록 합니다. 또한 팀으로 하여금 적절한 실험 우선순위를 정하도록 합니다.

3. 실험을 제도화할 DevOps를 고려하십시오.

DevOps 문화는 실험을 조직의 규범으로 만드는 강력한 방법이 될 수 있습니다. 자산 개발 및 운영(run-what-you-build)과 자동화의 결합은 변경 사항을 적용하는 데 드는 시간을 크게 줄여 더 자주 더 빨리 적용하고 효과 없는 변경 사항은 빠르게 롤백할 수 있습니다. 성숙한 DevOps 조직은 서로 다른 사용자 집단을 이용해 조금씩 다른 사용자 경험을 실험하여 가장 효과적인 것을 찾을 수 있는 A/B 테스트 프레임워크도 개발합니다.

팀을 의심하지 마십시오.

의심은 팀의 사기를 꺾고 실패의 문을 여는 가장 강력한 방법입니다. 적절히 실험 범위를 정하고 측정하며 빠르게 반복하는 방법을 배움에 따라 의심에 앞서 자신의 방법을 조정할 수 있어야 합니다. 팀이 올바른 실험 측정 방법에 대해 생각하도록 하고 어려운 질문을 하는 것이 건전하다는 것을 주지시켜야 하지만, 문제를 해결할 수 있는지 의심하기보다는 팀이 문제를 해결하도록 돕는 방법을 찾아야 합니다. 사람들은 성공하리라 믿는 리더를 따르는 경향이 있습니다.

4. 전체 조직의 참여를 독려하십시오.

실험을 통해 보다 빠르게 결과를 내기 시작하면 조직의 다른 부서들도 여러분의 방법에 끌리게 됩니다. 이런 사람들을 참여시키십시오. 다양한 비즈니스 분야를 포함하는 해커톤을 시도하고, 이해관계자가 실험 측정을 돕도록 하며, 조직에게 항상 실험하고 싶었던 분야를 물어보십시오. 직원들에게 실험할 시간을 주지 않는 회사도 있겠지만 일반적으로는 이를 경쟁력으로 선전합니다. 적어도 이런 종류의 포괄적 활동은 직원들의 사기와 직원 보유율을 높입니다. Amazon에서의 짧은 근무 기간 중에 저는 실험에 대해 깊이 생각하고 이를 글로 명확히 표현할 수 있는 사람이라면 누구나 일반적으로 시도할 기회를 얻게 된다는 것을 알게 됐습니다. 이것은 우리 문화의 특별한 부분이며, 혁신가와 구축가를 끌어들이고 유지하는 훌륭한 도구입니다.

실험이라고 결과가 늦게 나오거나 중단되어서는 안 됩니다.

실험이라는 이유만으로 팀이 결과에 소홀해지지 않도록 하십시오. 실패하고 배우는 것은 좋지만 실험이라 하여 미흡한 결과를 내도 되는 것은 아닙니다. 테스트할 소프트웨어는 여전히 제공되어야 하고, 프로덕션에서 실제 트래픽으로 측정되어야 합니다. 실험이라는 이유로 측정을 늦게 시작하거나 품질이 떨어져도 되는 것은 아닙니다. 어쨌든 여전히 비즈니스를 운영하고 있다는 점을 잊지 마십시오.

실험 문화를 가능케 하기 위해 여러분의 회사는 무엇을 합니까? 꼭 듣고 싶습니다.

– Stephen;
@stephenorban
http://aws.amazon.com/enterprise/

본 블로그 글은 Stephen Orban의 엔터프라이즈 클라우드 여정 시리즈 입니다. 더 자세한 것은 전체 목록을 참고하시기 바랍니다.

Amazon Athena, 서울 리전 출시

오늘 Amazon Athena 서비스가 서울 리전에 출시되었습니다. Amazon Athena는 표준 SQL을 사용해 Amazon S3에 저장된 데이터를 간편하게 분석할 수 있는 대화식 쿼리 서비스로서, 서버리스 기반 서비스이므로 관리할 인프라가 없으며 실행한 쿼리에 대해서만 비용을 지불하는 데이터 분석 서비스입니다.

Amazon Athena 서비스에 대한 자료 모음입니다.

좀 더 자세한 것은 기술 문서를 참고하세요.

윤석찬 (Channy);

Stephen Orban – 직원에게 클라우드 교육 시 고려해야 할 11가지

말로 들은 것은 잊어버린다. 누군가 내게 가르친 것은 기억에 남는다. 참여하면 비로소 익히게 된다. – Benjamin Franklin

 

지난 번 게시물에서는 적절한 교육을 통해 직원을 지원한다면 클라우드 기술을 활용하는 데 필요한 이미 리소스를 갖춘 것이라고 할 수 있는 이유에 대해 설명했습니다.

그러면 최고 변화 관리 책임자(CCMO, Chief Change Management Officer)는 여정을 가속화할 수 있도록 어떻게 직원을 교육할 수 있을까요? 모든 조직의 여정은 다르지만 이를 잘 해내는 조직에는 몇 가지 공통점이 있습니다. 이러한 공통점 11가지를 소개합니다.

1. 의미 있지만 기본적인 것부터 시작하십시오.

비즈니스에 중요한 것을 성취하고 나면 팀은 클라우드 기술의 실용적인 이점을 금방 알아차리게 됩니다. 저는 몇몇 회사의 경우 상황을 크게 변화시키지 않는 프로젝트에 집중했기 때문에 원하는 만큼 빨리 발전하지 못한 것을 확인했습니다. 물론 처음 진행하는 몇 개 프로젝트에 모든 것을 걸어서는 안 되지만 비즈니스 이점을 볼 수 있을 만큼 의미 있는 프로젝트부터 시작하는 것이 좋을 것입니다. 처음에 시작해 볼 수 있는 것으로는 여러 가지가 있습니다. 간단한 웹 사이트, 모바일 애플리케이션, 쉽게 데이터에 액세스할 수 있는 API 또는 백업/재해 복구 개선 등이 있습니다. 팀은 교육 내용이 실용적으로 적용되는 경우 그 과정에서 배운 것들을 더 많은 프로젝트에 더 빨리 적용할 수 있게 될 것입니다.

2. AWS 교육을 활용하십시오.

이전 게시물에서 AWS가 제공하는 우수한 교육 프로그램에 대해 언급했습니다. 이러한 프로그램을 통해 수백 개의 회사들이 클라우드 기술을 연마할 수 있었습니다. AWS는 모든 교육 참여를 개선의 기회로 활용하고 조직에서 특정 요구를 충족하는 교육을 맞춤 설정할 수 있는 다양한 교육 과정과 다양한 전달 메커니즘을 개발했습니다.  Dow Jones에 있을 때 팀의 대부분이 기술 담당자를 교육했는데 이 과정이 나중에 AWS Technical Fundamentals 과정이 되었습니다. 이 교육은 직원들이 새로운 기술을 갖추도록 준비시키는 것 외에도 여정이 시작될 때 일반적으로 느끼는 미지의 영역에 대한 두려움도 없앨 수 있었습니다.

3. 팀이 충분히 실험할 수 있는 시간을 주십시오.

실험 문화를 창안하는 것이 여정에 있어 그 다음 우수 사례이며, 특히 직원에게 동기를 부여 할 때 적합합니다. 혁신은 실험에서 나옵니다. 클라우드를 사용하면 새로운 것을 시도할 때 대규모 선행 투자가 필요하지 않기 때문에 팀이 적극적으로 업계에서 새로운 혁신 제품을 만들 수 있게 됩니다. 팀에게 새로운 방식으로 기존 프로젝트를 구현할 자유를 주십시오.

4. 학습과 실험을 장려하는 목표를 세우십시오.

대부분의 기업은 직원의 목표 및 KPI를 세우고 이러한 목표와 성과를 연결시킵니다. 이러한 기존 메커니즘을 사용하는 것은 전략을 강화하고 원하는 행동을 만들어낼 수 있는 좋은 방법입니다. 관련 교육 이수, 예산 확보 또는 적절한 클라우드 아키텍처를 활용하여 운영 효율성이 어떻게 향상되었는지 등을 중심으로 목표를 수립할 수 있습니다. 이렇게 하면 책임자들이 모두에게 실험 및 학습 기회를 주는 것을 진지하게 고려하고 있음을 보여줄 수 있습니다.

5. 시간 제한을 두고 적절한 속도를 찾으십시오.

실험문화 형성을 목표로 삼을 때 특히 중요한 점입니다. 결국은 가장 중요한 것은 결과입니다. 각 프로젝트의 마감일을 설정하여 팀원들이 이미 알고있는 것을 사용하도록 하고 균형 잡힌 실험을 하도록 도울 수 있습니다. 때로는 팀이 이러한 제약 조건으로 인해 타협하고, 실험을 진행함에 따라 이러한 타협안을 처리하는 방법을 정의해야 합니다. 그러나 팀은 항상 다음 프로젝트를 위해 기술을 배우고 향상시킬 것입니다.

6. 변화에 대한 저항을 확인하고 이를 처리하십시오.

고려해야 할 이 모든 사항의 목적은 사람들에게 성공에 필요한 도구를 제공하여 변화에 대한 직원의 저항을 통제하는 것입니다. 하지만 이러한 모든 기회가 있음에도 불구하고 조직에는 계속 저항하는 사람들이 있을 가능성이 높습니다. 명확한 목적 제시에 대한 게시물은 이러한 과제에 대한 내용을 설명합니다. 팀이 보일 수 있는 불안을 이해하고 효과가 있는 방법과 그렇지 않은 방법에 대해 열린 마음을 가지고 불필요한 마찰을 신속하게 처리하십시오. 이것은 다음 요점으로 이어집니다.

7. 사람들에게 새로운 역할을 부여하는 것에 대해 두려워하지 마십시오.

의미 있는 방식으로 클라우드로 이동하는 것은 기술 변화만큼이나 문화적 변화입니다. 저는 사람들에게 새로운 역할을 수행 할 수 있는 기회를 제공함으로써 변화에 대한 그들의 저항을 극복 할 수 있음을 발견했습니다. 제도적 지식은 비싸고 일반적으로 불필요한 손실이기 때문에 저는 항상 우선적으로 회사 내부를 살펴 보았습니다. Bloomberg에서 11년 동안 일하면서 저는 6가지 매우 다른 역할을 맡았습니다. 이런 많은기회 때문에 그렇게 오랜 시간 동안 근무할 수 있었습니다. 직원에게 새로운 기회를 제공하는 방법을 모색하면 직원의 지속적인 참여를 유지하고 직원 유지를 도울 수 있습니다.

8. 직원에게 조직의 큰 그림 안에서 그들이 어떤 역할을 하고 있는지 보여주십시오.

자신의 직무가 조직의 큰 그림에서 어떤 부분을 차지하고 있는지 알면 직무에 대해 더 쉽게 흥미를 느끼게 됩니다. 반드시 각 역할을 고려하고 팀원에게 그 역할이 어떤 의미에서, 왜 중요한지 알려주십시오. 다시 말하면, 귀하의 조직이 조직 목표를 부서 및 개인 목표에 어떻게 부합시키는지 살펴보고, 각 역할에 맞게 목표를 조정하는 방법을 모색하십시오.

9. 업계 행사에 참여하여 다른 기업이 하고 있는 일을 보십시오.

대부분의 사람들은 다른 사람의 성공과 실패에서 많은 것을 배웁니다. 지금까지 5년 이상 엔터프라이즈용 클라우드 지원 기술 전략을 개발하고 있는데도 AWS re:Invent, AWS Summits 및 기타 기술 이벤트에 참석해 배우는 것을 살펴보면 아직도 놀랍습니다. 직원이 인맥을 쌓고 새로운 아이디어를 얻을 시간을 주십시오. 당신이 추구하지 않을 것이라고 확신하는 것들을 포함해 많은 아이디어를 고려하는 것은 교훈을 배우고 전략을 강화할 수 있는 훌륭한 방법입니다.

10. 파트너로부터 배우십시오.

AWS 파트너 네트워크에는 수만 개의 조직이 있습니다. 그 중 많은 수는 이미 기존 파트너에 속해 있지만 새로운 파트너에게서도 배울 수 있는 기회가 있을 것입니다. 많은 대기업이 클라우드 전략을 가속화하고 IT 문화를 바꾸기 위해 Cloudreach, 2nd Watch 및 Minjar와 같은 규모가 작고 오래되지 않은 “클라우드 기반” 시스템으로 전환하는 것을 보는 것은 매우 놀라웠습니다.

그리고 결과적으로…

11. 조직 내 교육의 특성을 제도화하십시오.

여정을 진행하면서 조직의 몇몇 팀이나 개인이 자신들이 학습한 것을 다른 사람들과 공유하고 싶어한다는 것을 알게 될 것입니다. 클라우드 혁신 센터에서 그런 반응이 나온다면 가장 이상적일 것입니다. 향후 여정의 또 다른 모범 사례로 소개하겠습니다. 제가 Dow Jones에 있을 때 DevOps 팀은 주기적으로 “DevOps 데이”를 주최했습니다. 팀이 조직의 다른 사람들에게 개발한 클라우드 모범 사례, 프레임워크 및 거버넌스 모델을 공유하는 자리가 되었습니다. 자사 조직에만 적용되는 비슷한 프로그램을 구축한 다른 여러 Fortune 500 기업과도 대화를 나눠보았습니다.

이외에 고려해본 다른 내용이 있나요? 있다면 꼭 듣고 싶습니다.

– Stephen;
@stephenorban
http://aws.amazon.com/enterprise/

본 블로그 글은 Stephen Orban의 엔터프라이즈 클라우드 여정 시리즈 입니다. 더 자세한 것은 전체 목록을 참고하시기 바랍니다.

Gluon 상세 소개 – 유연한 딥러닝을 위한 사용하기 쉬운 프로그램 인터페이스

AWS와 Microsoft는 선택한 딥 러닝 프레임워크에 상관 없이 모든 개발자를 지원할 수 있도록 기계 학습 기술의 속도, 유연성 및 액세스 가능성 개선에 초점을 둔 Gluon이라는 새로운 표준 인터페이스를 발표했습니다. 이 협업을 통해 거둔 첫 번째 성과는 Apache MXNet의 오픈 소스 라이브러리인 새로운 Gluon 인터페이스로, 초보 개발자라도 딥 러닝 모델의 프로토타입을 제작하고, 딥 러닝 모델을 빌드하고 학습시킬 수 있습니다. 이 인터페이스를 사용하면 학습에 많은 시간을 들이지 않고도 딥 러닝 모델을 매우 간편하게 제작할 수 있습니다.

다음은 4가지 주요 장점과 이 장점을 잘 보여 주는 코드 샘플입니다.

1. 이해하기 쉬운 단순한 코드

Gluon에서 간결하고 명확한 코드를 사용하여 신경망을 정의할 수 있습니다. 미리 정의된 레이어, 최적화 도구, 이니셜라이저를 포함한 플러그 앤 플레이 신경망의 구성 요소 전체 세트를 가져올 수 있습니다. 이에 따라 복잡한 구현 세부 내역이 추상화됩니다. 다음 예제에서는 단 몇 줄의 코드로 단순한 신경망의 정의 방법을 보여줍니다.

# 첫 단계는 모델 초기화
net = gluon.nn.Sequential()
# 그런 다음 모델 아키텍처 정의
with net.name_scope():
    net.add(gluon.nn.Dense(128, activation="relu")) # 첫 번째 계층 - 노드 128개
    net.add(gluon.nn.Dense(64, activation="relu")) # 두 번째 계층 – 노드 64개
    net.add(gluon.nn.Dense(num_outputs)) # 출력 계층

다음 다이어그램은 신경망 구조를 보여 줍니다.

자세한 내용은 이 자습서를 참조하여 Gluon 신경망 구성 요소로 Multilayer Perceptron(MLP)이라고 하는 간단한 신경망을 빌드하는 방법을 알아보십시오. 고급 사용 사례에서도 처음부터 신경망의 일부를 쉽게 작성할 수 있습니다. Gluon을 통해 신경망에서 미리 정의된 사용자 지정 구성 요소를 혼합하여 적용할 수 있습니다.

2. 유연한 구조

신경망 모델 학습은 컴퓨팅 집약적이고, 경우에 따라서는 수일 혹은 수주까지도 소요될 수 있습니다. 많은 딥 러닝 프레임워크는 이 모델을 명확하게 정의하고 학습 알고리즘과 분리하여 이 시간을 단축해 줍니다. 이 엄격한 접근 방식은 상당한 복잡성을 수반하여 디버깅을 어렵게 만듭니다.

하지만 Gluon 접근 방식은 다릅니다. 학습 알고리즘과 신경망 모델을 통합하여 성능을 저하시키지 않으면서 개발 프로세스에 유연성을 더해 줍니다. 이 접근 방식의 중심에는 Gluon trainer 메서드가 있고, 모델을 학습시킬 때 이 메서드를 사용합니다. 이 trainer 메서드는 MXNet autograd 라이브러리에 따라 달라지고, 미분값(기울기, gradient)을 자동으로 계산하는 데 사용됩니다. 미분값(derivate)은 변수의 변경률을 측정하는 수학 계산입니다. 미분값은 학습 알고리즘에 필요한 입력입니다. 이 autograd 라이브러리는 이 수학 계산을 효율적으로 구현하면서도 Gluon이 부여해 주는 유연성을 지원하는 데 필수적입니다. 이제 단순한 중첩 for 루프로 구성된 학습 알고리즘을 정의하려면 autogradtrainer를 통합하면 됩니다.

epochs = 10

for e in range(epochs):
    for i, batch in enumerate(train_data):
        data = batch.data[0]
        label = batch.label[0]
        with autograd.record(): # 파생물 기록 시작
            output = net(data) # 순방향 반복
            loss = softmax_cross_entropy(output, label)
            loss.backward()
        trainer.step(data.shape[0])

이처럼 유연한 구조 덕분에 코드가 직관적이고 디버깅이 용이하며, 더 수준 높은 모델을 개발할 수 있습니다. 친숙한 기본 Python 언어 구문( for 루프 또는 if 문 등)을 신경망 내에서나 알고리즘 일부로 사용할 수 있습니다. 모델과 알고리즘을 통합하여 모델의 모든 코드를 실행하므로, 버그를 유발하는 특정 코드 줄을 보다 쉽게 확인할 수 있습니다.

3. 동적 그래프

특정 시나리오에서 신경망 모델은 학습 과정 중에 그 모양과 크기를 변경해야 하는 경우도 있습니다. 특히 신경망으로 공급되는 데이터 입력이 가변적일 때 그러한 변경이 필수적이며, 이는 입력된 각 문장의 길이가 각기 다른 자연 언어 처리(NLP)에서는 일반적입니다. Gluon을 사용하면 신경망 정의가 동적이므로, 원하는 어느 구조든 실행 중에 Python의 기본 제어 흐름을 사용하여 빌드할 수 있습니다.

예를 들어, 이와 같은 동적 신경망 구조는 2015년 NLP의 주요 성과인 Kai Sheng Tai, Richard Socher, Chris Manning의 트리 구조화된 Long Short-Term Memory(LSTM) 모델을 빌드하기가 더 쉽습니다.  트리 LSTM은 한 쌍의 문장이 그 의미가 동일한지 여부를 식별하는 등의 작업에 사용되는 매우 효과적인 모델입니다. 기본적으로 두 문장의 의미가 동일한 다음 예를 들겠습니다.

  • Michael threw the football in front of the player. – “Michael이 던진 이 공은 목표에 도달하지 못했습니다.”
  • The ball was thrown short of the target by Michael. – “Michael이 던진 공은 목표에 닿지 못했습니다.”

문장을 알려진 시퀀스 학습 모델인 RNN에 입력으로 집어 넣고 분류할 수도 있습니다. 하지만 사전 지식이 있는 언어에서 종종 문제가 생긴다는 것이 트리 LSTM의 기본적인 아이디어입니다. 예를 들어 문장에 문법 구조가 나와 있고, 문장에서 이 구조를 추출할 수 있는 강력한 도구가 있다고 합시다. 단어들을 연결하여 아래 그림과 같이 문장의 문법 트리 구조를 모방한 트리 구조 신경망을 만들 수 있습니다.

(Stanford 자연 언어 처리(NLP) 그룹)

이렇게 하려면 각 예제마다 다른 신경망 구조를 실행 중에 빌드해야 합니다. 기존의 프레임워크로는 어렵지만, Gluon은 문제 없이 이런 작업을 처리할 수 있습니다. 아래 코드에서 모델 학습을 반복하는 루프를 만들고 autogradtrainer 이점을 역시 활용하는 법을 알 수 있습니다. 이와 같이, 모델에서 문장의 트리 구조를 차례로 순회하면서 학습할 수 있습니다.

def forward(self, F, inputs, tree):
	children_outputs = [self.forward(F, inputs, child)
    for child in tree.children]
  #각 입력 문장의 구문을 기반으로 신경망 빌드
  #모델 정의와 학습 과정 중의 구조
  …

4.  높은 성능 지원

Gluon이 지원하는 유연성 덕분에 신경망 모델로 프로토타입을 쉽게 제작하고 실험을 진행할 수 있습니다. 그런 다음, 속도가 유연성보다 더 중요하게 되면(모든 학습 데이터를 피드할 준비가 된 경우 등) Gluon 인터페이스를 통해 신경망 모델을 쉽게 캐시에 저장하여 고성능을 확보하고 메모리 공간을 절약할 수 있습니다. 이때 프로토타입 제작을 완료하고 대규모 데이터세트에서 이 프로토타입을 테스트할 준비가 된 후 신경망을 설정하고 나면 약간의 조정만이 필요합니다. 신경망 계층을 쌓아 올리는 데 Sequential (앞의 그림 참조)을 사용하지 말고 HybridSequential을 사용해야 합니다. 그 기능은 Sequential과 동일하지만 최적화된 기본 엔진 호출을 지원하므로 모델 아키텍처의 일부 또는 전체를 나타낼 수 있습니다.

net = nn.HybridSequential()
with net.name_scope():
    net.add(nn.Dense(128, activation="relu")) # 첫 번째 계층 - 노드 128개
    net.add(nn.Dense(64, activation="relu")) # 두 번째 계층 – 노드 64개
    net.add(nn.Dense(10)) # 출력 계층

그 다음, HybridSequential를 컴파일하고 최적화하기 위해 hybridize 메서드를 호출할 수 있습니다.

net.hybridize()

이제 모델을 학습시킬 때에도 기본 MXNet 인터페이스를 사용할 때와 거의 동일한 고성능을 활용하고 메모리 사용량을 줄일 수 있습니다.

5. Gluon 시작하기

Gluon을 사용하려면 MXNet 설치 과정 가이드에 나오는 간단한 단계에 따라 실행하거나 클라우드에서 Deep Learning Amazon 머신 이미지(AMI)를 실행하면 됩니다. 그런 다음, 앞서 다룬 여러 구성 요소를 사용하는 방법을 단계별로 실행하여 Multilayer Perceptron(MLP)이라고 하는 간단한 2계층 신경망을 빌드하고 학습합니다. Python 버전 3.3 이상에서 Jupyter 노트북을 사용하여 이 예제를 실행하는 것이 좋습니다.

먼저, MXNet를 가져오고 gluon 라이브러리뿐 아니라 다른 필수 라이브러리 autogradndarray를 붙잡습니다.

import mxnet as mx
from mxnet import gluon, autograd, ndarray

그런 다음 데이터를 가져오고 이 데이터에서 어느 정도 전처리를 실행합니다. 많이 사용되는 MNIST 데이터세트를 가져오며, 여기에는 손으로 쓴 숫자가 나오는 대규모 이미지 모음과 이 이미지에 적합한 레이블이 포함되어 있습니다. 물론, 사진을 어레이에 맞게 재구성하여 쉽게 처리하고 어레이를 MXNet 기본 NDArray 객체로 변환할 수도 있습니다.

# 기본 MXNet utils 함수를 사용하여 MNIST 가져오기
data = mx.test_utils.get_mnist()

# 학습 데이터 설정 및 사진 재구성
train_data = data['train_data'].reshape((-1, 784))
train_label = data['train_label']

# 테스트 데이터 설정 및 사진 재구성
test_data = data['test_data'].reshape((-1, 784))
test_label = data['test_label']

# 데이터를 NDArrays로 변환
train_data_mx = mx.nd.array(train_data)
train_label_mx = mx.nd.array(train_label)
test_data_mx = mx.nd.array(test_data)
test_label_mx = mx.nd.array(test_label)

그 다음, 반복자를 만들어 학습 데이터를 보유합니다. 반복자는 큰 데이터 세트를 순회할 때 유용한 객체 클래스입니다. 이 작업을 진행하기 전에 먼저 배치 크기를 설정하여 각 학습 알고리즘을 반복하는 동안 신경망이 처리할 데이터 분량을 정의합니다. 이 경우에는 32입니다.

batch_size = 32
train_data = mx.io.NDArrayIter(train_data_mx, train_label_mx, batch_size,  
                                 shuffle=True)           

이제 바로 실제 신경망을 정의할 수 있습니다. 계층 2개를 만들려고 합니다. 첫 번째 계층에는 노드 128개가 있고, 두 번째 계층에는 노드 64개가 있습니다. 이 두 계층 모두 Rectified Linear Unit(ReLU)이라는 활성화 함수를 포함합니다. 활성화 함수는 모델 입력과 출력 간의 비선형 관계를 표현하기 위해 중요합니다. 또한, 노드 개수가 가능한 총 출력 개수와 일치하도록 출력 계층을 설정해야 합니다. MNIST의 경우에 사진은 10개(즉, 0~9)뿐인 숫자를 나타내기 때문에 가능한 출력이 10개뿐입니다.

# 첫 단계는 모델 초기화
net = gluon.nn.Sequential()
# 그런 다음 모델 아키텍처 정의
with net.name_scope():
    net.add(gluon.nn.Dense(128, activation="relu")) # 첫 번째 계층 - 노드 128개
    net.add(gluon.nn.Dense(64, activation="relu")) # 두 번째 계층 – 노드 64개
    net.add(gluon.nn.Dense(10)) # 출력 계층

모델 학습 절차를 시작하기 전에 모델의 파라미터를 초기화하고 손실 및 모델 옵티마이저 함수를 설정해야 합니다.

# 표준편차가 0.05인 정규 분포에서 모델의 파라미터 전체에 대해 
# 임의 값으로 시작
net.collect_params().initialize(mx.init.Normal(sigma=0.05))

# softmax cross entropy loss 함수를 사용하여 # 모델이 정답을 얼마나 잘 예측할 수 있는지 평가하도록 선택
softmax_cross_entropy = gluon.loss.SoftmaxCrossEntropyLoss()

# SGD(Stochastic Gradient Descent) 학습 알고리즘을 사용하고 
# 학습 속도 하이퍼파라미터를 .1로 설정하도록 선택
trainer = gluon.Trainer(net.collect_params(), 'sgd', {'learning_rate': .1})

이제 모델 학습 알고리즘을 정의할 시간입니다. 반복할 때마다 다음 4단계를 거칩니다. (1) 데이터 한 배치를 입력 받고 (2) 신경망 모델의 출력과 실제 값의 차이를 계산하고 (3) autograd를 사용하여 손실 함수로부터 모델 파라미터의 미분값을 계산하고 (4) trainer 메서드를 사용하여 손실 함수가 감소하는 방향으로 파라미터를 최적화합니다. 전체 Epoch 개수를 10으로 설정했습니다. 즉, 전체 학습 데이터 세트를 10회 반복합니다.

epochs = 10

for e in range(epochs):
    for i, batch in enumerate(train_data):
        data = batch.data[0]
        label = batch.label[0]
        with autograd.record(): # 파생물 기록 시작
            output = net(data) # 순방향 반복
            loss = softmax_cross_entropy(output, label)
            loss.backward()
        trainer.step(data.shape[0])

이제 학습된 신경망 모델이 준비되었으므로, 확보한 테스트 데이터를 사용하여 이 모델의 정확도를 확인해 보겠습니다. 예측한 값과 실제 값을 비교하여 정확도를 계산할 수 있습니다.

acc = mx.metric.Accuracy()# 정확성 지표 초기화
output = net(test_data_mx) # 신경망을 통해 테스트 데이터 실행
predictions = ndarray.argmax(output, axis=1) # 테스트 데이터 예측
acc.update(preds=predictions, labels=test_label_mx) # 정확성 계산
print(acc)

Gluon 인터페이스와 딥 러닝에 대해 자세히 알아 보려면, 종합 자습서 모음을 참조하면 됩니다. 이 자습서에서는 딥 러닝 소개부터 첨단 신경망 모델의 구현 방법에 이르기까지 자세한 내용을 다룹니다.

작성자 소개
Vikram Madan은 AWS Deep Learning 담당 선임 제품 관리자입니다. 특히 오픈 소스 Apache MXNet 엔진에 초점을 두고 딥 러닝 엔진을 보다 쉽게 사용하도록 해주는 제품 연구에 주력하고 있습니다. 여가 시간에는 장거리 달리기와 다큐멘터리 시청을 즐기곤 합니다.

 

이 글은 Introducing Gluon — An Easy-to-Use Programming Interface for Flexible Deep Learning의 한국어 번역으로, 강지양 AWS 솔루션즈 아키텍트께서 감수하였습니다.

Amazon Elasticsearch Service, VPC 지원 기능 출시

지난주 Amazon VPC 내부에서 NAT 인스턴스나 인터넷 게이트웨이 없이도 Amazon Elasticsearch Service 도메인에 접속할 수 있습니다. Amazon ES용 VPC 지원은 구성하기 쉽고 안정적이면서도 보안이 한층 강화되어 있습니다. VPC 지원을 통해 다른 서비스와 Amazon ES 간 트래픽이 퍼블릭 인터넷과 분리된 AWS 네트워크 내에 완전히 유지됩니다. 기존 VPC 보안 그룹을 사용하여 네트워크 액세스를 관리하고, AWS Identity and Access Management(IAM)를 사용하여 보호력을 강화할 수 있습니다. Amazon ES 도메인용 VPC 지원은 추가 비용 없이 사용할 수 있습니다.

시작하기

VPC에서 Amazon Elasticsearch Service 도메인을 쉽게 만들 수 있습니다. 클러스터를 만들고 나서 [“VPC access”]를 선택할 때 사용하는 일반적인 단계 전체를 실행합니다.

됐습니다. 이제 다 끝났습니다. 이제 VPC 내에서 도메인에 액세스할 수 있습니다!

알아둘 사항

VPC를 지원하기 위해 Amazon ES는 엔드포인트를 사용자의 VPC의 서브넷 1개 이상에 배치합니다. Amazon ES는 클러스터의 각 데이터 노드별로 VPC에 탄력적 네트워크 인터페이스(ENI)를 배치합니다. 각 ENI는 서브넷 IPv4 범위의 프라이빗 IP 주소를 사용하고 퍼블릭 DNS 호스트 이름을 수신합니다. 영역 인식이 활성화되어 있으면 Amazon ES는 각기 다른 가용 영역에 있는 서브넷 2개에 엔드포인트를 만들기 때문에, 데이터 내구성이 강화됩니다.

클러스터의 노드 개수는 IP 주소 개수의 3개로 확보해야 합니다. 영역 인식이 활성화되어 있으면 이 개수를 2로 나눌 수 있습니다. 사용자는 Amazon ES에서 별도의 서브넷을 만드는 것이 가장 좋습니다.

참고 사항:

자세한 내용은 Amazon ES 설명서를 참조하십시오.

Randall;

이 글은 Amazon Elasticsearch Service now supports VPC의 한국어 번역입니다.