AWS Lambda
안녕하세요. 저는 AWS 교육 및 자격증 팀의 Ian Falconer입니다.
AWS Lambda에 대한 소개 과정을 시작하겠습니다. AWS는 이벤트 중심 서버리스 컴퓨팅 서비스입니다. 이 과정에서는 AWS Lambda에 대해 이야기해 보겠습니다. 간단한 소개와 서비스 혜택을 다룬 뒤에 몇 가지 주요 기능 및 개념에 대해 좀 더 깊이 들어가 보겠습니다. 그 다음에 몇 가지 사용 사례에 대해 이야기하고 간단한 요약으로 마무리하겠습니다.
AWS Lambda란
AWS Lambda란 무엇일까요? AWS Lambda는 서버를 프로비저닝하거나 관리하지 않고도 코드를 실행할 수 있게 해주는 컴퓨팅 서비스입니다. AWS Lambda는 필요할 때만 코드를 실행하고 초당 수천 개의 요청으로 자동 확장됩니다. 몇 분 정도의 시간을 할애하여 이 서비스의 주요 이점을 살펴보고자 합니다. 사용한 컴퓨팅에 대해서만 비용을 지불합니다. 코드를 실행하지 않을 때의 컴퓨팅 시간에 대해서는 비용을 지불하지 않습니다. 따라서 AWS Lambda는 가변적이고 간헐적인 작업 부하에 이상적입니다.
거의 모든 애플리케이션 또는 백엔드 서비스에 대해 아무런 관리 작업 없이 코드를 실행할 수 있습니다. AWS Lambda는 서버 및 운영 체제 유지 관리, 용량 프로비저닝 및 자동 확장, 코드 모니터링 및 로깅을 포함한 모든 관리 기능을 제공하는 고가용성 컴퓨팅 인프라에서 코드를 실행합니다.
AWS Lambda는 Node.js, Java, C # 다양한 프로그래밍 다양한 프로그래밍
영상 및 스크립트가 이상함. - 윤호
사용법
AWS Lambda는 어떻게 사용할 수 있을까요?
- 이 서비스는 이벤트 중심 컴퓨팅에 사용할 수 있습니다.
- S3 버킷 또는 Amazon DynamoDB 테이블의 변경을 포함하여 이벤트에 응답하여 코드를 실행할 수 있습니다.
- Amazon API Gateway를 사용한 HTTP 요청에 응답할 수 있습니다.
- AWS SDK를 사용하여 생성된 API 호출을 사용하여 코드를 호출할 수 있습니다.
- AWS Lambda 기능에 의해 트리거되는 서버리스 애플리케이션을 생성할 수 있습니다.
- 또한 AWS CodePipeline 및 AWS CodeDeploy를 사용하여 자동으로 배포할 수 있습니다.
제한
AWS Lambda는 서버리스 및 마이크로서비스 애플리케이션을 지원하도록 설계되었습니다. 밀결합된 모놀로식 솔루션을 생성하지 않기 위해 AWS Lambda는 다음과 같은 구성 옵션을 사용합니다.
- 디스크 공간은 512MB로 제한됩니다.
- 메모리는 128MB에서 1,536MB까지 할당할 수 있습니다.
- AWS Lamba 함수 실행은 최대 5분으로 제한됩니다.
- 배포 패키지 크기와 최대 파일 디스크립터 수의 제약을 받습니다.
- 그리고 요청 및 응답 본문 페이로드는 6메가바이트를 초과할 수 없습니다.
- 또한 이벤트 요청 본문도 128KB로 제한됩니다.
- 동시 실행의 수는 소프트 한도여서 요청 시 높일 수 있습니다.
- 그리고 AWS Lambda는 코드 실행 횟수와 100밀리초의 실행 시간마다 구축됩니다.
Lambda 함수는 매우 간편하게 구축할 수 있습니다. Lambda 환경을 구성한 다음 코드를 업로드하고 실행하기만 하면 됩니다. 그만큼 간단합니다.
데모
이제 빠른 데모를 보겠습니다. 이미지 인식 앱을 구축해 보겠습니다. 이를 위해 Amazon S3에서 호스팅되는 웹 사이트가 있는 아주 작은 애플리케이션을 만들었습니다. 이미지를 업로드하면 Lambda 함수가 트리거되어 해당 이미지를 처리하고 섬네일 이미지를 생성합니다. (계몽적인 음악) Lambda 함수를 생성하는 방법은 아주 간단합니다. 여기 AWS Lambda의 함수 만들기 페이지에서 AWS Management Console에 와 있는 것이 보이시죠? 이미 여러 개의 Lambda 함수가 있는데요. 여기서는 checkS3PublicAccess Lambda 함수를 살펴보겠습니다. 일단 Create 함수를 누르고 Lambda 함수의 이름을 지정합니다. 그러면 이렇게 나타납니다. 왼쪽 상단에 Lambda 함수 이름이 표시되고, 이제 Lambda 함수를 구성합니다. 런타임을 선택했습니다. 이 경우에는 Python입니다. 핸들러의 이름을 지정했고 Python 코드를 추가했습니다. 이 경우 이 Python 코드, 이 Lambda 함수가 S3 버킷을 검사하고 공개 액세스 권한이 있는 버킷을 발견하면 해당 액세스를 취소한 다음 알림을 보냅니다. Lambda 함수를 구성하는 동안 암호화를 적용하려면 환경 변수를 구성할 수 있습니다. 태그를 적용하고 실행 역할을 선택할 수 있습니다. 이 경우 함수에 필요한 권한을 부여하는 역할을 선택했습니다. 이 경우 Lambda 함수에 필요한 권한을 부여하는 역할을 선택했습니다. 그리고 Lambda 함수의 메모리 할당(이 경우에는 128메가 바이트)과 실행 제한 시간을 구성할 수 있습니다. 저는 최대 5분으로 남겨 두었습니다. 다음으로 트리거 구성으로 이동합니다. 이 경우 CloudWatch 이벤트를 사용하여 Lambda 함수를 트리거합니다. 하나의 CloudWatch 이벤트가 있음을 알 수 있습니다. 해당 이벤트가 활성화되었고 S3 버킷의 변경 사항을 확인하는 데 사용되며, 이 특정 Lambda 함수를 트리거합니다. 이제 Lambda 함수에 대한 모니터링 페이지를 볼 수 있습니다. 그리고 호출 횟수 아래에서 이 Lambda 함수가 4번 실행되었음을 알 수 있습니다. 이 Lambda 함수가 실행되면 알림이 전송되며, 여기에 모든 사용자가 액세스할 수 있는 ifal-public이라는 S3 버킷이 있습니다. 이 Lambda 함수가 이 버킷으로부터의 공개 액세스를 취소했으며 더 나아가 AWS Cloudtrail을 업데이트했습니다. (계몽적인 음악) AWS Lambda를 통해 거의 모든 유형의 애플리케이션 또는 백엔드 서비스에 대해 코드를 실행할 수 있습니다. AWS Lambda 사용 사례에는 자동화된 백업, Amazon S3에 업로드된 객체 처리, 이벤트 중심의 로그 분석, 이벤트 중심의 변환, 사물 인터넷, 서버리스 웹 사이트 운영 등이 있습니다. 실시간 이미지 처리 사용 사례를 살펴보겠습니다. 고객이 Amazon S3에 이미지를 업로드하여 이미지를 즉시 처리하는 Lambda 함수를 트리거합니다. 이 기능을 사용하여 비디오, 섬네일, 색인 파일, 프로세스 로그를 코드 변환하고 콘텐츠의 유효성을 검사하며 실시간으로 데이터를 집계할 수 있습니다. 저희 고객 중 하나인 시애틀 타임즈는 데스크톱 컴퓨터, 태블릿, 스마트폰과 같은 다른 장치에서 볼 수 있도록 이미지의 크기를 조정하기 위해 AWS Lambda를 사용합니다. AWS Lambda 및 Amazon Kinesis를 사용하여 트랜잭션 자동 처리, 클릭 스트림 분석, 데이터 정리 메트릭, 생성 로그 필터링, 소셜 미디어 분석 색인화, 장치 데이터 원격 측정 및 미터링에 대한 실시간 스트리밍 데이터를 처리할 수 있습니다. AWS Lambda를 사용하여 Amazon S3에 저장되거나 Amazon Kinesis에서 스트리밍된 과거 및 현재 데이터를 처리하기 위해 수십억 데이터 포인트를 실시간으로 처리하는 고객도 있습니다. 이들 고객은 매달 1,000억 개의 이벤트를 처리할 수 있습니다. AWS Lambda를 사용하여 추출, 변환 및 로드 파이프 라인을 구축할 수 있습니다. 또한 AWS Lambda를 사용하여 DynamoDB 테이블의 모든 데이터 변경에 대해 데이터 유효성 검사, 필터링, 정렬 또는 기타 변환을 수행하고 변환된 데이터를 다른 데이터 저장소에 로드 할 수 있습니다. Zillow는 AWS Lambda와 Amazon Kinesis를 사용하여 실시간으로 모바일 측정 항목의 하위 집합을 추적합니다. 그 결과 불과 2주 만에 비용 효율적인 솔루션을 개발하고 배포할 수 있습니다. 또한 AWS Lambda를 사용하여 IoT 디바이스에 대한 백엔드를 구축할 수도 있습니다. API 게이트웨이와 AWS Lambda를 결합하여 모바일 백엔드를 쉽게 구축할 수 있습니다. API 게이트웨이를 사용하면 매우 쉽게 API 요청을 인증하고 처리할 수 있습니다. AWS Lambda를 사용하면 풍부하고 개인화된 앱 환경을 쉽게 구축하고 개발할 수 있습니다. 대부분의 고객은 AWS Lambda, Amazon Simple Notification Service(Amazon SNS) 및 API Gateway를 사용하여 웹 사이트와 모바일 애플리케이션을 모두 실행하는 마이크로 서비스 백엔드를 사용합니다. 또한 AWS Lambda를 다른 AWS 서비스와 결합 사용하여 IoT 디바이스에 대한 백엔드를 구축할 수도 있습니다. 개발자는 자동으로 규모가 조정되는 강력한 웹 애플리케이션을 만들 수 있습니다. 이러한 애플리케이션에서는 확장성, 백업 및 다중 데이터 센터 이중화에 필요한 관리 작업이 전혀 필요 없으므로 데이터 센터 전반에서 가용성이 높은 구성으로 실행됩니다. 요약하자면, 우리는 AWS Lambda를 AWS 서비스들의 연결 조직으로 생각할 수 있습니다. 마이크로 서비스 아키텍처 구축에서부터 애플리케이션 실행에 이르기까지 말입니다. 오늘 알려 드린 내용이 조금이나마 도움이 되고 다른 과정을 살펴보면서 계속 학습해 보시기 바랍니다. 저는 AWS 교육 및 자격증 팀의 Ian Falconer였습니다. 시청해 주셔서 감사합니다. (밝은 신시사이저 음악)