AWS CLF — Computing
AWS Lambda

- 서버를 프로비저닝하거나 관리하지 않고도 코드를 실행할 수 있게 해주는 Serverless 컴퓨팅 서비스
- AWS에서 서버 운영에 필요한 모든 인프라를 관리하며 사용자는 코드를 입력하여 실행
- 요청할 때에만 시스템을 사용하는 온디맨드 방식의 실행으로 사용한 만큼만 비용을 지불
- 이벤트 횟수 및 리소스 사용량을 기반으로 자동 스케일링
- 거의 대부분의 AWS 서비스들과 통합되어 사용이 가능
- AWS CloudWatch와 자동으로 연결되어 있어 손쉬운 모니터링 및 로깅 가능
- 요청 1백만 건당 0.20 USD로 저렴한 가격 정책
- Node.js, Pyhton, Java, C#, Golang 등 다양한 언어 지원
- 환경변수, 버전, Container Image, Endpoint 등 다양한 기능 지원
IDE vs. Google Colab vs. AWS Lambda 비교
| 구분 | IDE (VS Code 등) | Google Colab | AWS Lambda |
|---|---|---|---|
| 주요 목적 | 코드 작성 및 개발 | 개발, 실험, 분석, 교육 | 프로덕션 환경에서의 자동화, 백엔드 로직 실행 |
| 작업 방식 | 대화형 (Interactive) | 대화형 (Interactive) | 비-대화형 (Non-interactive), 이벤트 기반 |
| 실행 주체 | 사람(개발자) | 사람(직접 ‘실행’ 버튼 클릭) | 시스템 이벤트(파일 업로드, API 호출 등) |
| 사용자 인터페이스 | 있음 (코드 에디터) | 있음 (웹 기반 노트북) | 없음(백그라운드에서 실행) |
사용 사례
- S3 업로드 이벤트 감지하여 특정 Lambda 코드 실행
- Kinesis와 통합하여 실시간 스트리밍 처리
- Serverless한 동적 웹사이트 구축
- API 요청을 인증하고 처리하는 백엔드 구축
- 각종 Batch 작업
- 특정 AWS 리소스 Trigger 작업
AWS Batch
- AWS에서 배치 컴퓨팅 작업을 효율적으로 손쉽게 실행할 수 있게 해주는 서비스
- 배치 컴퓨팅은 수동 개입없이 주기적으로 반복적인 컴퓨팅 작업을 수행하는 것으로 시작과 끝이 있음
- 데이터 이행,수식 계산,ETL(Extract,Transform,Load)프로세스 등과 같이 대규모의 데이터 처리 또는 계산 작업에 사용
- AWS 완전관리형 서비스이기 때문에 인프라를 관리할 필요가 없이 코드 작성과 배포, 스케줄링에만 집중
- 배치 작업은 Docker 컨테이너 이미지로 정의되어 Elastic Container Services(ECS)에서 실행됨
AWS Batch vs. Lambda 상세 비교
| 구분 | AWS Batch | AWS Lambda |
|---|---|---|
| 핵심 개념 | 대규모 일괄 처리를 위한 ‘관리형 컴퓨팅 클러스터’ | 이벤트 기반의 ‘서버리스 함수 실행 환경’ |
| 작업 단위 | 도커 컨테이너로 정의된 작업(Job) | 코드로 작성된 함수(Function) |
| 실행 환경 | 사용자가 정의한 EC2 또는 Fargate 클러스터 | AWS가 관리하는 서버리스 환경 (사용자가 볼 수 없음) |
| 확장성 | 작업 대기열의 작업 수에 따라 EC2 인스턴스 수를 자동 조절 (클러스터 단위 확장) | 요청(이벤트)이 발생할 때마다 함수를 개별적으로 자동 실행 및 확장 |
| 실행 시간 | 수 시간, 수일 등 제한 없는 긴 작업에 적합 | 최대 15분 이내의 짧은 작업만 가능 |
| 자원 제어 | 높음 (GPU, 고용량 메모리 등 특정 EC2 인스턴스 유형을 직접 선택 가능) | 낮음 (메모리 용량만 선택 가능, CPU는 메모리에 비례하여 자동 할당) |
| 비용 모델 | 실행된 EC2 인스턴스의 사용 시간에 따라 과금 (스팟 인스턴스 활용 시 비용 대폭 절감) | 함수 호출 횟수 + 실행 시간(밀리초 단위)에 따라 과금 (실행 안 되면 0원) |
| 주요 사용 사례 | -대규모 데이터 처리/변환 (ETL) -유전체 분석, 딥러닝 등 과학 계산 -영상 렌더링 및 인코딩 | -실시간 파일 처리 (S3 이미지 업로드 시 썸네일 생성) -API 백엔드 (API Gateway와 연동하여 웹 요청 처리) -간단한 자동화 작업 (주기적인 데이터 정리 등) |
Amazon Lightsail

