Category: Compute


Amazon EC2 인스턴스 및 VPC IPv6 지원 시작

모바일 앱, 커넥티드 디바이스 및 IoT 분야에서 인터넷의 지속적인 성장으로 업계 전반에 IPv6 전환이 촉발되었습니다. 2010 년에서 부터 미국 정부 기관은 공개 서버 및 서비스를 가능한 빨리 IPv6로 옮기고 있습니다. 128 비트의 주소 공간을 갖춘 IPv6는 성장 여지가 충분하며 새로운 애플리케이션 및 연결 확장성에 큰 도움이 됩니다.

Amazon EC2 및 VPC IPv6 지원
올해 초 Amazon S3, IPv6 주소 지원 시작을 시작으로 Amazon CloudFront, Route53, WAF 및 S3 Transfer Acceleration의 IPv6 지원을 진행하였습니다. 오늘 그 다음 단계로 Virtual Private Cloud (VPC)와 VPC내 EC2 인스턴스에 대한 IPv6 지원을 시자하며, 우선 US East (Ohio) 리전부터 시작합니다.

IPv6 지원은 신규 혹은 기존 VPC에서도 가능하며 VPC-VPC간에도 콘솔 (혹은 API 및 CLI)를 통해 선택할 수 있습니다.

각 VPC은 개별적 /56 주소 영역을 Amazon GUA (Global Unicast Address)에서 얻으며, 각 VPC내 서브넷에는 /64를 할당할 수 있습니다.

Amazon S3에서 처럼 각 인스턴스에 해당 DNS 항목과 함께 IPv4 주소와 IPv6 주소를 할당하는 이중 스택 모델을 사용합니다. 두 버전의 프로토콜을 모두 지원하므로 리소스 및 응용 프로그램에 접근에 대한 호환성과 유연성이 보장됩니다.

VPC 내의 보안 그룹, 라우팅 테이블, 네트워크 ACL, VPC 피어링, 인터넷 게이트웨이, Direct Connect, VPC 흐름 로그(Flow Logs) 및 DNS 질의 등은 모두 현재와 같은 방식으로 작동합니다. 애플리케이션 로드밸런서(ALB)의 이중 스택 모델에 은 예정되어 있으며, 장기적인 로드맵을 가능한 한 빨리 알려 드리겠습니다.

AWS Direct Connect IPv6 지원
AWS Direct Connect Console내 가상 인터페이스(VIFs)에서 IPv4 및 IPv6 주소를 선택할 수 있습니다.

각 VIF는 BGP 피어링 세션을 각각 IPv4와 IPv6을 지원 합니다.

신규 Egress-Only 인터넷 게이트웨이 IPv6 지원

IPv6에 주요 특징 중 하나는 모든 주소가 인터넷 라우팅이 가능하여, 인터넷에 연결할 수 있다는 것입니다. IPv4 전용 VPC에서 공용 IP 주소를 EC2 인스턴스에 할당하면 1:1 NAT(Network Address Translation)가 인스턴스와 사설 주소로 설정됩니다. IPv6을 사용하는 VPC에서 각 인스턴스의 주소는 공개되어 있습니다. 직접 연결을 통해 많은 네트워킹 문제를 해결하지만, 사설 서브넷을 만드는 또 다른 메커니즘이 필요합니다.

오늘 IPv6 지원을 통해 VPC용 비공개 서브넷을 구현하는 데 사용할 수 있는 새로운 Egress-Only Internet Gateway (EGW)를 소개합니다. EGW는 NAT 인스턴스의 집합보다 설치 및 사용하기가 쉽고 무료로 사용할 수 있습니다. 수신 트래픽을 차단하면서 아웃 바운드 트래픽을 허용 할 수 있습니다 (인터넷 게이트웨이가 보안 그룹과 연결). 일반적인 방식으로 EGW를 생성하고, 이를 사용하여 인바운드 IPv6 트래픽을 제한할 수 있습니다. IPv4 트래픽에 NAT 인스턴스 또는 NAT 게이트웨이를 계속 사용할 수 있습니다.

정식 출시
EC2 IPv6 지원은 US East (Ohio) 리전에서 오늘 부터 추가 비용 없이 사용 가능합니다. M3, G2를 제외한 모든 현 세대 EC2 인스턴스 타입에서 사용 가능합니다.

다른 리전의 IPv6 지원 확대는 계획 중에 있으며, 준비되는 대로 계속 알려드리겠습니다.

Jeff;

이 글은 AWS re:Invent 2016 신규 출시 소식으로 New – IPv6 Support for EC2 Instances in Virtual Private Clouds의 한국어 번역입니다. re:Invent 출시 소식에 대한 자세한 정보는 12월 온라인 세미나를 참고하시기 바랍니다.

AWS Step Functions– 시각적 워크플로 기반 분산 애플리케이션 개발용 신규 서비스

오늘 날 다양한 웹 기반 마이크로 서비스를 연결하여 복잡한 분산 응용 프로그램을 보다 쉽게 만들 수 있어야 합니다. 대부분 개발자는 복잡한 비즈니스 프로세스를 구현하든 간단한 사진 업로드를 위한 처리를 하던지 가급적 관리 작업 보다는 코드 개발에 집중하고, 익숙한 개발 도구와 라이브러리를 사용하면서 견고하고 확장성 높은 비용 효율적인 안정적 응용 프로그램을 구축하기를 바라고 있습니다.

AWS Step Functions 소개
위의 요구 사항에 부합하는 AWS Step Functions을 오늘 출시합니다. 여러분이 만든 애플리케이션의 구성을 시각적 워크플로를 통해 설정하고, Step Functions 콘솔에서 각 머신(machine)에서 높은 확장성으로 진행하는 과정을 정의해 줄 수 있습니다.

각 머신은 상태 세트를 정의하고 이들 사이의 그 상태 값을 이전합니다. 각 단계별 상태는 병렬 혹은 순서대로 활성화 될 수 있습니다. Step Functions에서는 다음 단계로 가기 전에 모든 병렬적인 상태가 완료되도록 합니다. 이들 상태를 기반으로 작업 및 의사 결정 및 컴퓨터를 통한 과정 제어 등을 수행합니다.

아래에는 상태 머신(state machine)에 대한 일부분을 표시한 것입니다.

각 상태 머신의 여러 복제본은 동시에 독립적으로 실행할 수 있습니다. 각 복제본은 실행물(execution)이라고 부릅니다. Step Functions는 수 천개의 실행물을 동시에 실행할 수 있도록 하여 원하는 수준의 확장성을 제공합니다.

어떤 상태가 실행될 때 수행할 작업을 지정하는 데는 두 가지 다른 방법이 있습니다. 먼저, 상태가 실행될 때 동기적으로 호출 될 Lambda 함수를 제공 할 수 있습니다. 둘째, 액티비티(Activity) 이름을 제공할 수 있습니다. 이것은 수행할 작업에 대해(API를 통해) 가져올 장기적인 실행 작업 함수에 대한 참조값입니다. 어느 쪽이든, 코드는 JSON 입력을 통해 JSON 출력을 반환 받습니다.

상태 시스템의 일부로서 오류 처리 동작을 지정하고 로직를 다시 시도 할 수 있습니다. 따라서, 코드 한 부분에서 일시적인 문제로 인해 일시적인 오류가 발생하더라도 원활하게 실행되는 강력한 다중 단계 앱을 만들 수 있습니다.

Step Function 살펴 보기
AWS 관리 콘솔에 들어가 상태 시스템을 설정해 보겠습니다. 정식 애플리케이션은 AWS 단계 함수 API (아래에서 설명)를 사용하여 상태 시스템을 생성하고 실행합니다.

우선 간단한 AWS Lambda 함수를 작성해 보겠습니다.

함수의 ARN 값을 복사합니다.

이제 AWS Step Functions 콘솔로 가서  Create a State Machine을 누르고,  이름(MyStateMachine)과 함께 실행할 기본 샘플 워크 플로를 선택합니다.

Hello World를 클릭하고, 상태 머신에 대한 JSON 모델을 만들기 위해 Parallel 요소를 선택합니다.

{
  "Comment": "A simple example of the Steps language using an AWS Lambda Function",
  "StartAt": "Hello",

  "States": {
    "Hello": {
      "Type": "Task",
      "Resource": "arn:aws:lambda:eu-west-1:99999999999:function:HelloWord_Step",
      "Next": "Parallel"
    },

    "Parallel": {
      "Type": "Parallel",
      "Next": "Goodbye",
      "Branches": [
        {
          "StartAt": "p1",
          "States": {
            "p1": {
                  "Type": "Task",
                  "Resource": "arn:aws:lambda:eu-west-1:9999999999:function:HelloWord_Step",
              "End": true
            }
          }
        },

        {
          "StartAt": "p2",
          "States": {
            "p2": {
                  "Type": "Task",
                  "Resource": "arn:aws:lambda:eu-west-1:99999999999:function:HelloWord_Step",
              "End": true
            }
          }
        }
      ]
    },

    "Goodbye": {
      "Type": "Task",
      "Resource": "arn:aws:lambda:eu-west-1:99999999999:function:HelloWord_Step",
      "End": true
    }
  }
}

