Programming/AWS

AWS Lambda, AWS S3란? AWS 주요 서비스 내용 정리

Jan92 2023. 4. 23. 12:42

AWS Lambda, AWS S3(Amazon Simple Storage Service)란

지난번 'AWS란 무엇인가?' 포스팅에 이어 AWS의 주요 서비스들 중 Lambda, S3에 대한 내용을 정리한 것입니다.

2023.04.18 - [IT Info] - AWS Summit 참석 전, AWS란 무엇인가?

 

 

AWS Lambda

AWS Lambda

AWS Lambda는 서버를 제어하거나 프로비저닝(Provisioning) 하지 않고도 코드를 실행할 수 있는 이벤트 중심의 서버리스 컴퓨팅 서비스인데요.

여기서 서버리스는 관련된 서버가 없다는 의미가 아니라, Lambda가 모든 인프라를 관리하는 완전 관리형 서비스이기 때문에 코드를 실행하기 위해 자체적으로 서버를 유지, 관리할 필요가 없다는 것을 뜻합니다.

 

즉, AWS Lambda를 사용하는 경우 서버, 운영체제, 네트워크 계층 및 나머지 인프라가 모두 AWS Lambda에 의해 관리되기 때문에 사용자는 실행을 원하는 애플리케이션 코드에만 집중할 수 있다는 장점이 있는 서비스입니다.

(서버리스 모델에서의 코드는 함수로 구현해야 한다는 특징이 있습니다.)

 

* 프로비저닝(Provisioning)이란, 사용자의 요구에 맞게 시스템 자원을 할당, 배치, 배포해 두었다가 필요시 시스템을 즉시 사용할 수 있는 상태로 미리 준비해 두는 것을 말합니다.

 

AWS Lambda는 기본적으로 이벤트 드라이븐(Event Driven) 방식으로 동작하는데요.

때문에 API Gateway, Elastic Load Balancer의 HTTP 요청을 처리할 수 있으며, S3 객체, DynamoDB, Kinesis 등에서 발생하는 이벤트를 트리거로 실행하는 것도 가능합니다.

 

/*

Event Driven Architecture는 MSA와 같은 분산 아키텍처 완경에서 이벤트를 생성하고 발행된 이벤트를 수신자에게 전송하는 구조로, 수신자는 그 이벤트를 처리하는 방식의 아키텍처인데요.

이때 분산 아키텍처 환경에서 상호 간 결합도를 낮추기 위해 비동기 방식으로 메시지를 전달하는 패턴이 사용됩니다.

*/

 

AWS Lambda와 유사한 컴퓨팅 서비스로는 마이크로소프트 애저(Microsoft Azure)의 애저 펑션(Azure Functions), 구글 클라우드 플랫폼(Google Cloud Platform)의 클라우드 펑션(Cloud Functions), 클라우드 런(Cloud Run) 등이 있으며, 쿠버네티스(Kubernetes) 위에서 서버리스 실행 환경을 구축할 수 있는 케이네이티브(Knative) 등이 있습니다.

 

 


AWS S3

AWS S3

AWS S3(Amazon Simple Storage Service)는 확장성, 데이터 가용성, 보안 및 성능을 제공하는 객체 스토리지 서비스인데요.

S3의 주요 기능으로는 데이터 저장, 데이터 백업 및 복원, 데이터 보안, 데이터 분석 등이 있습니다.

 

S3는 객체 기반 스토리지 시스템이기 때문에 기존의 파일 시스템과는 다르다는 특징이 있는데요.

아래 내용을 통해 객체, 버킷, RRS 등의 개념에 대해 살펴보겠습니다.

 

AWS S3 주요 개념

- 객체(Object)

객체는 파일 또는 데이터 저장 단위를 뜻하는데요.

객체는 데이터와 메타데이터로 구성되며, 데이터는 파일의 내용이나 문자열 등의 실제 데이터이고, 메타데이터는 객체 이름, 크기, 생성일, 마지막 수정일 등 객체의 속성 정보를 나타냅니다. 객체 하나의 크기는 1Byte부터 5TB까지 허용됩니다.

각 객체는 AWS 계정, 버킷 이름, 객체 키를 결합한 유일한 이름을 가지는데요. 이를 통해 객체에 접근할 수 있습니다. (검색, 업로드, 다운로드, 삭제)

 

- 버킷(Bucket)

버킷은 연관된 객체들을 그룹핑한 최상위 디렉터리로 볼 수 있는데요. 버킷은 S3에서 객체를 저장하고 관리하기 위한 가장 기본적인 개념입니다.

각 버킷을 생성할 때는 리전(Region)을 지정해야 하며, 선택한 리전에 따라 데이터 전송 속도, 비용 등이 달라질 수 있다는 특징이 있으며, 각 버킷에 저장할 수 있는 객체수와 용량은 무한합니다.

Bucket은 여러 가용 영역(Availability Zones)과 리전(Region)에 걸쳐 복제되는데, 이를 통해 Bucket 내의 데이터를 안전하게 보호하고, 재해 복구를 위한 데이터 복원 기능을 사용할 수 있습니다.

 

* 리전(Region)은 AWS 인프라가 위치한 지리적인 영역을 말합니다. 각 리전은 완전히 분리된 인프라를 가지고 있으며, 리전 간에는 네트워크를 통해 서로 연결됩니다.

 

- RRS(Reduced Redundancy Storage)

S3의 기본적인 스토리지 클래스인 Standard Storage가 99.999999999%의 높은 내구성을 제공하는 반면, RRS는 Standard Storage에 비해 낮은 내구성을 가지고 있습니다. 때문에 Standard Storage에 비해 저렴한 비용으로 객체를 저장할 수 있다는 특징이 있으며, Standard Storage와 비교하여 데이터 유실 가능성이 있기 때문에 유실되어도 문제가 되지 않는 데이터에 사용되는데요.

임시 데이터나, 손실되어도 문제가 없는 로그 파일, 스크래핑 및 크롤링을 통해 생성된 데이터, 원본 이미지를 통해 생성한 썸네일 등을 저장하는데 적합합니다.

 

 

* AWS S3와 유사한 기능을 제공하는 클라우드 스토리지 서비스로는 Azure Blob Storage, Google Cloud Storage, DigitalOcean Spaces 등이 있습니다.

 

 

 

< 참고 자료 >

https://www.serverless.com/aws-lambda

https://www.44bits.io/ko/keyword/aws-lambda

'Programming > AWS' 카테고리의 다른 글

AWS Summit Seoul 2023 다녀온 후기  (0) 2023.05.05
AWS Marketplace란?(feat. AMI)  (0) 2023.04.26
AWS Summit 참석 전, AWS란 무엇인가?  (0) 2023.04.18