- 클라우드 경험이 많지 않은 사용자가 UI에서 손쉽게 웹 사이트나 애플리케이션을 배포할 수 있도록 도와주는 서비스
- 서버,컨테이너,데이터베이스,스토리지,네트워크 등 연관된 서비스들을 쉽게 배포
- Lightsail내 리소스 사용량,성능,상태 등에 대한 알림 및 모니터링을 설정 가능
- 고가용성이 있지만 자동 확장이 없고 AWS 통합이 제한적
- 사용량이 많지 않은 간단한 웹 사이트나 웹 애플리케이션 개발 및 배포에 적합
AWS EC2 vs. Lightsail 상세 비교
| 구분 | EC2 (Elastic Compute Cloud) | Lightsail (라이트세일) |
|---|---|---|
| 핵심 개념/비유 | 부품부터 조립하는 ‘커스텀 PC’ | 미리 완성된 ‘브랜드 PC’ |
| 관리 모델 | IaaS (서비스형 인프라). 사용자가 OS부터 네트워크까지 대부분을 직접 제어하고 책임짐 | 사용하기 쉬운 IaaS. 복잡한 부분을 AWS가 관리해주지만, OS/앱 관리는 사용자 책임 |
| 주요 대상 | 전문가, 기업, 복잡한 아키텍처가 필요한 모든 사용자 | 초보자, 학생, 소규모 비즈니스, 간단한 웹사이트 운영자 |
| 선택의 폭 | 매우 넓음. 수백 가지의 인스턴스 유형, 스토리지(EBS) 종류, 네트워크 옵션을 세밀하게 선택 | 제한적. 미리 구성된 몇 가지 플랜(예: 1GB RAM, 2GB RAM) 중에서 선택. |
| 가격 정책 | 종량제. 사용한 만큼(초 단위) 개별 서비스(인스턴스, EBS, 데이터 전송 등)에 대해 따로 과금복잡하지만 최적화 가능 | 월 고정 요금. 인스턴스, SSD, 데이터 전송량을 묶어서 예측 가능한 단일 요금으로 제공 |
| 네트워킹 | VPC, 서브넷, 보안 그룹, 라우팅 테이블 등 전문적인 지식이 필요함 | 단순 방화벽 규칙만 설정하면 됨. VPC의 복잡성을 숨김 |
| 확장성 | Auto Scaling을 통한 자동 수평 확장이 가능하며 매우 유연함 | 수동 스케일링만 가능 (더 높은 플랜으로 업그레이드 - 스케일 업) |
| 통합성 | 거의 모든 AWS 서비스와 완벽하게 통합됨 | 일부 주요 서비스(S3, RDS 등)와 통합 가능.(VPC 피어링 필요) |
| 적합한 워크로드 | 모든 종류의 워크로드. 대규모 웹 서비스, 빅데이터, 머신러닝, 엔터프라이즈 애플리케이션 등 | 간단한 워크로드. 블로그(WordPress), 소규모 웹사이트, 개발/테스트 환경 |
Conatainer 란?

- 애플리케이션을 실행하기 위한 격리된 환경을 제공하는 가상화 기술
- 일반적으로 Docker 엔진을 사용하여 구축되며, 호스트 운영 체제의 리소스를 공유하면서 실행
- 애플리케이션 실행에 필요한 패키지들을 묶어서 Docker 엔진을 통해 컨테이너로 생성
- 컨테이너라는 격리된 환경에서 실행되므로 환경에 관계없이 동일한 동작을 보장
- 이미지를 사용하여 애플리케이션을 패키징하고 배포하기 때문에 스케일링 및 관리가 용이
- 작은 서비스들의 조합으로 통합된 서비스를 운영하는 마이크로서비스 환경에서 주로 사용
- 관련 플랫폼으로는 대표적으로 Docker와 Kubernetes가 있음
Elastic Container Registry(ECR)
- Docker 컨테이너 이미지를 저장,관리 및 배포하기 위한 완전 관리형 Docker 컨테이너 레지스트리 서비스
- AWS 클라우드 네이티브한 Docker Hub
- 사용자 고유의 개인 Docker 컨테이너 레지스트리를 제공하여 이미지를 손쉽게 저장,관리 및 배포
- IAM과 통합되어 IAM 정책을 사용하여 이미지에 대한 액세스 권한을 관리
- public: 외부에서 저장된 이미지에 접근 가능
-
private: IAM 권한이 있는 유저만 저장된 이미지에 접근 가능