Preview 를 누르면 아래와 같이 시각적으로 보입니다.

Step Functions을 실행할 IAM 역할을 지정합니다.

이제 모든 설정을 마치고, 상태 머신을 실행할 수 있습니다. 첫번째 함수를 통과하는 JSON 블럭을 가지고 시작해 볼 수 있습니다.

Start Execution을 누르자 마자 상태 머신이 실행되고, 실행 순서에 따라 아래와 같이 상태와 상태 사이의 전이가 일어납니다.

Lambda 콘솔에 가면, 아래와 같이 4번의 함수 실행을 볼 수 있습니다. (시간이 촉박하면, 네 개의 기능을 따로 만들지 않아도 됩니다.)

Step Functions는 각 단계별로 정보를 모두 기록하고 이를 콘솔에서 볼 수 있습니다.

AWS Step Functions API
앞에서 말씀 드린 대로, AWS Step Funcitons는 API로 실행 가능하며, 아래에 주요 기능에 대한 API 함수 입니다.

  • CreateStateMachine –  JSON을 통해 신규 상태 머신 생성
  • ListStateMachines – 상태 머신 목록 가져오기
  • StartExecution – 상태 머신 (비동기적으로) 실행하기
  • DescribeExecution – 실행물 정보 가져오기
  • GetActivityTask – 실행할 신규 작업 가져오기

새 객체가 S3 버킷에 업로드 될 때마다 Lambda 함수를 실행할 수 있습니다. 이 함수는 StartExecution을 호출하여 상태 머신 실행을 시작할 수 있습니다. 상태 머신은 (예를 들어) 이미지 유효성 검사, 다양한 크기 및 형식 병렬 생성, 특정 유형의 콘텐트 확인 및 데이터베이스 항목 업데이트를 수행 할 수 있습니다.

동일한 기능을 AWS CLI에서도 사용할 수 있습니다.

개발 도구
신규 statelint gem 파일을 사용하여 연결할 수 없는 상태, 터미널 상태 누락과 같은 일반적인 오류에 대해 수기 혹은 컴퓨터에서 생성된 JSON 로그를 확인할 수 있습니다.

AWS GitHub 레포지터리에서 다운로드하십시오 (RubyGems) 다음과 같이 설치하십시오.

$ sudo gem install j2119-0.1.0.gem statelint-0.1.0.gem

Here’s what happens if you have a problem:

$ statelint my_state.json
2 errors:
 State Machine.States.Goodbye does not have required field "Next"
 No terminal state found in machine at State Machine.States

잘 진행이 된다면,

$ statelint my_state.json

정식 출시
AWS Step Functions는 오늘 부터 US East (Northern Virginia), US East (Ohio), US West (Oregon), EU (Ireland), Asia Pacific (Tokyo) 리전에서 사용 가능합니다.

AWS 프리티어를 통해  매월 4,000 번의 상태 전이를 수행할 수 있습니다. 그 이후로는 1,000회당  $0.025의 요금을 부가합니다.

Jeff;

AWS Lambda@Edge – 미리 보기 출시

지난 주에 한 AWS 고객으로 부터 Hacker News에 올린 댓글을 통해 한 통의 메일을 받았습니다.

그는 싱글 페이지 애플리케이션(SPA)을 빠른 속도의 웹 페이지 배포가 가능한 Amazon CloudFront를 통해 Amazon S3에 정적 웹 호스팅으로 서비스를 하고 있는데, 그 페이지에서 AWS Elastic Beanstalk에서 운용중인 자체 API를 통해 개별 사용자를 위한 동적인 작업을 진행하고 있다고 합니다. 그 분이 설명한 문제는 다음과 같습니다.

최근의 웹 환경에서는 검색 엔진을 위해 별도 색인을 생성하고 Facebook 및 Twitter 내에서 콘텐츠 미리보기가 올바르게 표시 되려면 각 페이지의 미리 렌더링 된 버전을 제공해야 합니다. 이를 위해서는 사용자가 Google 사이트를 방문 할 때마다 Cloudfront의 프론트엔드에 서비스를 제공해야 합니다. 그러나 사용자 에이전트가 Google/Facebook/Twitter 인 경우 미리 렌더링된 사이트 버전으로 리디렉션을 해야합니다.

한 명의 고객이 보내준 사용 사례를 넘기지 않고, 우리가 앞으로 이러한 문제를 개선하겠다는 사실을 알려주었습니다. 여러 고객들이 이미 엣지에서 신속하게 의사 결정을 내림으로써 맞춤형 최종 사용자 경험을 제공하고자 하는 의견을 주었습니다.

(레이턴시 기준) 고객에게 가까이 있는 위치에서 HTTP 요청을 “지능적으로” 처리하는 데는 많은 주목할만한 사용 사례가 있습니다. 예를 들어, HTTP 헤더 검사, 접근 제어 (특정 쿠키가 필요함), 모바일 디바이스 탐지, A/B 테스트, 크롤러 또는 봇에 대한 신속한 처리 또는 특수한 별도 처리, 레거시 시스템을 수용 할 수 있는 사용자 친화적인 URL 리다이렉트 등입니다. 이런 요구 사항 대부분은 단순한 패턴 일치 및 규칙으로 표현할 수 있는 것보다 좀 더 복잡한 처리 및 의사 결정을 필요로합니다.

AWS Lambda@Edge 서비스 소개
이러한 요구 사항을 지원하기 위해 AWS Lambda@Edge 미리 보기를 시작합니다. 이 새로운 람다 기반 처리 모델을 사용하면, 전 세계에 산재하는 AWS 엣지 로케이션에서 JavaScript 코드를 작성하여 실행할 수 있습니다.

이제는 가벼운 요청 처리 로직을 작성하고 CloudFront 배포판을 통과하는 요청(request) 및 응답(response)을 처리 할 수 있습니다. 아래와 같이 네 가지 별개의 이벤트에 대한 응답으로 코드를 실행할 수 있습니다.

Viewer Request – 콘텐츠 캐시 여부에 관계없이 모든 요청에 대해 코드가 실행됩니다. 다음은 간단한 헤더 처리 코드입니다.

JavaScript
exports.viewer_request_handler = function(event, context) {
  var headers = event.Records[0].cf.request.headers;
  for (var header in headers) {
    headers["X-".concat(header)] = headers[header];
  }
  context.succeed(event.Records[0].cf.request);
}

Origin Request – Your code will run when the requested content is not cached at the edge, before the request is passed along to the origin. You can add more headers, modify existing ones, or modify the URL.

Viewer Response – 캐시 여부와 관계없이 모든 응답에서 실행됩니다. 이것을 사용하여 브라우저로 다시 전달할 필요가 없는 일부 헤더를 정리할 수 있습니다.

Origin Response – 캐시 실패로 인해 원본(Origin)에서 다시 가져와서 엣지(Edge)에 반응한 후 코드를 실행합니다.

개별 코드는 URL, 메소드, HTTP 버전, 클라이언트 IP 주소 및 헤더 등 HTTP 요청 및 응답에서 나오는 여러 데이터를 접근할 수 있습니다. 간단하게 헤더를 추가, 수정 및 삭제할 수도 있고, HTTP 바디(Body)를 포함한 모든 값을 변경할 수 있습니다. 처음에는 헤더를 추가, 삭제 및 수정할 수 있습니다. 곧 바디를 포함한 모든 값에 대한 읽기 / 쓰기 접근 권한을 갖게됩니다.

자바 스크립트 코드는 HTTP 호출/응답의 한 부분이 되기 때문에 재빠르고 의미 있는 스스로 완결적인 코드여야 합니다. 다른 웹 서비스를 호출 할 수 없으며, 다른 AWS 리소스에 접근할 수 없습니다. 128MB의 메모리 내에서 실행되어야 하며 50ms 이내에 실행이 끝나야 합니다.

처음 시작을 해보려면, 새로운 람다 함수를 생성하고, CloudFront 배포를 트리거로 설정한 후 새 Edge 런타임을 선택하면됩니다.

CynNG_pVQAADVbR

그런 다음, 코드를 만들면 됩니다. Lambda 함수는 엣지 로케이션의 여러 가지 측면을 개선하는데 도움을 줄 것입니다.

미리 보기 신청하기
이 기능이 새로운 애플리케이션 및 개발 도구로서 창의적인 적용을 해 볼 수 있을 것으로 생각하고, 여러분이 직접 해 보시기를 권해 드립니다.

오늘 AWS Lambda@Edge 미리 보기를 시작하였고, 직접 해보시려면 미리 보기 신청 페이지에서 등록해 주시기 바랍니다.

Jeff;

이 글은 AWS re:Invent 2016 신규 출시 소식으로 AWS Lambda@Edge – Preview의 한국어 번역입니다. re:Invent 출시 소식에 대한 자세한 정보는 12월 온라인 세미나를 참고하시기 바랍니다.

AWS Batch – 배치(Batch) 컴퓨팅 관리 서비스 출시

