AWS란? 아마존이 빌려주는 컴퓨터와 고객에게 남는 일

AWS는 Amazon Web Services의 약자로, 아마존이 제공하는 클라우드 서비스입니다. 기업은 AWS에서 프로그램을 실행할 컴퓨팅 자원과 데이터를 보관할 공간, 네트워크 등을 이용합니다. 아마존 쇼핑몰에 입점하는 서비스와는 별개이며, AWS를 사용한다고 회사의 상품이나 데이터를 아마존 쇼핑몰에서 판매하는 것도 아닙니다.

클라우드는 컴퓨터가 사라지는 기술이 아닙니다. 실제 장비는 데이터센터에서 돌아가지만, 이용자는 장비를 직접 구매하고 설치하는 대신 필요한 기능을 서비스로 제공받습니다. 다만 ‘컴퓨터를 빌린다’는 설명만으로는 AWS의 다양한 서비스와 비용, 관리 책임을 모두 설명할 수 없습니다.

이 글의 목차

서버를 빌리는 것과 파일을 보관하는 것은 다르다

EC2는 프로그램을 실행할 가상 서버를 만드는 서비스입니다. 가상 서버는 물리적 컴퓨터의 자원을 소프트웨어로 나누어 제공하는 실행 환경입니다. 고객은 운영체제와 프로그램을 올려 자신의 서비스를 운영합니다. 이 가상 서버 한 개를 AWS에서는 인스턴스라고 부릅니다.

S3는 객체 스토리지입니다. 파일과 그 파일을 설명하는 부가정보를 객체라는 단위로 저장합니다. 객체를 담는 논리적 저장 공간은 버킷이고, 각 객체는 키라는 식별자로 구분됩니다. 고객이 프로그램을 설치하는 서버인 EC2와 파일을 저장하고 가져오는 S3는 같은 상품이 아닙니다.

S3 공식 문서에는 웹사이트 자료, 백업, 보관 자료 등의 용도가 나옵니다. 파일의 여러 버전을 남기는 기능도 있지만, 기능이 존재하는 것과 모든 사용자의 파일에 자동으로 원하는 보존 정책이 적용되는 것은 다릅니다. 버전 관리와 접근 권한 등은 설정에 따라 작동합니다.

서버리스에도 서버는 있다

Lambda는 서버를 직접 준비하고 관리하지 않고 코드를 실행하는 서비스입니다. 대표적인 Lambda Functions는 특정 사건이나 API 요청에 반응해 코드를 실행합니다. 파일이 올라오거나 프로그램이 요청을 보내는 일이 실행 계기가 될 수 있습니다.

여기서 서버리스는 ‘서버가 없음’이 아니라 ‘이용자가 서버 운영을 직접 맡지 않음’에 가깝습니다. AWS가 기반 장비와 실행 환경을 관리하고, 고객은 실행할 코드와 연결할 기능을 구성합니다. 같은 AWS 안에서도 EC2와 Lambda의 관리 범위가 다른 이유입니다.

이 차이는 컴퓨터를 빌리는 범위를 넘어섭니다. 가상 서버를 제공받을 수도 있고, 일정한 작업을 수행하는 기능을 제공받을 수도 있습니다. 서비스 선택에 따라 운영체제 관리와 용량 조절을 누가 맡는지가 달라집니다.

사용량에 따라 늘어난다는 말에는 설정이 포함된다

미국 국립표준기술연구소 NIST는 클라우드의 특성으로 필요할 때 자원을 직접 확보하는 방식, 네트워크 접근, 자원 공동 이용, 탄력적인 확장·축소, 사용량 측정을 제시합니다. 클라우드가 단순한 원격 컴퓨터 대여와 구별되는 배경입니다.

AWS의 EC2 Auto Scaling은 이를 실제 서비스로 보여줍니다. 여러 EC2 인스턴스를 그룹으로 묶고 최소·최대·목표 수량을 설정합니다. 정해진 정책에 따라 수요가 늘면 인스턴스를 추가하고 줄면 종료합니다.

‘자동 확장’이라고 해도 아무 조건 없이 무한히 늘어나는 것은 아닙니다. 고객이 정한 범위와 정책 안에서 작동합니다. 또한 이 기능 자체에 별도 요금이 없다는 안내는 새로 실행한 EC2나 연결된 저장장치까지 무료라는 뜻이 아닙니다. 실제로 사용하는 자원 비용은 남습니다.

리전과 가용 영역은 장애를 나누는 단위다

리전은 서로 구분되는 지리적 지역이고, 가용 영역은 한 리전 안에서 분리된 위치입니다. AWS는 한곳의 장애가 다른 위치의 자원까지 동시에 멈추는 위험을 줄이기 위해 이런 구조를 사용합니다.

EC2 문서는 리전 사이에 자원을 자동 복제하지 않는다고 설명합니다. 한 리전에 서버를 만들었다고 다른 나라에 동일한 서버가 자동으로 생기는 구조가 아닙니다. 여러 가용 영역에 서버를 배치하더라도 장애 때 다른 서버가 요청을 처리하도록 애플리케이션을 구성하는 일이 필요합니다.

따라서 ‘AWS가 여러 지역에 데이터센터를 운영한다’는 사실과 ‘우리 서비스가 모든 지역의 장애를 견딘다’는 주장은 다릅니다. 앞의 말은 공급자의 기반 시설에 관한 설명이고, 뒤의 말은 고객 서비스가 어떤 자원을 어떻게 연결했는지에 관한 설명입니다.

요금은 저장 용량 하나로 끝나지 않는다

S3 요금표는 보관, 요청과 데이터 조회, 데이터 전송, 복제, 관리 기능 등을 구분합니다. 같은 크기의 자료라도 저장 기간과 저장 등급, 읽고 쓰는 횟수, 자료가 이동하는 경로에 따라 청구 항목이 달라집니다.

