컴퓨팅 서비스 (상)

CLF-C02 대비 EC2, Lambda, ECS/EKS/Fargate의 차이와 워크로드별로 언제 어떤 컴퓨팅 서비스를 써야 하는지 정리합니다.

컴퓨팅이란 무엇인가요?

클라우드를 처음 접하면 "컴퓨팅"이라는 단어가 낯설게 느껴질 수 있습니다. 간단히 말해, 컴퓨팅은 코드와 프로그램을 실제로 "실행"하는 것을 의미합니다.

집에서 전기를 사용하듯, 클라우드 애플리케이션은 어딘가에서 실제로 작동해야 합니다. AWS는 이 "어딘가"를 여러 방식으로 제공합니다. 이 글에서는 세 가지 주요 방식을 설명합니다.

---

 

숙소 유형으로 생각해보세요

어디서 잘 것인지 고를 때처럼, AWS도 필요에 따라 다른 컴퓨팅 방식을 고릅니다.

Amazon EC2 = 아파트 임대. 내가 원하는 대로 꾸밀 수 있고 오랫동안 사용합니다. 하지만 청소와 관리는 내가 해야 합니다. AWS Lambda = 호텔. 필요할 때 방을 빌리고, 쓰고, 나오면 끝입니다. 청소나 관리는 호텔이 다 해줍니다. 컨테이너 = 이동식 모듈러 주택. 어느 곳에 놓아도 동일한 내부 환경을 유지합니다.

---

 

Amazon EC2 — 나만의 가상 서버

EC2(Elastic Compute Cloud)는 인터넷 어딘가에 있는 가상 컴퓨터를 빌리는 서비스입니다.

전통적으로 서버를 운영하려면 물리적인 기계를 사서 설치하고, 운영체제를 설치하고, 네트워크를 연결해야 했습니다. EC2는 이 모든 것을 클릭 몇 번으로 해결합니다. 수 분 안에 새 서버를 만들고, 필요 없으면 즉시 삭제할 수 있습니다.

주요 개념 세 가지를 알아두세요.

AMI(Amazon Machine Image)는 서버를 만들기 위한 "틀"입니다. 운영체제와 사전 설치된 소프트웨어가 담긴 템플릿입니다. 마치 빵틀로 같은 모양의 빵을 찍어내듯, AMI 하나로 동일한 서버를 여러 개 만들 수 있습니다.

인스턴스 유형은 서버의 성능 사양입니다. CPU가 많이 필요한지, 메모리가 많이 필요한지에 따라 적합한 유형을 고릅니다. 자세한 유형 분류는 다음 글(컴퓨팅 하편)에서 설명합니다.

초 단위 과금은 EC2 서버를 실제로 실행한 시간만큼만 비용을 낸다는 것입니다. 서버를 종료하면 요금이 멈춥니다.

---

 

AWS Lambda — 서버 없이 코드 실행하기

Lambda는 "서버리스(Serverless)" 컴퓨팅 서비스입니다. 서버가 없다는 게 아니라, 서버 관리를 AWS가 전부 해준다는 의미입니다.

어떻게 동작하나요? Lambda에 코드를 올려두면, 특정 사건(이벤트)이 발생할 때 자동으로 실행됩니다. 이벤트가 없으면 실행되지 않고 비용도 발생하지 않습니다.

일상 예시: 쇼핑몰 앱에서 사용자가 프로필 사진을 업로드하면, Lambda가 자동으로 그 사진을 작은 크기로 줄여서 저장합니다. 이 과정 동안만 Lambda가 실행되고, 끝나면 멈춥니다.

Lambda의 특징 네 가지를 기억하세요.

서버 관리 불필요: 운영체제 패치, 서버 용량 관리 같은 것을 AWS가 모두 처리합니다.

이벤트 기반 실행: Amazon S3에 파일이 올라올 때, API 요청이 들어올 때, 일정 시간마다 같은 다양한 이벤트에 반응합니다.

밀리초 단위 과금: 코드가 실제로 실행된 시간(밀리초) 단위로만 비용을 냅니다. 실행되지 않으면 비용이 없습니다.

최대 실행 시간 15분: Lambda는 한 번 실행될 때 최대 15분까지만 작동할 수 있습니다. 오래 걸리는 작업에는 적합하지 않습니다.

---

 

컨테이너 서비스 — 어디서나 동일한 환경

컨테이너는 애플리케이션 코드, 실행에 필요한 라이브러리, 설정 파일을 하나의 패키지로 묶은 것입니다. 마치 이사할 때 가구를 포장하는 것처럼, 컨테이너는 어디서 실행해도 항상 같은 환경을 유지합니다.

"내 컴퓨터에서는 잘 되는데 서버에서 안 돼요"라는 문제를 해결하는 것이 바로 컨테이너입니다.

AWS에서 컨테이너를 사용할 때 알아야 할 네 가지 서비스가 있습니다.

Amazon ECS(Elastic Container Service)는 AWS가 직접 만든 컨테이너 관리 서비스입니다. 여러 컨테이너를 어느 서버에서 실행할지 자동으로 결정해줍니다.

Amazon EKS(Elastic Kubernetes Service)는 Kubernetes라는 업계 표준 컨테이너 관리 도구를 AWS에서 사용할 수 있게 해주는 서비스입니다. 이미 Kubernetes를 사용하는 팀에 적합합니다.

AWS Fargate는 EC2 서버를 직접 관리하지 않고도 컨테이너를 실행할 수 있게 해주는 서비스입니다. "서버리스 컨테이너"라고 이해하면 됩니다. ECS나 EKS와 함께 사용합니다.

Amazon ECR(Elastic Container Registry)은 컨테이너 이미지(패키지)를 저장해두는 창고입니다.

!EC2 vs Lambda vs 컨테이너

상황별 어떤 서비스를 쓸까요?

| 상황 | 추천 서비스 | |------|-----------| | 운영체제를 직접 선택하고 설치하고 싶다 | Amazon EC2 | | 이벤트가 발생할 때만 코드를 실행하고 싶다 | AWS Lambda | | 여러 환경에서 동일하게 작동해야 하는 앱 | 컨테이너 (ECS/EKS + Fargate) | | 간단한 웹사이트나 작은 앱 | Amazon Lightsail | | 대규모 일괄 처리 작업 | AWS Batch |

---

 

시험 핵심 정리

"서버 관리 없이 코드 실행, 이벤트 기반" → AWS Lambda "Lambda 최대 실행 시간" → 15분 "운영체제를 직접 선택하고 관리" → Amazon EC2 "서버를 만들기 위한 템플릿" → AMI (Amazon Machine Image) "어디서나 동일한 환경으로 실행" → 컨테이너 "서버 없이 컨테이너 실행" → AWS Fargate "업계 표준 Kubernetes 관리형 서비스" → Amazon EKS Lambda는 코드가 실행된 밀리초 단위로만 과금 — 실행 안 하면 비용 없음

블로그 목록으로 돌아가기