제가 대학에 들어갔던 1978년에 Montgomery College 전산학과에는 IBM 370/168라는 메임 프레임이 있었고, 저는 카드 천공기를 통해 Job Control Language (JCL) 문법을 작성하는 것을 배웠습니다. (그 뒤로 FORTRAN, COBOL, PL/I 컴파일러가 나왔죠.) 작업한 카드 덱을 제출하기 위해 각 작업 식별자와 교환하여, IT 부서 운영자에게 건네 주면 인쇄된 결과와 카드 덱을 받으러 몇 시간 후에 다시 와야 했습니다. 결과물을 공부하고, 앞의 작업을 다시 하고 몇 시간 후에 오던 것을 반복하곤 했는데, 나중에 우리 작업의 실행 시간은 불과 몇 초 밖에 걸리지 않았다는 것을 알고 충격을 받았습니다. 학교 IT 부서에서 수행할 작업이 네 번째 우선 순위에 배정되었다면, 학생들이 준 것은 여덟번째로 매우 낮은 것이었습니다. 과거 우선 순위 선정 매커니즘의 목표는 중요한 업무에 우선해서 값비싼 하드웨어를 전부 사용하는 것이었습니다. 학교에서 학생들의 생산성은 자원을 효율적으로 사용하는 데 있어 후순위였던 것이죠.

현대적인 배치(Batch) 컴퓨팅
오늘날 배치(Batch) 컴퓨팅은 매우 중요합니다! 영화 스튜디오, 과학자, 연구원, 수치 분석가 및 기타 사람들이 쉽게 대용량 ​​컴퓨팅 성능에 접근할 수 있게 되어, 컴퓨팅 사이클에 대해 활용하고자 하는 열의를 갖게 되었습니다. 많은 기업 조직에서는 오픈 소스 또는 상용 작업 스케줄러로 사내 컴퓨팅 클러스터를 직접 구축하여, 이러한 요구 사항을 충족시키기 위해 노력해 왔습니다. 그런데, 여전히 과거와 같이 우선 순위를 적용할 수 밖에 없는 충분한 양의 컴퓨팅 용량은 아닌 것 같습니다. 이들 기존 사내 클러스터는 구축 및 유지 보수에 비용이 많이 들고, 동일한 서버에 동일한 사양의 대형 프로세서로 구성되는 경우가 많습니다.

우리는 클라우드 컴퓨팅을 통해 다양한 타입의 EC2 인스턴스를 신속히 제공할 수 있고, 변화하는 요구 사항에 따라 확장 및 축소 할 수 있는 확장성과 사용한 만큼 지불하거나 경매를 통한 가격 책정 모델을 통해 배치 컴퓨팅 모델을 보다 효과적으로 변경할 수 있다고 생각했습니다. 과거에는 AWS 고객 역시 EC2 인스턴스, 콘테이너, 알림, CloudWatch 모니터링 등을 사용하여 자체 배치 처리 시스템을 구축했습니다. 이런 것들이 매우 일반적인 AWS 사용 사례 였기 때문에 이를 위한 관리형 서비스가 필요하다는 결론을 얻었습니다.

AWS Batch 서비스 출시
배치 컴퓨팅에 대한 전체 관리형 서비스인 AWS Batch를 오늘 출시합니다. 이를 통해 배치 관리자, 개발자 및 사용자들은 배치용 클러스터를 따로 구축, 관리 및 모니터링 할 필요 없이 대용량 클라우드 컴퓨팅 자원을 활용할 수 있게 되었습니다. 소프트웨어 구매나 설치도 필요도 업습니다.

AWS Batch에서는 관리 상 불필요한 부담을 덜면서 동적으로 확장되는 EC2 인스턴스 세트에 여러분의 콘테이너 이미지와 애플리케이션을 통해 배치 작업을 할 수 있습니다. 클라우드를 통한 효율적이고 사용하기 쉬운 서비스로서 Amazon EC2 및 EC2 스팟 인스턴스가 제공하는 탄력성을 통한 대용량 병렬 작업을 할 수 있게 되었고, Amazon S3, DynamoDB 및 SNS 같은 기존 서비스와도 안전하고 쉽게 연동할 수 있습니다.

우선 AWS Batch에서 사용되는 몇 가지 중요한 용어와 개념을 살펴 보겠습니다. (배치 작업을 많이 하시는 경우 이미 익숙하실 수 있습니다.)

  • 작업(Job) – AWS Batch에 제공되는 하나의 작업 단위 (쉘 스크립트, 리눅스 실행 파일 또는 콘테이너 이미지)입니다. 작업 정의(Job Definition)에 의해 정의한 파라미터 값을 통해 EC2에서 콘테이너화 되어 실행 합니다. Job에서 다른 작업을 ID로 참조할 수 있습니다. AWS Batch에서는 각 작업을 독립적으로 실행하고, (파라메트릭 스윕 및 몬테카를로 시뮬레이션에 적합한) 어레이 작업(Array Jobs) 역시 지원합니다. 어레이 작업은 병렬적으로 작업이 되고, 동시에 가용 컴퓨팅 자원을 관리하면서 실행합니다.
  • 작업 정의(Job Definition) – 작업을 어떻게 실행할지 정합니다. AWS Identity and Access Management (IAM) 역할을 포함한 AWS 자원 접근 제어, CPU와 메모리와 요구 사항 등의 값을 설정합니다. 이러한 정보를 통해 개별 콘테이너 설정 값, 환경 변수, 마운트 지점 등을 정하게 됩니다. 개별 작업을 시작 될 때, 이들 값들이 재정의 됩니다.
  • 작업 큐(Job Queue) – 컴퓨팅 환경이 예약 될 때까지 작업이 있는 곳으로, 우선 순위 값은 각 대기열와 연결됩니다.
  • 스케줄러(Scheduler) –작업 큐와 함께 작업을 언제 어디서 어떻게 실행할지 결정합니다. AWS Batch 스케줄러는 FIFO(First-in, first-out) 기반이며 작업 사이의 의존성을 인지합니다. 우선 순위를 지정하고, 같은 컴퓨팅 환경 내에서 높은 우선 순위의 큐에 있는 작업부터 낮은 순서로 실행하게 됩니다. 스케줄러는 작업을 위한 적정한 크기의 컴퓨팅 환경을 설정하기도 합니다.
  • 컴퓨팅 환경(Compute Environment) – 작업을 실행하기 위한 관리 혹은 비관리 컴퓨팅 자원으로서, 관리 환경에서는 세부적인 수준에서 인스턴스 타입을 정의할 수 있습니다. c4.2xlargem4.10xlarge 같은 특정한 인스턴스 타입을 지정하거나, 여러분이 원하는 신규 인스턴스 타입을 간단히 지정해도 됩니다. 또한, Spot Market의 경매에 따른 백분율 값에 따라 최소, 희망 혹은 최대 vCPU 숫자를 지정하거나, VPC 서브넷을 지정할 수 있습니다. 이러한 지정 파라미터와 제약 사항을 기반으로 AWS Batch가 원하는 EC2 인스턴스를 효과적으로 켜고 관리하고 종료하게 됩니다. 또한, 직접 컴퓨팅 환경을 구성할 수도 있는데, 이 때 AWS Batch가 사용할 Amazon ECS 클러스터를 직접 설정하고 확장성을 관리하셔야 합니다.

AWS Batch 살펴 보기
AWS 관리 콘솔에서 AWS Batch를 사용할 수 있으며, , AWS Command Line Interface (CLI)나 AWS Batch API를 사용할 수 있습니다.

잠깐 살펴보면 상태 대시보드에 작업, 작업 큐 및 컴퓨팅 환경을 보실 수 있습니다.

Compute environments을 선택하고 Create environment를 통해 작업을 시작할 수 있습니다. 우선 관리형 환경(Managed environment)으로 작업 이름과 IAM 역할(자동으로 생성)을 선택합니다.

그리고 프로비저닝 모델(온디멘드 혹은 스팟)을 설정하고, 원하는 인스턴스 타입(또는 특정 타입) 및 컴퓨팅 환경(vCPU로 측정되는) 크기를 설정합니다.

컴퓨팅 자원과 보안 그룹 등에 필요한 VPC 서브넷를 선택함으로서 설정을 완료합니다.

이제 Create를 누르면, 배치 작업을 위한 컴퓨팅 환경이 (MainCompute) 몇 초내에 생성됩니다.

다음으로, 컴퓨팅 환경에 보낼 작업 큐가 필요합니다. Queues를 선택한 후 Create Queue를 클릭해서 설정을 진행합니다. 모든 값을 기본값으로 선택 한 뒤, 작업 큐를 내 컴퓨팅 환경에 연결하고 Create queue를 누릅니다.

이 역시 몇 초안에 진행 됩니다.

이제 작업 정의를 할 차례입니다. Job definitions를 선택하고, Create를 눌러 작업에 대해 정의합니다. (아래는 아주 간단한 작업으로 아마 여러분은 더 잘하실 수 있을 겁니다.) 제가 만든 작업은 sleep 명령어로 128MB 메모리와 1 vCPU에서 진행됩니다.

환경 변수를 전달하고 접근 권한을 비활성화한 뒤, 프로세스 사용자 이름을 지정하고 콘테이너 내에서 파일 시스템을 사용할 수 있도록 할 수 있습니다.

Save를 눌러 작업 정의를 완료합니다.

