it 이노베이션 센터 이야기 - aws lambda를 활용한 개발 스폰서십 확보편

26
IT 이노베이션 센터 이야기 AWS Lambda를 활용한 개발 스폰서십 확보편

Upload: darion-kim

Post on 15-Apr-2017

2.213 views

Category:

Internet


4 download

TRANSCRIPT

Page 1: IT 이노베이션 센터 이야기 - AWS Lambda를 활용한 개발 스폰서십 확보편

IT�이노베이션�센터�이야기�

AWS�Lambda를�활용한�개발�스폰서십�확보편

Page 2: IT 이노베이션 센터 이야기 - AWS Lambda를 활용한 개발 스폰서십 확보편

부탁�말씀을�드립니다.^^�

문서내에는�초보자도�쉽게�공감�할�수�있게�간단한�의미의�용어를�사용하였습니다.�

하루하루를�IT라는�정글속에서�전쟁을�치르며�살아간다는�느낌으로�RollingStones의�Paint�it�black�들으며�보시는�것을�추천드립니다.�

https://youtu.be/InRDF_0lfHk

Page 3: IT 이노베이션 센터 이야기 - AWS Lambda를 활용한 개발 스폰서십 확보편

이�이야기는��고객�니즈(Needs)�변화에�대해�쉽고�빠르게�확인하고�스폰서십을�확보하여��다시�지속적인�개발을�해야하는�환경에서의���임무수행에�대한�고민에서�시작됩니다.그럼�시작해�볼까요~!

Page 4: IT 이노베이션 센터 이야기 - AWS Lambda를 활용한 개발 스폰서십 확보편

우리가�부여받은�대부분의�IT임무는�입력값을�받아서�이를�처리하고��결과값을�제시하는�것입니다.�

쉽게�말해서�함수[f(x)]를�만드는�것입니다.

Page 5: IT 이노베이션 센터 이야기 - AWS Lambda를 활용한 개발 스폰서십 확보편

함수를�만들었다고�끝나는�것은�아닙니다.�

이�함수를�실행할�수�있는�환경이�필요한데�이를�시스템[System]이라�얘기해�봅니다.

Page 6: IT 이노베이션 센터 이야기 - AWS Lambda를 활용한 개발 스폰서십 확보편

웹페이지의�주소를�입력받아�가공하고이를�이미지�파일들로�변환하는��임무를�가정해보겠습니다. 대용량�분산처리를�위한�스케일아웃(Scale�out)이�가능한�시스템�구성은�필수입니다.

Page 7: IT 이노베이션 센터 이야기 - AWS Lambda를 활용한 개발 스폰서십 확보편

이와�관련�하여�함수를�작성하고�이를�실행하기�위한�시스템을�구성하면�이번�IT임무는�완료할�수�있습니다.�

자~�그럼�저희는�어떻게�해서�이번�IT임무를�완료하려고�하는지�시스템�구성에�대한�얘기부터�해�보겠습니다.

Page 8: IT 이노베이션 센터 이야기 - AWS Lambda를 활용한 개발 스폰서십 확보편

시스템�구성은��전통적인�방식과�클라우드�방식으로��선택�할�수�있습니다.�

먼저�다음장�내용에�대한�공감을�부탁드립니다.^^

Page 9: IT 이노베이션 센터 이야기 - AWS Lambda를 활용한 개발 스폰서십 확보편

집�=�집터�+�구조물�

시스템�=�인프라�영역�+�애플리케이션�영역�

집을�지을�때는�집터에�구조물을�올리듯이��시스템을�구성하려면�인프라�영역과�애플리케이션�영역이�필요합니다.

Page 10: IT 이노베이션 센터 이야기 - AWS Lambda를 활용한 개발 스폰서십 확보편

인프라�영역�=�서버�+�네트워크�+�방화벽...�

애플리케이션�영역�=�애플리케이션�플랫폼��+�비지니스�로직...�

