EC2 (Elastic Compute Cloud)
EC2
- 아마존 웹 서비스에서 제공하는 클라우드 컴퓨팅 서비스
- 클라우드 컴퓨팅 : 인터넷(클라우드)을 통해 서버, 스토리지, 데이터베이스 등 컴퓨팅 서비스 제공
EC2 특징
- Elastic : ‘탄력적인’, 필요에 따라 성능, 용량을 자유롭게 조절할 수 있다
- AWS에서 비용, 성능, 용량 면에서 탄력적인 클라우드 컴퓨터를 제공하는 서비스
- 장점
- 구성에 필요한 시간이 짧다
- AMI를 통해 필요 용도에 따라 다양한 운영체제에 대한 선택 가능
- CPU와 RAM, 용량까지도 손쉽게 구성
- AMI : 소프트웨어 구성 기재 템플릿
- 이미지 종류
- 단순 운영체제(윈도우, 우분투 리눅스 등)만 깔려있는 템플릿
- 아예 특정 런타임이 설치되어 있는 템플릿이 제공 경우도 존재(우분투 + node.js, 윈도우 + JVM 등)
- 이미지 종류
- 컴퓨터로 할 수 있는 모든 일 가능
- 인스턴스 : 1대의 컴퓨터를 의미하는 단위
- 인스턴스 생성 : AWS에서 컴퓨터를 빌리는 것
- 인스턴스는 선택한 AMI를 토대로 구성
RDS (Relational Database Service)
RDS
- AWS 제공 관계형 DB 서비스
EC2 인스턴스에 관계형 DB 엔진을 설치하여 데이터를 관리하면
- 사용자가 일일이 시간을 투자하여 데이터베이스 엔진의 설치와 버전 관리, 데이터 백업해야함
- 가용성, 내구성 확보X
- DB에 저장된 데이터가 유실되거나 정상적 사용 못할 가능성 ↟
- 필요에 따라 DB 규모 확장에 어려움
RDS를 이용하면
- DB 유지 보수와 관련된 일들을 RDS에서 자동 관리
- 초기설정, DB데이터 관리를 제외한 모든 일을 자동으로 처리
- 다양한 DB 엔진 선택지 제공
- 필요와 목적에 맞게 DB 엔진을 선택하여 효율성 높임
- DB 유지 보수와 관련된 일들을 RDS에서 자동 관리
S3 (Simple Storage Service)
Cloud Storage
- 인터넷 공간에 데이터를 저장하는 저장소
- 구글의 Google Drive, 네이버의 MYBOX, 마이크로소프트의 Onedrive 등
- 장점
- 뛰어난 접근성 : 웹에 접속이 가능한 다른 전자기기를 활용하여 클라우드 스토리지에 저장된 데이터 접속 가능
- 인터넷 공간에 데이터를 저장하는 저장소
S3
- AWS 제공 클라우드 스토리지 서비스
- 장점
- 뛰어난 접근성
- 높은 확장성 : 무한 확장 가능, 사용한 만큼 비용을 지불
- 매우 강력한 내구성 : 저장파일 유실 확률 ↡(길걷다가 벼락맞을 확률인 0.0000007% 보다 낮음)
- 높은 가용성 : 스토리지에 저장된 파일들을 정상적 사용 가능 시간이 긺
- 다양 스토리지 클래스 제공 : 저장소 사용 목적에 따라 효율적으로 선택할 수 있는 스토리지 클래스가 달라짐
- 대표적 스토리지 클래스
- Standard 클래스 : 범용 목적. 데이터에 빠른 접근 가능, 데이터엑세스 요청 처리가 빠름. 보관 비용 높음
- Glacier 클래스 : 장기 보관 목적. 속도는 느리지만 비용이 매우 저렴
- Standard-IA, One Zone-IA, S3 Glacier Deep Archive 등 여러 스토리지 클래스 존재
- 정적 웹 사이트 호스팅 가능
- 정적 웹 사이트 : 서버 개입 없이 생성된 파일
- 웹 호스팅 : 서버의 한 공간을 빌려주어 웹 사이트의 배포 및 운영 가능하게 만드는 서비스
S3 핵심 개념
버킷
- 파일을 담는 최상위 디렉토리
- 무한히 많은 파일 저장 가능
- 버킷의 이름은 각 리전에서 고유해야함
- 버킷의 정책을 생성하여 액세스 권한 부여 가능
객체
- 버킷에 담기는 파일
- 파일과 메타데이터로 구성
- 파일 : 키-값 형태
- 키 : 식별자
- 값 : 실제 데이터
- 메타데이터 : 객체 정보가 담김 (객체 생성날짜, 크기, 유형 등)
- 파일 : 키-값 형태
- 모든 객체는 고유한 키를 가짐
- URL 주소를 통해 객체 접근 가능
- URL 주소 형식 : http:// [버킷명] .S3.amazonaws.com/ [객체 키]
- 객체 하나당 크기 : 1Bytes ~ 5TB
Deploy Strategy
3-Tier-Architecture
- AWS 제공 서비스인 S3을 통해 사용자들에게 Client 제공
- 클라이언트 앱을 정적 파일로 빌드하여 제공
- 빌드 : 불필요한 데이터 제거, 통합/압축하여 배포 최적화 상태 만드는 것
- 클라이언트 앱을 정적 파일로 빌드하여 제공
- AWS 제공 CDN 서비스인 CloudFront를 통해 사용자에게 더 빠른 콘텐츠 제공
- CloudFront : 데이터 센터에 데이터를 분산시켜 저장 후, 가까운 지역에서 데이터를 주는 방식
- EC2 서비스를 통해 손쉬운 서버 구성 및 서비스 제공
- RDS 통해 DB 배포
- AWS 제공 Route 53 서비스를 통해 직관적인 도메인 주소를 통해 접근하도록 할 수 있음
- AWS 제공 서비스인 S3을 통해 사용자들에게 Client 제공