이제 작업을 돌려볼 차례입니다. Jobs을 선택한 후 Submit job를 누릅니다.

다양한 측면의 작업의 재정의, 부가적인 태그 추가 등의 기능을 활용할 수 있으며, 이제 Submit을 누릅니다.

그 뒤에 결과가 나옵니다.

Ruby, Python, Node, 또는 Bash 스크립트를 통해서도 작업을 정의할 수 있습니다. 예를 들어, 아래는 루비 코드로 만든 작업입니다.

콘솔에서 작업한 것과 같이 커맨드 라인에서도 create-compute-environment, describe-compute-environments, create-job-queue, describe-job-queues, register-job-definition, submit-job, list-jobs, describe-jobs 명령어로 같은 작업을 수행할 수 있습니다.

AWS Batch API를 사용하여 좀 더 흥미로운 방식으로 배치 작업을 할 수 있습니다. 예를 들어, 새로운 개체(예를 들어, 엑스레이 사진, 지진파 데이터 영상, 3D 이미지 정보)가 Amazon S3 버킷에 업로드 되었을 때 AWS Lambda 함수를 통해 개체를 조사하고, 이를 분석하여 메타 데이터를 뽑아 내거나 하는 작업을 수행할 수 있을 것입니다. SubmitJob 함수는 그렇게 얻어진 데이터를 Amazon DynamoDB에 저장하고 Amazon Simple Notification Service (SNS)로 알림을 보낼 수도 있을 것입니다.

정식 출시 및 가격
AWS Batch는 오늘 부터 US East (Northern Virginia) 리전에서 사용 가능하며, 곧 지원 리전을 계속 확대할 예정입니다. 추가적인 리전 확대와 아울러 AWS Lambda 함수 기반 작업 등 다양한 추가 기능도 선보일 예정입니다.

AWS Batch에는 추가 비용은 없으며, 여러분이 사용하는 AWS 컴퓨팅 리소스 비용만 지불하시면 됩니다.

Jeff;

이 글은 AWS re:Invent 2016 신규 출시 소식으로 AWS Batch – Run Batch Computing Jobs on AWS의 한국어 번역입니다. re:Invent 출시 소식에 대한 자세한 정보는 12월 온라인 세미나를 참고하시기 바랍니다.

AWS Snowball Edge – 클러스터링 및 용량 추가, 로컬 엔드포인트와 Lambda 함수 지원

작년에 AWS Snowball을 출시(블로그 참고) 한 뒤, 많은 업데이트가 있었습니다. 물리적 50TB 데이터 전송 저장 장치로 보안 및 운송의 편리성을 통한 클라우드 데이터 이동에 대한 아주 간단한 해법으로서  그 이후에도, 용량 확대 및 리전 추가 지원 (80 TB), 작업 관리 API 및 S3 어댑터, HIPAA 호환, HDFS 가져오기 지원 등의 업데이트가 이루어졌습니다.

위의 모든 개선 사항 역시 중요했지만, 제품 기본 특성은 변경하지 않았습니다. 지난 1년간 많은 AWS 고객이 Snowball을 활용하여 다양한 유형의 대용량 데이터 이전, 유전학 데이터 수집 작업 등에서 물리적 환경에 필요한 다양한 작업을 진행하였습니다. 그 와중에 좀 더 기능적으로 필요한 몇 가지 여지가 있음을 알게 되었습니다.

어떤 고객은 네트워크 연결이 제한적이거나 아예 존재하지 않는 극단적인 상황에서도 많은 양의 데이터 (수백 테라 바이트)를 생성하기도 합니다. 예를 들어, 농장, 공장, 병원, 항공기 및 석유 시추 위치에서 생성하는 데이터를 수집할 필요가 있습니다.  각 작업 현장 측정 위치에서 비디오 감시, IoT 장치로 수집 된 정보에 이르기까지 고객은 개별 데이터 저장 및  수집에 넘어서서 데이터가 도착할 때 일부 로컬 처리를 수행 가능한 모델에 관심이 있습니다. 수집한 데이터를 필터링, 정리, 분석, 구성, 추적, 요약 및 모니터링하여, 특정 패턴이나 이슈에 대해 들어오는 데이터를 검색하여, 흥미로운 것이 발견되면 신속하게 경고를 하는 경우가 있습니다.

신규 Snowball Edge 디바이스
오늘 Snowball Edge라는 새로운 저장 장치를 추가로 제공합니다. 이 장치는 기존 Snowball 기능에 더해 연결성, 스토리지, 클러스터링을 통한 수평적 확장, 기존 S3 및 NFS 클라이언트, Lambda 기반 처리를 통한 신규 스토리지 엔드포인트 지원이 가능합니다.

물리적으로 Snowball Edge는 집에서 부터 아주 열악한 환경인 농장, 군대 및 항공 분야에서도 사용 가능합니다. 새로운 랙 마운트 장착용으로 클러스터 기능이 있는 것이 장점입니다.

몇 가지 새로운 기능을 살펴 보겠습니다.

연결성 확대
다양한 고속 네트워크 연결에 대한 선택 사항이 높아졌습니다. 10GBase-T, 10 또는 25 Gb SFP28, 또는 40 Gb QSFP+를 사용 가능합니다.   IoT 기기가 데이터 업로드를 할 수 있도록  3G 모바일 혹은 Wi-Fi를 지원합니다 또한, 기타 IoT 기기를 위한  Zigbee, USB 3.0 포트, PCIe 확장 포트 등 다양한 접속 방법도 지원 합니다.

Snowball Edge에 데이터를 복사 할 수 있는  대역폭은 초당 최대 14Gb까지 확보 할 수 있습니다. 따라서, 19 시간 내에 100TB를 복사 할 수 있습니다. 시작부터 끝까지 (S3에서 사용 가능한 데이터로 전송 시작) 전체 과정은 배송 및 처리 과정을 포함하여 일주일이 소요됩니다.

스토리지  용량 확대
Snowball Edge는 100 TB 스토리지를 포함합니다.

클러스터링을 통한 수평적 확장 기능Snowball Edge 어플라이언스 두 개 이상을 클러스터로 쉽게 구성하여 용량을 늘리고 내구성을 높이는 동시에 모든 스토리지에 단일 엔드 포인트를 통해 접근할 수 있습니다. 예를 들어, 6개의 기기를 클러스터링을 하면 400TB의 스토리지와 99.999%의 내구성을 갖춘 고가용성 클러스터를 생성합니다. 이를 통해 2개의 기기를 제외하고 데이터 보호를 할 수 있습니다.

클러스터링을 통해 페타 바이트 단위로 용량을 확장 할 수 있으며, 손쉽게 클러스터에서 기기 추가 및 제거가 가능합니다. 클러스터는 자체 관리가 가능하므로 소프트웨어 업데이트 등에 대해 걱정할 필요가 없습니다.

Local compute and storage only를 체크하여 클러스터를 주문하고, Make this a cluster를 통해 작업을 설정하시면 됩니다.

신규 스토리지 엔드 포인트 (S3 및 NFS)
기존 데이터 백업 및 아키이빙, 데이터 전송을 위해 S3나 NFS를 사용하여 Snowball Edge를 활용할 수 있습니다. 2개 이상의 기기로 클러스터를 만들어도, 같은 엔드 포인트를  사용 가능합니다. 클러스터를 로컬 네트워크 저장 장치로 사용할 수 있습니다.

Snowball Edge 는 S3 API, 즉 LIST, GET, PUT, DELETE, HEAD, Multipart Upload 등을 지원 하며, NFS v3 및 NFS 4.1. 역시 지원합니다.

Snowball Edge를 파일 스토리지 게이트웨이로 만들어 NFS로 접근 가능합니다. 이러한 기능을 활용하여 데이터 이전, AWS Storage Gateway 연동, 온-프레미스 앱에서 온-프레미스 데이터를 처리 가능합니다.

Lambda 기반 로컬 작업 지원
AWS Lambda 함수를 사용하여 Snowball Edge를 S3 버킷으로 연계해서 업로드가 가능합니다.

본 기능을 통해 (앞서 언급한 대로) 수집한 데이터를 필터링, 정리, 분석, 구성, 추적, 요약 및 모니터링하여, Snowball Edge를 좀 더 지능적이고 스마트하게 데이터 수집 및 처리를 할 수 있도록 해줍니다

우선 S3 PUT 에 대해 버킷당 하나의 함수를 사용 가능합니다. 함수는 Python 언어로 작성해야 하고 128 MB 메모리로 람다 함수 실행 환경을 설정하면 됩니다.

아래와 같이 Snowball Edge 환경 설정에 람다 함수를 지정하면 됩니다.

주문하기 전에 클라우드에서 기능을 테스트하는 것을 권장합니다.

정식 출시 및 가격 정보
Snowball Edge는 플러그앤 플레이 기반으로 배포합니다. 현장에서 이를 다루는 분은 설정을 할 필요는 없으며, LCD 보드를 통해 상태 정보나 설정 동영상을 볼 수 있습니다. 보드 상에 설정 코드는 자동으로 업데이트되고 소프트웨어 업데이트 관리도 필요 없습니다. AWS 관리 콘솔 (API 또는 CLI 접근 가능)을 통해 상태를 확인하고 배치 된 장비에 대한 최신 구성 변경 사항을 작성할 수 있습니다.