특히 일부 저빈도 접근 저장 등급에는 최소 보관 기간이나 최소 과금 크기가 있습니다. 파일을 일찍 지웠다는 사실만으로 해당 기간의 모든 비용이 없어지는 것은 아닙니다. 저장 공간의 단가와 파일을 실제로 이용하는 전체 비용은 구분됩니다.

다른 과금 방식도 존재합니다. AWS Savings Plans는 일정 기간 사용 금액을 약정하는 구조입니다. 사용한 만큼 내는 방식과 약정을 통해 가격 조건을 달리하는 방식이 함께 있으므로, AWS 전체를 하나의 단순한 월정액이나 완전한 무약정 상품으로 표현할 수는 없습니다.

서버를 껐는데도 비용이 남는 이유

AWS의 EC2 상태 안내는 실행 중, 중지됨, 종료됨을 구분합니다. 화면에서 접속을 끊는 것은 가상 서버를 중지하는 일과 다릅니다. 실행 중인 인스턴스는 사람이 접속하지 않고 프로그램이 쉬고 있어도 해당 실행 상태의 요금이 발생합니다.

중지 상태가 되면 그 인스턴스의 실행 요금은 중단되지만, 연결된 EBS 저장장치의 보관 요금은 남을 수 있습니다. EBS는 가상 서버와 연결해 쓰는 저장 공간입니다. 컴퓨터의 계산을 멈춘 것과 그 컴퓨터에서 사용하던 자료를 저장할 공간까지 없앤 것이 별도 작업이기 때문입니다.

중지와 종료도 다릅니다. 중지한 인스턴스는 다시 시작할 수 있지만 종료한 인스턴스 자체는 다시 시작할 수 없습니다. 다만 저장장치의 삭제 여부는 별도 설정과 종류에 영향을 받습니다. AWS 전체의 비용이 서버 한 개의 전원 상태만으로 결정되지 않는 실제 사례입니다.

화면에서 일어난 일그 사실만으로 결정되지 않는 것
서버에 접속하지 않음실행 상태와 실행 요금이 중단됐는지
인스턴스를 중지함연결된 저장장치 비용도 없어졌는지
인스턴스를 종료함모든 관련 저장 자료가 삭제됐는지
파일이 목록에서 사라짐과거 버전까지 영구 삭제됐는지

자료: AWS EC2 instance state changes, Working with delete markers. 개별 약정 요금과 저장 설정은 별도입니다.

파일을 지웠는데 과거 버전이 남을 수도 있다

S3에서 버전 관리를 켠 버킷은 같은 이름의 자료에 여러 버전을 보관할 수 있습니다. 이때 특정 버전을 지정하지 않는 일반 삭제 요청을 보내면, 기존 내용을 곧바로 모두 지우는 대신 삭제 표시를 현재 버전으로 추가할 수 있습니다. AWS는 이를 삭제 마커라고 부릅니다.

보통 방식으로 그 파일을 읽으면 ‘찾을 수 없음’ 응답이 나오지만, 이전 버전은 남아 있을 수 있습니다. 지금 조회되는 결과와 저장된 모든 버전의 존재 여부가 다르기 때문입니다. 버전 관리가 켜진 경우의 설명이지 모든 S3 파일 삭제가 같은 방식이라는 뜻은 아닙니다.

이 기능은 앞서 본 서버 중지와도 닮은 구분을 보여줍니다. 이용자가 보는 한 가지 상태가 바뀌었다고 관련된 모든 자원이 함께 사라지는 것은 아닙니다. AWS에서는 실행할 계산 자원, 지속해서 보관할 데이터, 데이터의 이전 버전을 각각 관리합니다.

보안을 모두 아마존이 맡는 것은 아니다

AWS는 기반 시설의 보안과 고객이 설정하는 영역의 보안을 나누는 공동 책임 모델을 설명합니다. EC2에서는 고객이 게스트 운영체제의 업데이트, 설치한 프로그램, 보안 그룹이라는 방화벽 설정 등을 관리합니다.

S3처럼 더 많은 운영을 AWS가 맡는 서비스에서는 고객이 운영체제를 직접 관리하지 않습니다. 그래도 데이터의 분류, 암호화 옵션, 누가 무엇에 접근할 수 있는지를 정하는 권한은 고객의 관리 범위에 남습니다. ‘관리형 서비스’라는 표현은 모든 설정과 데이터 이용 책임이 공급자에게 넘어간다는 뜻이 아닙니다.

물리적 시설을 직접 지킬 필요가 없다는 것과 직원 계정이 퇴사 뒤에도 자료를 읽을 수 없도록 관리하는 것은 서로 다른 업무입니다. AWS를 이용해도 회사 내부의 사용자·권한 관리가 계속 필요한 이유입니다.

AWS를 쓴다는 말만으로 알 수 없는 것

AWS는 하나의 완성된 업무 프로그램 이름이 아니라 서로 다른 기능을 제공하는 서비스 묶음입니다. 두 회사가 모두 AWS를 사용해도 한쪽은 가상 서버를 직접 관리하고, 다른 쪽은 파일 저장이나 특정 코드 실행 기능만 이용할 수 있습니다.

그래서 AWS 이용 여부만으로 비용 수준, 자동화 정도, 장애 대응 범위, 고객 데이터의 접근 권한을 확정할 수 없습니다. 무엇을 서비스로 제공받고 어떤 부분을 회사가 운영하는지를 구분해야 실제 구조가 드러납니다. AWS의 핵심은 컴퓨터를 없애는 것이 아니라 컴퓨팅 기능을 제공받는 단위와 관리 범위를 나누는 데 있습니다.

참고자료