다시�인프라�영역을�구성하는데는�서버,�네트워크,�방화벽�등이�필요하고�애플리케이션�영역을�구성하는데는�애플리케이션�플랫폼과�비지니스�로직�등이�필요합니다.

Page 11: IT 이노베이션 센터 이야기 - AWS Lambda를 활용한 개발 스폰서십 확보편

먼저�전통적인�방식으로�시스템을�구성하는�이야기를�해�보겠습니다.��

Page 12: IT 이노베이션 센터 이야기 - AWS Lambda를 활용한 개발 스폰서십 확보편

앞�단에�메세지�큐를�두어�입력�요청을�관리하고�노드(Node.js)기반으로�웹페이지를�가공하여�이미지�파일들을�생성하고�이를�CDN�Origin서버와�DB에�저장하는�구성을�하였습니다.�

노드�서버를�추가하여�스케일아웃을�할�수는�있지만�인프라�리소스의�정적인�관리�한계를�극복해야�해야�합니다.

corporate data center

CDN Origin

DB

Node.jsServers

RabbitMQ

서버�네트워크�방화벽�애플리케이션�플랫폼�비지니스�로직

Page 13: IT 이노베이션 센터 이야기 - AWS Lambda를 활용한 개발 스폰서십 확보편

그리고�서버,�네트워크,�방화벽,�애플리케이션�플랫폼,�비지니스�로직�등�5가지�항목을�준비해야�합니다.�

인프라�영역의�리소스가�부족할�때는�신규�요청으로�확보하는�내부�프로세스도�진행해야�되어�시간이�더�필요할�수도�있습니다.�

Page 14: IT 이노베이션 센터 이야기 - AWS Lambda를 활용한 개발 스폰서십 확보편

다음은�클라우드�방식으로�시스템을�구성하는�것을�이야기�해�보겠습니다.�

Page 15: IT 이노베이션 센터 이야기 - AWS Lambda를 활용한 개발 스폰서십 확보편

AmazonDynamoDB

Node.jsInstances

AWS cloud

Amazon S3 bucket

Auto Scaling

RabbitMQ

EC2로�메세지큐와�노드�서버�인스턴스를�추가하고�RabbitMQ와�Node.js를�설치합니다.�

기존의�CDN�Origin�서버는�S3�버킷으로�DB�서버는�DynamoDB로�대체하였습니다.클라우드�환경에서는�스케일아웃이�기본입니다.

서버�네트워크�방화벽�애플리케이션�플랫폼�비지니스�로직

Page 16: IT 이노베이션 센터 이야기 - AWS Lambda를 활용한 개발 스폰서십 확보편

전통적인�방식이�5가지�항목을�준비해야�한다면�클라우드�방식은�AWS로�인프라�영역에�대한�설정이�가능하기�때문에�애플리케이션�플랫폼,�비지니스�로직�등�2가지�항목을�보다�짧은�시간에�준비�할�수�있습니다.�

여기까지가�클라우드를�사용하는�일반적인�이야기�입니다.

Page 17: IT 이노베이션 센터 이야기 - AWS Lambda를 활용한 개발 스폰서십 확보편

저희는�더�짧은�시간에�준비할�수�있는�방법에�대해서도�접근하였습니다.�

그것은�바로�AWS�람다(Lambda)�함수를�사용하는�것입니다�

Page 18: IT 이노베이션 센터 이야기 - AWS Lambda를 활용한 개발 스폰서십 확보편

Amazon API Gateway

AmazonSQS

AWS cloud

AWS Lambda

AmazonDynamoDB

Amazon S3 bucket

모든�서비스를�AWS�서비스로�구성하고�람다(Lambda)�함수에서�호출�될�비지니스�로직�1가지만을�준비하여�보다�짧은�시간에�보여�줄�수가�있었습니다.�

*�서울�리전에서는�아직�람다를�지원하지�않기�때문에�도쿄�리전에서�적용하였습니다.�����차후에�서울�리전에서�가능하면�이전할�계획입니다.

서버�네트워크�방화벽�애플리케이션�플랫폼�비지니스�로직