각 Snowball Edge은 배송료 포함 $300 입니다. 10일까지 장비를 사용할 수 있으며, 그 이후로는 일 $30이 추가됩니다. 로컬에서 Lambda 함수 실행은 무료입니다.

Jeff;

이 글은 AWS re:Invent 2016 신규 출시 소식으로 AWS Snowball Edge – More Storage, Local Endpoints, Lambda Functions의 한국어 번역입니다. re:Invent 출시 소식에 대한 자세한 정보는 12월 온라인 세미나를 참고하시기 바랍니다.

AWS Greengrass – 유비쿼터스 및 실세계 컴퓨팅 서비스

데이터 센터나 사무실 안에서 컴퓨팅 작업이나 및 데이터 처리는 용이합니다. 기본적으로 양호한 네트워크 연결성과 지속적인 전력 공급을 기대할 수 있으며, 가능한 만큼 온 – 프레미스 또는 클라우드 기반 스토리지에 접근하여 컴퓨팅 성능을 활용할 수 있습니다. 하지만, 밖으로 나오면 상황이 매우 다릅니다. 네트워크 연결은 간헐적이거나 신뢰할 수 없으며, 속도와 확장면에서 제한적일 수 있습니다. 전원 공급은 저장 용량 및 컴퓨팅 성능을 제한 할 수 있습니다.

따라서, 현실에서 흥미롭고 잠재적으로 가치 있는 많은 데이터가 수집 및 처리하여, 지능형 서비스를 제공하는 것은 매우 중요합니다. 이러한 데이터는 자원 채굴 현장이나 병원이나 공장 또는 심지어 (Curiosity)가 있는 화성처럼) 다른 행성, 지구 표면 아래 몇 마일 떨어진 해저 등에서도 얻어야 할 수 있습니다.

지금까지 많은 고객은 AWS 클라우드의 서비스 규모와 성능을 활용하여, 이러한 열악한 조건에서 로컬 처리를 시도할 수 있도록 다양한 피드백을 주셨습니다.  먼저, 데이터를 측정, 감지 및 제어하는 시스템을 로컬에 구축합니다. 그런 다음, 클라우드와 유사한 로컬 환경에 데이터를 저장하고 로컬 내부에서 독립적으로 수행하도록 일단 구성을 합니다. 이런 작업을 위해서는 로컬 프로세싱 및 스토리지 자원을 구성하고 활용하는 동시에 특수 센서 및 주변 장치에 연결할 수 있어야 합니다.

AWS Greengrass 소개
AWS Greengrass라는 서비스는 AWS 프로그래밍 모델을 작고 단순한 필드 기반 장치로 확장하여 위에서 설명한 문제점을 해결할 수 있도록 설계되었습니다.

Greengrass는 AWS IoTAWS Lambda를 기반으로 하며 다른 AWS 서비스에도 접근할 수 있습니다. 오프라인 작업을 위해 제작되었으며, 로컬에서 프로그래밍 구현을 단순하게 만들어 주게 됩니다. 현장에서 실행되는 프로그램 코드를 통해 데이터를 새로 수집, 필터링 및 집계한 후 장기적으로 저장하고, 추가 분석을 할 수 있도록 클라우드로 전송할 수 있습니다. 또한, 현장에서 실행되는 프로그램 코드는 클라우드에 대한 연결을 일시적으로 사용할 수 없는 경우에도 매우 신속하게 조치를 취할 수 있습니다.

고객이 소형 장치용 임베디드 시스템을 이미 개발 중인 경우, 최신 클라우드 기반의 개발 도구 및 워크 플로를 활용할 수 있습니다. 클라우드에서 코드를 작성하고 테스트 한 다음, 로컬에서 배포 할 수 있습니다. 디바이스 이벤트에 응답하는 Python 코드를 작성할 수 있으며 MQTT 기반 pub/sub 메시징을 사용하여 통신 할 수 있습니다.

Greengrass에는 GreenGrass Core (GGC)와 IoT Device SDK의 두 가지 구성 요소가 있습니다. 이 두 구성 요소는 현장에서 직접 하드웨어에서 실행됩니다.

Greengrass Core는 128MB 이상의 메모리와 1GHz 이상의 x86 또는 ARM CPU를 갖춘 장치에서 실행되도록 설계되었으며, 필요한 경우 추가 리소스를 이용할 수 있습니다. AWS Lambda 기능을 로컬에서 실행하고, AWS 클라우드와 상호 작용하면서도 보안 및 인증을 관리하면서 주변의 다른 디바이스와 통신할 수 있습니다.

IoT Device SDK는 (일반적으로 LAN 또는 기타 로컬 연결된) 코어를 호스팅하는 디바이스장치에서 실행하는 응용 프로그램을 개발하는 데 사용합니다 . 이런 애플리케이션은 센서에서 데이터를 캡쳐하고, MQTT 토픽를 구독하며 AWS IoT 디바이스 섀도우를 사용하여 상태 정보를 저장 및 검색합니다.

AWS GreenGrass 사용
AWS Management Console, AWS APIs, AWS Command Line Interface (CLI)를 통해 Greengrass의 여러 측면을 설정하고 관리 할 수 ​​있습니다.

새 허브 장치를 등록한 후, 원하는 람다 함수를 구성하며 디바이스에 전달할 배포 패키지를 만들 수 있습니다. 여기에서 경량 디바이스와 허브와 연결 시킬 수 있습니다.

미리 보기 출시
오늘 AWS Greengrass  미리보기를 시작합니다. 참여하고 싶으시다면, 가입하신 후 기다리시면 초대해 드립니다. 각 AWS 고객은 1 년 동안 3 개의 기기를 무료로 사용할 수 있습니다. 그 이후에는 각 활성 Greengrass Core의 월간 비용은 최대 10,000 개의 장치에 대해 $ 0.16 (연간 $ 1.49)입니다.

Jeff;

이 글은 AWS re:Invent 2016 신규 출시 소식으로 AWS Greengrass – Ubiquitous, Real-World Computing의 한국어 번역입니다. re:Invent 출시 소식에 대한 자세한 정보는 12월 온라인 세미나를 참고하시기 바랍니다.

개발자 미리보기 – F1, 프로그래밍 기반 하드웨어를 위한 EC2 인스턴스

일반적인 도구와 특별한 목적의 도구를 선택해야 하실 때가 있으셨나요? 일반 도구는 많은 문제들을 범용적으로 풀기에 좋지만 항상 최선의 선택은 아닙니다. 반대로 특정 목적의 도구는 하나의 업무에는 좋지만, 이런 특정 작업은 자주 있으면 안되겠지요.

컴퓨팅 엔지니어들은 다양한 IT 워크로드에 대해 높은 성등을 달성하기 위해 아키텍처를 설계 및 가이드 마련 시 항상 이러한 선택의 문제에 봉착하게 됩니다. 시간이 흐름에 따라 새로운 형태의 업무와 작업 상태가 출현하고 이는 특정 하드웨어로 처리하는게 최선일 때가 있습니다. 이러한 점은 또 다른 실행 시 균형을 요구합니다. 즉, 높은 성과를 위한 가능성에 투자하느냐 아니면 분기별 측정하는 개발 주기에 맞추느냐의 상충되는 부분을 선택해야 합니다

FPGA 소개
또 하나의 흥미로운 선택은 FPGA(field programmable gate array, 필드 프로그래머블 게이트 어레이)라고 부르는 하드웨어 기반 맞춤형 솔루션입니다. 특정 기능 목적으로 만들어 하드웨어에 장착되는 일반 칩과는 달리 FPGA는 유연합니다. 즉, FPGA는 PC 보드 소켓에 연결 한 후 현장에서 프로그램을 할 수 있습니다. FPGA는 고정된 유한 논리 게이트를 포함합니다. FPGA 프로그래밍은 단순 논리 기능 (AND, OR, XOR 등) 또는 저장 요소 (플립 플롭 및 시프트 레지스터)를 연결하는 방식입니다. 일반적으로 시리얼 (몇 개의 병렬 요소)과 고정 크기의 명령어 및 데이터 경로 (일반적으로 32 또는 64 비트)를 가진 CPU와는 달리, FPGA는 많은 연산을 병렬로 수행하도록 프로그래밍 할 수 있으며 연산 자체는 크거나 작거나 모든 영역에 적용할 수 있습니다.

계산 집약적인 문제를 처리하기 위한 맞춤 가속기를 개발하는 데 이러한 병령 모델이 이상적입니다. FPGA 프로그래밍 모델을 통해 유전학, 지진 분석, 금융 위험 분석, 대용량 데이터 검색, 암호화 알고리즘 및 애플리케이션 등에 30배 이상의 속도 향상을 제공 할 잠재력을 가지고 있습니다.

