AWS 기본 용어 정리: S3, EC2, RDS, AMI란?
EC2(Elastic Compute Cloud)
- EC2란 아마존 웹 서비스에서 제공하는 클라우드 컴퓨팅 서비스
- 클라우드 컴퓨팅은 인터넷(클라우드)을 통해 서버, 스토리지, 데이터베이스 등의 컴퓨팅 서비스를 제공하는 서비스
- aws에서 원격으로 제어할 수 있는 가상의 컴퓨터 한 대를 빌리는 것. 이때 빌리는 컴퓨터는 instance라고 한다.
이점
- 구성하는 데 시간이 짧다
- 다양한 운영체제, CPU, RAM 선택이 가능하다(AMI를 통해)
- 사용한 만큼만 비용을 지불하면 되기 때문에 유연하다
AMI(Amazon Machine Image)
- 인스턴스를 생성하는 데 필요한 소프트웨어 구성(운영 체제, 애플리케이션 서버, 애플리케이션)이 포함된 템플릿
- 단순히 운영체제(윈도우, 우분투 리눅스 등)만 깔려있는 템플릿을 선택할 수도 있고, 아예 특정 런타임이 설치되어있는 템플릿이 제공되는 경우도 있다. (우분투 + node.js, 윈도우 + JVM 등)
- AWS EC2 인스턴스를 생성한다는 것은 AMI를 토대로 운영체제, CPU, RAM 혹은 런타임 등이 구성된 컴퓨터를 빌리는 것
RDS
- RDS는 Relational Database Service의 약자로 AWS에서 제공하는 관계형 데이터베이스 서비스
- EC2 인스턴스에 관계형 데이터베이스 엔진을 설치해서 데이터를 관리하면, 데이터베이스와 관련해서 자동으로 관리를 담당하는 부분이 매우 적기에, 사용자가 일일이 시간을 투자하여 데이터베이스 엔진의 설치와 버전 관리, 데이터 백업을 해야 한다.
- 게다가 가용성과 내구성이 확보되지 않기에 데이터베이스에 저장된 데이터가 유실되거나 정상적으로 사용하지 못할 확률이 커지며, 후에 필요에 따라 데이터베이스의 규모를 확장하기 어렵다.
이점
- RDS를 이용하면 데이터베이스 유지보수와 관련된 일들을 RDS에서 전적으로 자동 관리하므로 사용자가 해야할 일은 초기 설정을 제외하고 데이터베이스에 저장된 데이터를 관리하는 일밖에 없다.
- 다양한 데이터베이스 엔진 선택지를 제공한다. 데이터베이스 엔진마다 제공하는 기능이 조금씩 다르기에 필요와 목적에 맞게 데이터베이스 엔진을 선택하여 효율성을 높일 수 있다.
S3(Simple Storage Service)
- 클라우드 스토리지란 쉽게 말해서 인터넷 공간에 데이터를 저장하는 저장소
- S3는 Simple Storage Service의 약자로 AWS에서 제공하는 클라우드 스토리지 서비스
이점
- 높은 확장성으로 많은 시간과 수고를 들이지 않고 스토리지 규모를 확장/축소할 수 있다. S3에서는 스토리지의 용량을 무한히 확장할 수 있다.
- 사용한 만큼만 비용을 지불하면 되기 때문에 비용적인 측면에서 매우 효율적이다.
- 스토리지의 내구성이 높아 저장된 파일을 유실할 가능성이 적어진다. S3는 99.999999999%의 내구성을 보장한다.
- 가용성이 높아 스토리지에 저장된 파일들을 정상적으로 사용할 수 있는 시간이 길어진다. S3는 연간 99.99%의 스토리지 가용성을 보장하도록 설계가 되어 있다.
- 다양한 스토리지 클래스를 제공. 저장소를 어떤 목적으로 활용할지에 따라 효율적으로 선택할 수 있는 스토리지 클래스가 달라진다.
- 버킷이라는 저장 공간에 정적 파일을 업로드하고 버킷을 정적 웹 사이트 호스팅 용도로 구성하면 정적 웹 사이트를 배포할 수 있다.
- 정적 파일은 서버의 개입 없이 생성된 파일. 반대로 클라이언트가 서버에 요청을 보내면, 서버가 요청에 맞추어 그 자리에서 생성한 파일을 '동적' 파일이라고 부른다.