본문 바로가기

카테고리 없음

AWS Lambda 활용 가이드

 

 

AWS - Lambda 활용


요약글을 적으세요

다루는 내용

  • Lambda 이해
  • S3 버킷 생성
  • IAM Role 생성
  • Lambda function 패키지 생성
  • Lambda 수동 실행
  • Lambda 자동 실행


 

  Lambda 란 무엇인가요?


Lambda는 이벤트에 응답하여 개발자 코드를 실행하고, 자동으로 컴퓨팅 리소스를 관리하여 새로운 정보에 신속하게 대응하는 애플리케이션을 쉽게 개발할 수 있도록 지원하는 컴퓨팅 서비스이다. S3와 Custom APP의 경우 Push 방식으로 동작하며, Kinesis와 DynamoDB의 경우 Pull 방식으로 동작한다.

-. S3에서 Lambda로 이벤트 Push

 

-. Lambda가 Kinesis의 메시지 Pull

 

 

 

이번 실습에서는 S3 버킷에 이미지 파일이 업로드 될 경우 Lambda가 이벤트를 받아서 리사이징하고, 결과를 다른 S3 버킷에 저장하도록 한다. 실습에 필요한 준비 사항은 다음과 같다.

  • 이미지가 업로드 될 S3 버킷
  • 이미지가 리사이징되어 저장 될 S3 버킷
  • Lambda 서비스가 실행되는데 필요한 권한(IAM Role)
  • 이미지를 리사이징하는 개발자 코드

 

 

  S3 버킷 생성 


1. 두 개의 S3 버킷을 생성하고, Policy를 수정한다.

//  ① arang (이미지 업로드 버킷) //

{
 "Version": "2012-10-17",
 "Id": "Policy1429754971377",
 "Statement": [
  {
   "Sid": "Stmt1429754969363",
   "Effect": "Allow",
   "Principal": "*",
   "Action": "s3:GetObject",
   "Resource": "arn:aws:s3:::arang/*"
  }
 ]
}

//② arang-lab (리사이징된 이미지 저장 버킷)

{

             "Version": "2012-10-17",

             "Id": "Policy1433991353791",

             "Statement": [

                           {

                                        "Sid": "Stmt1433991343817",

                                        "Effect": "Allow",

                                        "Principal": "*",

                                        "Action": "s3:GetObject",

                                        "Resource": "arn:aws:s3:::arang-lab/*"

                           }

             ]

}


 



 

   IAM 생성  


 

1.       콘솔에서 IAM 클릭

2.       왼쪽 메뉴에서 Roles 클릭

3.       Create New Role 클릭

4.       Set Role Name 페이지에서

        Role Name : lambda-lab

        Next Step 클릭

5.       Select Role Type 페이지에서

        AWS Lambda à Select 클릭

6.       Attach Policy 페이지에서

        AWSLambdaExecute 선택

        Next Step 클릭

7.       Review 페이지에서

        Create Role 클릭




 

 Lambda funcion 패키지 생성


현재 Lambda Node.jsJava 8을 지원한다.

Node.js 코드

CreateThumbnail.js              node.js로 작성된 이미지 리사이징 코드

/node_modules/gm                           ← GraphicsMagick 라이브러리

/node_modules/async          ← Async utility module 라이브러리

1.       Node.js 플랫폼 설치

        EC2 인스턴스 접속

        https://nodejs.org/ 에서 리눅스용 소스 다운로드

(https://nodejs.org/dist/v0.12.5/node-v0.12.5-linux-x64.tar.gz)

        압축을 풀면 bin 디렉토리에 node 파일과 npm 파일이 있다.

2.       CreateThumbnail.js 작성

        AWS 매뉴얼 페이지 참고 (소스를 복사해서 사용하면 된다.)

http://docs.aws.amazon.com/lambda/latest/dg/walkthrough-s3-events-adminuser-create-test-function-create-function.html


 

 

 


 

     리사이징된 이미지가 저장 될 버킷명으로 수정한다.

var dstBucket = srcBucket + “-lab

1.       라이브러리 설치

        node.js package manager를 실행하여 asyncgm을 설치한다.

$ npm install async gm


 

.... 나머지는 아래 링크 참조
  

www.SalesMore.co.kr