FPGA를 사용하여 여러분 만의 애플리케이션 속도 향상을 해보시길 바랍니다. 물론 몇 가지 관심을 가져야할 도전 과제가 있습니다. 첫째, FPGA는 전통적으로 사실 더 큰 목적 지향 시스템의 구성 요소였습니다. 단순히 하나를 사서 데스크톱에 연결할 수 없습니다. 대신 FPGA 기반 솔루션을 통해 하드웨어 프로토 타이핑, 하드웨어 어플라이언스 구축, 대량 생산 및 장기 판매 및 배포 주기 등을 만들 수 있습니다. 해당 적용 시간에 따라 FPGA 적용 가능성을 제한 할 수 있으며, 무어의 법칙이 CPU 기반 솔루션을 보다 비용 효율적으로 만들 시간을 제공한다는 점입니다.

여기서 좀 더 자세하 알아보겠습니다.

신규 F1 인스턴스 타입
오늘 신규 F1 인스턴스에 대한 개발자 미리보기를 시작합니다. 직접 원하는 서비스나 애플리케이션을 만들 수도 있고, 여러분이 만든 패키지를 AWS Marketplace를 통해 재판매를 할 수도 있습니다. 다양한 소프트웨어에 사용하는 비지니스 모델에 맞는 FPGA 기반 애플리케이션을 만들기 위한 기본 요구 사항을 충족함으로서 막대한 비용 및 시간 투자를 피할 수 있게 됩니다. 여러분이 직접 자신의 로직을 기반으로 클라우드 기반 도구를 만들어 시험해 봄으로서, 수일 만에 시장에 선보일 수 있게 됩니다.

F1 인스턴스는 Intel Broadwell E5 2686 v4 프로세서 (2.3 GHz 기본 속도, 전체 코어 당 2.7 GHz Turbo 모드, 하나의 코어에 3.0 GHz Turbo 모드)와 최대 976 GiB 메모리, 최대 4TB의 NVMe SSD 스토리지와 하나에서 8개까지의 FPGA를 가진 인스턴스입니다. 이를 통해 FPGA 기반 로직 구현을 충분히 해 볼 수 있는 자원을 제공 받아, 전용 하드웨어에서 운용되기에 멀티 테넌트 환경에서 분리되어 서비스 됩니다.

아래는 FPGA의 기본 스펙으로, 하나의 F1 인스턴스에서 8개까지 늘릴 수 있습니다.

  • Xilinx UltraScale+ VU9P fabricated using a 16 nm process.
  • 64 GiB ECC-protected memory on a 288-bit wide bus (four DDR4 channels).
  • Dedicated PCIe x16 interface to the CPU.
  • Approximately 2.5 million logic elements.
  • Approximately 6,800 Digital Signal Processing (DSP) engines.
  • Virtual JTAG interface for debugging.

하나 이상의 FPGA가 있는 인스턴스에서 전용 PCIe 패브릭을 사용하면 FPGA가 동일한 메모리 주소 공간을 공유하고 각 방향으로 최대 12Gbps의 PCIe 패브릭을 통해 서로 통신 할 수 있습니다. 인스턴스 내의 FPGA는 낮은 지연 속도 및 높은 대역폭 통신을 위한 400Gbps 양방향 네트워크를 공유합니다 (이러한 고급 기능을 사용하려면 자체 프로토콜을 정의해야 합니다.)

FPGA 개발 과정
개발자 미리보기에서는 FPGA 개발자를 위한 AMI를 제공합니다. 이 AMI를 메모리 또는 컴퓨팅 최적화 인스턴스에 실행하여 개발 및 실험을 해 보고 난 뒤 F1 인스턴스에서 마지막 테스트 및 디버깅을 하면 됩니다.

AMI에는 AWS 클라우드에서 사용할 수 있는 개발자 도구를 (추가 비용 없이) 포함하고 있습니다. VHDLVerilog를 통해 FPGA 코드를 작성한 후, 컴파일 및 시뮬레이션을 해볼 수 있고, Xilinx Vivado Design Suite (서드파티 시뮬레이터, 고 수준 언어별 컴파일러, 그래픽 프로그래밍 도구, FPGA 지적 재산권 정보 사용 가능) 등을 통해 검증할 수 있습니다.

아래는 간단한 8비트 카운터를 위한 Verilog 코드입니다.

module up_counter(out, enable, clk, reset);
output [7:0] out;
input enable, clk, reset;
reg [7:0] out;
always @(posedge clk)
if (reset) begin
  out <= 8'b0;
end else if (enable) begin
  out <= out + 1;
end
endmodule

C언어 문법과 유사하게 표현하는 언어들로서

이러한 언어는 C와 유사한 문법을 가지고 있는 것 같지만, 기존 코드를 가져 와서 FPGA에서 사용할 수 있도록 다시 컴파일 할 수있는 것은 아닙니다. 대신 FPGA 프로그래밍 모델에 대해 깊이 이해한 뒤 부울 대수(Boolean algebra)를 배우고, 전파 지연 및 클럭 에지와 같은 문제를 신경 써야합니다. 이를 통해 FPGA를 사용자 환경에 어떻게 사용할 수 있을까 하는 방법을 생각할 수 있습니다. 너무 간단하게 설명을 했다면, 고급 합성 도구나 FPGA를 프로그래밍을 위한 OpenCL을 사용할 수 있습니다.

인스턴스를 띄운 후, 로그인 한 뒤 패키지를 설치하고 Vivado 도구를 실행하기 위한 라이선스 매니저를 설정합니다. 데스크톱에서 RDP로 연결한 후 터미널 윈도를 열어서 Vivado를 GUI 모드로 실행합니다.

우선 샘플 프로젝트(counter.xpr)를 열어 어떻게 FPGA 프로그램을 할 수 있는 지 살펴 볼 수 있습니다.

잠시 살펴 본 후, 첫 번째 FPGA를 조합해 봅니다. (이 시점에서 흥미로운 것을 좀 더 클릭함으로서 초보자를 벗어나고 있다는 점입니다.)

여기서 부터 내가 만든 디자인 패키지를 Amazon FPGA Image (AFI)로 테스트하고, 이를 직접 애플리케이션으로 만들거나 AWS Marketplace에 올릴 수 있습니다. 이러한 일련의 개발 및 서비스 개시를 몇 주 안에 모두 할 수 있을 것이라 생각합니다.

The F1 하드웨어 개발 도구
F1 인스턴스에서 대해 공부 한 후 드는 첫번째 질문은 아마 FPGA와 CPU, 메모리 사이의 인터페이스를 어떻게 할 것인가 하는 점일 것입니다. F1 하드웨어 개발 도구 (HDK)를 통해 I/O 인터페이스와 호스트-FPGA간, FPGA-메모리간, FPGA-FPGA간 등 멀티 통신 방법을 미리 설정할 수 있는 샘플 애플리케이션을 제공합니다. 여기에는 전체 통합 스크립트, 참조 예제 및 실무 디버그 도구를 포함하고 있습니다.

The Net-Net
이제 F1 인스턴스와 클라우드 기반 개발 도구를 결합하고, FPGA 기반 애플리케이션을 판매할 수 있다는 것은 매우 독특하고 강력한 서비스 모델이 될 것 입니다. FPGA 모델의 강점과 유연성을 이제 모든 AWS 고객이 이용해 볼 수 있게 되었고, 향후 새로운 형태의 애플리케이션과 비즈니스가 출현할 것으로 전망합니다.

미리보기 출시
개발자 미리보기는 US East (Northern Virginia) 리전에서 먼저 시작합니다.(향후 2017년 초에 정식 출시될 때, 여러 리전에서 사용 가능할 것입니다.) 여러분이 이전에 FPGA 프로그래밍 경험이 있고, 지금 시작해 보시려면 미리 보기 이용 신청을 해 주시기 바랍니다.

Jeff;

이 글은 AWS re:Invent 2016 신규 출시 소식으로 Developer Preview – EC2 Instances (F1) with Programmable Hardware의 한국어 번역입니다. re:Invent 출시 소식에 대한 자세한 정보는 12월 온라인 세미나를 참고하시기 바랍니다.

Amazon EC2 Elastic GPUs 계획 발표

얼마 전 16 GPU까지 지원하는 P2 인스턴스 출시 때, GPU 기반 컴퓨팅에 대한 이점에 대해 설명하였습니다. 이전 글에서 이야기했듯이 GPU를 통해 엄청난 컴퓨팅 용량을 처리하면서도 시간 대비 비용을 획기적으로 줄일 수 있습니다.

오늘 GPU 기반 기능에 대해 저희가 개발하고 있는 기능을 좀 더 발표하고자 합니다. 곧 여러분의 기존 EC2 인스턴스에 그래픽 가속 기능을 추가할 수 있게 됩니다. G2 또는 P2 인스턴스를 사용할 때 GPU 숫자에 따라 인스턴스 크기를 정하게 되어 있습니다. 대부분 애플리케이션에서는 잘 적용되지만, 특정 맞춤형 애플리케이션을 위해 유연한 성능 모델을 지원할 수 있게 됩니다.

Amazon EC2 Elastic GPUs 소개
앞으로 출시될 Amazon EC2 Elastic GPUs를 통해 여러분의 애플리케이션에 적합한 EC2 인스턴스 타입을 선택할 수 있고, 인스턴스 실행시에 아래의 4가지 타입 중 GPU를 선택하여 추가할 수 있습니다.

이름 GPU 메모리
eg1.medium 1 GiB
eg1.large 2 GiB
eg1.xlarge 4 GiB
eg1.2xlarge 8 GiB