Page 19: IT 이노베이션 센터 이야기 - AWS Lambda를 활용한 개발 스폰서십 확보편

AWS cloud

AWS Lambda

AmazonDynamoDB

Amazon S3 bucket

람다함수는�Java,�Node.js,�Python�플랫폼을�지원하며�요청-응답으로�호출할�수�있는�것은�APIGateway이고�나머지는�이벤트로�호출됩니다.�

코드를�업데이트�할�때�서버를�내리지�않아도�됩니다.

Amazon Kinesis

AmazonSNS

Amazon SES

AmazonCognito

Amazon CloudWatch

AWSCloudFormation

AWSConfig

Amazon API Gateway PythonNode.jsJava

On-Demand Invocation

Automatic Invocation

Execution Environment

Page 20: IT 이노베이션 센터 이야기 - AWS Lambda를 활용한 개발 스폰서십 확보편

Amazon API Gateway

AmazonSQS

AWS cloud

AWS Lambda

AmazonDynamoDB

Amazon S3 bucket

SQS로는�람다�함수를�호출�할�수�없어�APIGateway와�SQS로�비동기�처리�적용하였습니다.�

APIGateway만으로도�비동기�처리를�적용할�수�있지만�이미�http기반의�poller가�SQS에서�구현된�관계로�쉽게�사용하기�위해�SQS를�적용하였습니다.

서버�네트워크�방화벽�애플리케이션�플랫폼�비지니스�로직

Page 21: IT 이노베이션 센터 이야기 - AWS Lambda를 활용한 개발 스폰서십 확보편

AWS Lambda

람다�함수는�앞서�얘기한�것과�같이�입력값을�받아�처리하고�출력값을�보여주는�상태비저장의�함수로�구현해야�합니다.�

상태비저장이기�때문에�일회성으로�사용할�수�있고�람다�인스턴스를�언제든지�폐기할�수�있습니다.

= ->

Page 22: IT 이노베이션 센터 이야기 - AWS Lambda를 활용한 개발 스폰서십 확보편

전체�함수의�요청�수와�코드가�실행한�시간에�대해�요금이�부과됩니다.�

프리티어는�월�백만의�무료과�월별�400,000GB-초�컴퓨팅�시간이�포함됩니다.�

FAQ�:�https://aws.amazon.com/ko/lambda/faqs/

매월�첫�요청1백만회까지�무료

Page 23: IT 이노베이션 센터 이야기 - AWS Lambda를 활용한 개발 스폰서십 확보편

지금까지�얘기한�내용을�정리해보면�IT임무를�수행하기�위해서는�함수와�시스템을�만들어야합니다.�

그리고�람다를�사용하여�서버없이도�구성�할�수�있기에�이전에�해�왔던�방식보다�쉽고�빠르게�고객에게�보여줄�수�있습니다.�

서버없이도�구성하였기에�NoOps라고�얘기할�수�있습니다.�

하지만�모든�것을�NoOps로�할�수�있다고�얘기하고�싶지는�않습니다.

Page 24: IT 이노베이션 센터 이야기 - AWS Lambda를 활용한 개발 스폰서십 확보편

저희의�운영전략은��

1.�초기에는�람다를�활용하여�운영�2.�컨테이너�기반의�EC2�클라우드�방식으로�전환�할�수�있는�준비(클라우드�락인�제거)�3.�오픈스택을�사용하여�레거시�인프라�관리�효율이�높아지면�하이브리드�방식으로�운영��

하는�것입니다.

Page 25: IT 이노베이션 센터 이야기 - AWS Lambda를 활용한 개발 스폰서십 확보편

중요한�것은�상황과�비용에�따라�선택적으로�운영을�한다는�전략입니다.�

이를�위한�다수의�선택지를�준비하는�것이�목표입니다.

Page 26: IT 이노베이션 센터 이야기 - AWS Lambda를 활용한 개발 스폰서십 확보편

끝까지�읽어주셔서�감사합니다.^^�

서문래[Tech@Mullae]�프로젝트