Elastic GPU는 M4, C4, X1 인스턴스에 추가할 수 있습니다. 새 인스턴스를 시작할 때 새로 만든 EBS 볼륨을 설정할 수 있습니다. 인스턴스 실행 중에 원하는 크기를 지정하고, 변경을 위해 실행 중인 인스턴스를 중지, 수정 및 시작하는 옵션을 사용하여 Elastic GPU와 비슷한 작업을 수행 할 수 있습니다.

OpenGL 시작해보기
Amazon 최적화 OpenGL 라이브러리를 통해 Elastic GPU를 자동으로 탐지하고 사용할 수 있습니다. Open GL 윈도우 지원, Amazon Linux AMI 지원을 제공 한 후, 다른 OpenGL 버전 역시 지원할 예정입니다. DirectXVulkan 같은 다른 3D API 역시 지원을 검토하고 있습니다. (관심 있는 분들 많이 알려주세요.) Amazon 최적화 OpenGL 라이브러리는 기존 Microsoft Windows AMI에 지원할 예정입니다.

OpenGL은 그래픽 렌더링에는 최고이지만, 어떻게 렌더링되었는지 알 수 있으려면 NICE Desktop 클라우드 가상화 같은 도구를 쓰는 것이 좋습니다.(올해 초 Amazon Web Services to Acquire NICE 소식 참고). 이를 통해 렌더링된 콘텐트를 HTML5 호환 웹 브라우저나 디바이스에서 스트리밍으로 볼 수 있습니다. 최신 버전의 Firefox나 Chrome 브라우저, 그리고 다양한 모바일 기기에서도 사용 가능합니다.

이러한 클라우드 기반 하드웨어와 소프트웨어를 조합하여 모든 3D 시각화 및 기술적 컴퓨팅 애플리케이션에 맞는 도구가 될 것으로 기대합니다. 이미 이를 직접 사용해 본 AWS 고객 중 아래와 같은 피드백을 공유해 주셨습니다.

Ray Milhem (VP of Enterprise Solutions & Cloud, ANSYS)

ANSYS Enterprise Cloud는 AWS에 최적화된 가상 데이터센터 시뮬레이션을 제공하고 있습니다. 혁신적인 제품 디자인 기능을 고객에게 주기 위해서는 시뮬레이션 과정에서 처음부터 끝까지 풍부한 인터랙티브 그래픽 경험을 제공해야 합니다. Elastic GPU를 통해 ANSYS는 좀 더 쉽게 합리적인 가격과 성능을 기반으로 고객의 요구를 충족시킬 수 있었습니다. Elastic GPU 기반 ANSYS 애플리케이션 인증을 통해 고객 들이 혁신적이고 효과적으로 클라우드를 활용할 수 있도록 도울 것입니다.

Bob Haubrock (VP of NX Product Management, Siemens PLM)

Elastic GPU는 클라우드 기반 Computer Aided Design (CAD)의 게임을 바꾸고 있습니다. Elastic GPU를 통해 우리 고객은 Siemens PLM NX를 Amazon EC2 위해서 최고의 그래픽 성능과 AWS가 제공하는 유연성, 보안 및 글로벌 서비스를 함께 얻을 수 있게 되었습니다. Siemens PLM은 EC2 Elastic GPU 기반 NX를 인증하여 고객이 디자인과 기술 혁신을 이룰 수 있도록 할 것입니다.

신규 인증 프로그램
Elastic GPU와 GPU 기반 기능을 최대로 활용하는 소프트웨어를 만드는 개발자와 소프트웨어 개발사를 위한 AWS Graphics Certification Program을 오늘 공개합니다. 이 프로그램을 통해 GPU 기반 인스턴스를 통해 다양한 애플리케이션을 개발 및 테스트 할 수 있도록 크레딧과 개발 도구를 제공할 예정입니다.

잠시만 기다려주세요!
본 소식에 대한 추가 정보는 앞으로 블로그를 통해 곧 알려드리도록 하겠습니다!

Jeff;

이 글은 AWS re:Invent 2016 신규 출시 소식으로 In the Works – Amazon EC2 Elastic GPUs의 한국어 번역입니다. re:Invent 출시 소식에 대한 자세한 정보는 12월 온라인 세미나를 참고하시기 바랍니다.

Amazon Lightsail – 간편한 가상 사설 호스팅(VPS) 서비스

알파 유저, 즉 고급 사용자는 주택, 컴퓨터 또는 가구를 직접 부품으로 조립하는 것을 좋아합니다. 이 분들은 스스로 과정을 즐기면서, 각 부분을 깊게 공부하여 스스로 조립하는 이른바 DIY (do-it-yourself)를 통해 보람을 얻습니다.

유사한 방식을 시스템 아키텍처 및 시스템 구축에도 적용할 수 있습니다. 개별 AWS 구성 요소(서버, 스토리지, IP 주소 등)를 직접 선택하여 구축할 수도 있고, 사전에 구성 설정이 완료된 시스템을 통해 별도 구축 노력 없이 웹 애플리케이션을 바로 실행할 수 있기도 합니다.

대부분의 경우, 후자를 원하는 분들은 가상 사설 호스팅(VPS, Virtual Private Server)을 이용합니다. VPS를 사용하면, 데이터 전송량 등 몇 가지 옵션에 따른 월별 요금으로 서비스를 이용 가능합니다.

초기에 VPS는 완벽하지만 시간이 지남에 따라 서비스 환경에 따라 제약을 받을 수도 있습니다. 특정 시점에서 서비스가 성장하면, 더 필요한 자원을 얻을 수 없을 뿐 아니라 점진적으로 추가하거나 갑자기 많은 트래픽에 필요한 선택 사항도 없습니다. 자동 확장 또는 장애 조치(failover) 옵션이 제한되어 있어, 이를 별도로 설정해야 할 수도 있습니다.

Amazon Lightsail 서비스 소개
오늘 Amazon Lightsail을 정식 출시합니다. 몇 번 클릭만으로도 SSD기반 스토리지, DNS 관리, 정적 IP 주소를 포함한 가상 서버를 바로 만들 수 있습니다. 여러분이 원하는 운영 체제(Amazon Linux AMI, Ubuntu, CentOS, FreeBSD, Debian), 개발 플랫폼 (LAMP, LEMP, MEAN, or Node.js), 애플리케이션 (Drupal, Joomla, Redmine, GitLab 등)을 선택할 수 있고, 합리적인 데이터 전송량을 기반하여 월 5달러부터 서비스를 제공하게 됩니다.

아래는 신규 서비스 종류입니다.

AWS가 제공하는 신뢰성 및 보안성을 기반으로 VPS의 장점을 함께 얻을 수 있습니다. 여러분의 서비스가 점점 성장하면, 서비스 경계에 도달 한 후 추가적인 AWS 데이터베이스, 메시징 및 콘텐츠 배포 서비스를 이용하게 됩니다.

Amazon Lightsail는 AWS 입문자로서 개인 클라우드 프로젝트를 빠르게 시작할 수 있고, 향후 서비스가 커질 경우에도 유연한 플랫폼입니다.

Amazon Lightsail 살펴 보기
우선 AWS 관리 콘솔을 통해 Lightsail을 들어가면 Quick Assist 탭이 각 페이지 마다 보입니다. 여기를 클릭해서 필요한 문서와 도움을 얻을 수 있습니다.

이제 홈 페이지에 가 보겠습니다. 아직 만들어진 인스턴스와 자원이 없습니다.

먼저 Create Instance을 눌러서, 서버 이미지(앱과 운영체제, 운영체제 중 택일)를 선택하고, 인스턴스 사용 계획과 인스턴스 이름을 넣습니다. (모두 한 페이지에 있습니다.)

한번에 여러 서버를 설치할 수도 있고, 환경 설정 스크립트 및 SSH 키페어를 정할 수도 있습니다. 가용 영역(AZ)를 선택해서 서버의 위치를 선택합니다. 저는 우선 WordPress의 월 10달러 서비스를 선택하고  Create를 클릭합니다. 몇 초 안에 시스템이 올라오게 됩니다.

이제 바로 관리를 할 수 있습니다.

인스턴스는 정적 IP를 가지고 있기 때문에 웹 브라우저에서 바로 접속이 가능합니다. 워드 프레스가 이미 설치되어 운용되고 있습니다.

설정을 완료하려면 WordPress 암호가 필요합니다. 인스턴스 관리 화면에서 Connect using SSH을 눌러 별도의 SSH 키를 저장하거나 관리할 필요 없이 웹 기반으로 이용하게 됩니다. 워드프레스 관리자 암호는 ~bitnami 디렉토리의 bitnami_application_password 파일에 저장 되어 있습니다.

터미널 윈도를 북마크해놓고 나중에 손쉽게 접속이 가능합니다.

메뉴에서 인스턴스 관리를 위한 다양한 기능을 사용할 수 있습니다.

예를 들어 성능 통계치 등을 보실 수 있습니다.

방화벽 설정도 가능합니다.

스냅샷을 통해 특정 시점의 백업본 생성도 가능합니다.

향후에 스냅샷을 통해 새로운 인스턴스를 만들 수도 있습니다.

정적 IP 주소 뿐만 아니라 도메인명을 사용할 수도 있습니다.

고급 Lightsail 기능 – API 및 VPC 피어링
마지막으로 Lightsail의 주요 고급 기능은 API 지원 및 VPC 피어링에 대해 소개합니다.

다른 AWS 서비스 처럼  콘솔에서 제공하는 기능 포함 전체 API 세트를 제공하고 있으며, 아래는 그 중에 대표적인 기능입니다.

  • GetBundles – (서버 설정) 목록 가져오기
  • CreateInstances – Lightsail 인스턴스 생성하기
  • GetInstances – 모든 인스턴스 목록 가져오기
  • GetInstance – 특정 인스턴스 정보 가져오기
  • CreateInstanceSnapshot – 인스턴스 스냅샷 만들기
  • CreateInstanceFromSnapshot – 스냅샷에서 인스턴스 만들기

더 자세한 것은 Lightsail API 문서를 참고하세요.

모든 Lightsail 인스턴스는 “숨겨진(Shadow)” VPC(가상 사설 클라우드) 내에 있으며, 콘솔에서는 보이지 않습니다. 만일 여러분이 애플리케이션을 서버에서 동작시켜, 다른 AWS  자원에 접속을 하고 싶다면 현재 Shadow VPC와 계정의 다른 VPC 사이에 피어링이 필요합니다. 상단 오른쪽 Account을 눌러 스크롤 하시면 Advanced features에서  VPC peering를 확인 하시면 됩니다.

VPC 기반의 다른 AWS와도 쉽게 연동이 가능해졌습니다.

정식 출시 및 가격
Amazon Lightsail는 오늘 부터 US East (Northern Virginia) 리전에서 사용 가능하며, 점차로 제공 리전을 확대할 예정입니다. 가격은 월 5달러로 부터 시작하며, 더 자세한 가격 및 선택 사항은 Lightsail 요금표를 참고하시기 바랍니다.

Jeff;

이 글은 AWS re:Invent 2016 신규 출시 소식으로 Amazon Lightsail – The Power of AWS, the Simplicity of a VPS의 한국어 번역입니다. re:Invent 출시 소식에 대한 자세한 정보는 12월 온라인 세미나를 참고하시기 바랍니다.

EC2 인스턴스 업데이트 – T2, R4, F1, Elastic GPU, I3, C5 등

오늘 오전에 AWS의 CEO인 re:Invent 기조 연설에서 Andy Jassy는 EC2 인스턴스 로드맵에 대한 다음 업데이트를 발표했습니다. 우리는 고성능 I/O, 컴퓨팅 및 메모리 최적화 인스턴스, 버스팅 가능 T2 인스턴스 범위 확대, FPGA 기반 컴퓨팅을 포함한 새로운 하드웨어 가속 영역에 대한 인스턴스 지원을 소개하였습니다. 이 블로그 게시물에는 오늘 공지 사항과 추가 정보가 포함 된 몇 가지 다른 게시물에 대한 링크를 요약하였습니다.

새로운 인스턴스를 위한 계획을 할 때, 저희는 고객이 직면 한 과제와 향후 EC2에서 실행할 작업들을 더 많이 이해하고자 많은 시간을 고객과 논의하였습니다. 다양한 피드백을 받았지만, 그중에서도 인 메모리 기반 분석, 멀티미디어 처리, 기계 학습 (최신 AVX-512 지침 지원) 및 대규모 스토리지 집약적 ERP(Enterprise Resource Planning) 애플리케이션 등이 자주 언급되었습니다.

신규 F1 인스턴스– F1 인스턴스를 사용하면 FPGA(Field-Programmable Gate Array)로 알려진 기법을 통해 하드웨어를 프로그래밍 가능하도록 할 수 있습니다. FPGA에서 실행되는 코드를 작성하여, 다양한 유형의 특정 작업, 즉 유전학 분석, 지진 분석, 금융 위험 분석, 대용량 데이터 검색 및 암호화 알고리즘을 최대 30배까지 가속화 할 수 있습니다. 오늘 F1 인스턴스와 하드웨어 개발 킷(Hardware Development Kit)에 대한 개발자 미리보기를 시작했으며, FPGA 기반 애플리케이션 및 서비스를 구축하고  AWS Marketplace에서 이를 판매 할 수 있습니다. 자세한 내용은 개발자 미리보기 – F1, 프로그래밍 기반 하드웨어를 위한 EC2 인스턴스를 참고하십시오.

신규 R4 인스턴스– R4 인스턴스는 메모리 집약형 비즈니스 인텔리전스, 메모리 내 캐싱 및 데이터베이스 애플리케이션을 위해 설계되었으며 최대 488 GiB 메모리를 지원합니다. R4 인스턴스는 기존 R3 인스턴스 보다 큰 L3 캐시와 더 높은 메모리 속도를 제공합니다. 네트워크 측면에서 R4 인스턴스는 배치 그룹 내에서 사용될 때 최대 20Gbps의 ENA 전원 네트워크 대역폭과 EBS 전용 처리량 12Gbps를 지원합니다. 인스턴스는 최대 64 개의 vCPU 및 488GB의 메모리가 포함 된 6 가지 크기로 제공됩니다. 자세한 내용은 차세대 (R4) 메모리 최적화 신규 EC2 인스턴스 출시를 참고하십시오.

T2 인스턴스 크기 확대– T2 인스턴스는 전체 CPU를 사용할 필요가 없는 작업 부하에 대해 뛰어난 성능을 제공합니다. 고객은 애플리케이션 서버, 웹 서버, 개발 환경, 지속적 통합 서버 및 소규모 데이터베이스와 같은 범용 작업 부하에 많이 사용합니다. 오늘 좀 더 많은 선택을 위해 t2.xlarge(16 GiB 메모리)와 t2.2xlarge(32 GiB 메모리)를 추가합니다. 기존 T2 인스턴스와 마찬가지로 신규 인스턴스 타입은 더 많은 컴퓨팅 성능이 필요할 때, 전체 코어로 버스팅 할 수 있을 뿐 아니라 기본 성능 (기본 인스턴스의 최대 4 배)을 충분히 제공합니다. 자세한 내용은 신규 T2.Xlarge 및 T2.2Xlarge 인스턴스출시를 참고하시기 바랍니다.

또한, 아래의 신규 인스턴스 타입도 새롭게 추가됩니다.

신규 Elastic GPU–  기존 EC2 인스턴스 타입에 원할 때 고성능 그래픽 가속 기능을 추가할 수 있게 됩니다. GPU 메모리와 일치하는 컴퓨팅 성능을 1 GiB에서 8 GiB 중에서 선택할 수 있습니다. Amazon에서 최적화 된 OpenGL 라이브러리 역시 자동으로 Elastic GPU를 감지하여 사용할 수 있습니다. 신규 EC2 기능을 AWS 그래픽 인증 프로그램과 함께 미리보기로 제공합니다. 자세한 내용은 Amazon EC2 Elastic GPUs 계획 발표를 참고하시기 바랍니다.

신규 I3 인스턴스– I3 인스턴스에는 빠르고 대기 시간이 짧은 비 휘발성 메모리 익스프레스(NVMe) 기반 솔리드 스테이트 드라이브(SSD)가 장착됩니다. 최대 4GB의 블록 크기와 최대 초당 16GB의 디스크 처리량에서 최대 330만 개의 임의적인 IOPS를 제공합니다. 이러한 인스턴스는 I/O 집약적 관계형 데이터베이스나 NoSQL, 트랜잭션 및 분석 워크로드에서 사용 가능합니다. I3 인스턴스는 최대 64개의 vCPU, 488 GiB의 메모리, 15.2TB의 스토리지(ERP 애플리케이션에 이상적임) 등 6 가지 사이즈로 제공됩니다. 저장된 모든 데이터는 암호화 된 상태로 유지되며, 새로운 EC2 고성능 네트워크 인터페이스(ENA)를 지원합니다.

신규 C5 인스턴스– C5 인스턴스는 인텔의 새로운 Xeon “Skylake” 프로세서가 장착되어, 다른 EC2 인스턴스 프로세서 보다 빠르게 실행됩니다. Broadwell의 후계자 인 Skylake는 컴퓨터 학습, 멀티 미디어, 과학 및 금융 서비스 운영을 위해 높은 부동 소수점 계산을 위한 지원을 제공하는 AVX-512를 지원합니다. 인스턴스는 최대 72 개의 vCPU와 144GB의 메모리가 포함 된 6 가지 사이즈로 제공됩니다. 네트워크 측면에서, ENA를 지원하고 기본적으로 EBS 최적화를 지원하게 될 것입니다.

이들 인스턴스가 사용 가능해지면, 각 인스턴스에 대한 자세한 정보를 계속 공유 할 예정이므로 본 블로그를 지켜봐 주시기 바랍니다.

Jeff;

이 글은 AWS re:Invent 2016 신규 출시 소식으로 EC2 Instance Type Update – T2, R4, F1, Elastic GPUs, I3, C5의 한국어 번역입니다. re:Invent 출시 소식에 대한 자세한 정보는 12월 온라인 세미나를 참고하시기 바랍니다.