AWS의 클라우드 서비스 중 EC2(Elastic Compute Cloud), EBS(Elastic Block Store), ELB(Elastic Load Balancer)에 대해 알아보고 그 연관관계를 살펴보기
EC2 (Elastic Compute Cloud)
AWS에서 제공하는 `가상 서버 서비스`로, EC2 인스턴스를 통해 애플리케이션을 실행하고 데이터를 처리할 수 있음.
서버 인스턴스를 `시작하거나 종료`할 수 있으며, `필요한 리소스 만큼만 비용 지불`
따라서 사용자가 얼마만큼의 크기, 용량이 사용되는지 미리 알 수 없을때 (예측할 수 없는 데이터 처리 및 산술적으로 볼 수 없는 크기의 데이터가 몰려올 때) 사용하는 편리한 서비스!
클라우드란?
클라우드란 데이터를 저장하고 처리하는 서버나 애플리케이션 등을 인터넷을 통해 제공하는 기술
즉, 직접 서버나 저장소를 소유하지 않아도 인터넷을 통해 필요한 만큼 컴퓨팅 자원이나 저장소를 사용, 관리 할 수 있게 하는 서비스
EC2 지불 방식
1. On-Demand
- 시간 단위로 가격이 고정되어 `사용한 시간`만큼 비용 지불하는 방식
- 개발 시작과 끝을 미리 알 수 `없는` 경우에 유용
- 오랜 시간동안 선불을 내지않고 `최소한의 비용`을 지불하여 EC2를 사용하고 싶을때 주로 사용
- 초기 개발 단계나 단기 테스트에 유용
2. Reserved
- `한정된 EC2 용량` 사용 가능
- 크기를 특정한 사이즈에 정했으므로 늘리거나 줄이긴 불가능
- 개발 시작과 끝을 미리 알 수 `있는` 경우에 유용
- 선불로 가능하며 1~3년 시간별로 할인 혜택 가능
- 장기 사용시 비용 절감 효과 및 추가적으로 `컴퓨팅 시스템` 사용 가능 (컴퓨팅 비용 대폭 감소)
- 개발 시 요구사항이 자주 반복되지 않고 안정적으로 흘러가며 개발 시간에 대해 예측이 가능하다면 추천
3. Spot
- 경매 방식으로 가장 `저렴하게` 인스턴스를 사용가능
- 내가 원하는 가격에서 EC2를 사용하고 싶을때 현재 가격이 불가능하면 종료된 상태, 시간이 흘러서 가격이 변동되고 목표로 삼은 가격에 `도달`했을때 `사용 가능`,가격이 다시 벗어나면 `인스턴스 종료`
- 인스턴스 시작과 끝 지점에 `구애받지 않을` 경우에 유용 (예기치 않게 종료될 수 있음)
- 예측하긴 어렵지만 `아주 저렴한 비용`으로 사용하고 싶을때
- On-demand와 달리 비용적인 측면에서 상당한 세이빙 효과
EBS(Elastic Block Store)
저장 공간이 생성되어지며 EC2 인스턴스에 부착되는 가상 `하드디스크`
디스크 볼륨 위에 `File System`이 생성 (파일 시스템 생성 등 파일을 로컬 디스크로 옮기는 것이 가능)
특정 `Availability Zone`에 생성된다.
Availability Zone
하나의 Region 내의 여러 데이터센터(AZ)가 있음
`Disater Recovery` : 하나의 서버가 장애가 발생할 때 다른 AZ로 트래픽을 자동으로 전환가능
EBS 볼륨 타입
EBS에서 말하는 볼륨 타입은 EC2 인스턴스에 연결되는 저장 장치의 종류를 의미하며 각 볼륨 타입은 성능, 비용, 사용 용도에 따라 다르게 선택할 수 있음. SSD는 속도가 빠르고, HDD는 용량이 크지만 속도가 느린 편이다.
IOPS, boot volume 키워드 정리 및 개념 정리
IOPS (초당 입출력 작업 수)
- 저장 장치가 1초 동안 처리할 수 있는 입출력 작업 수
- IOPS가 높을 수록 더 많은 데이터를 빠르게 읽고 쓸 수 있어 데이터베이스나 대용량 어플리케이션에 중요
Boot Volume (부트 볼륨) = 루트 볼륨
- 운영체제가 설치된 디스크, EC2 인스턴스가 시작할 때 꼭 필요한 저장장치
입출력은 `데이터를 읽고 쓰는 작업`, 볼륨은 그 `데이터를 저장하는 장치` 이므로 입출력이 빈번하면 더 높은 성능의 볼륨 (ex. SSD)가 필요하고, 입출력이 드문 경우 더 낮은 성능의 볼륨(ex. HDD)를 사용한다.
하드디스크는 우리가 아는 물리적 저장 장치인데 EBS는 EC2 인스턴스에 연결할 수 있는 가상 하드디스크
EBS는 네트워크를 통해 데이터를 저장하고, EC2 인스터스는 EBS를 실제 하드디스크처럼 사용해 데이터를 읽고 쓸 수 있음
<SSD군>
- General Purpose SSD(GP2) : `최대 10K IOPS`를 지원하며 1GB당 3IOPS 속도
- 속도가 `매우 빠른 편`이며 SSD 중 가장 보편적으로 사용된다
- Provisioned IOPS SSD (IO1): `극도의 I/O률`을 요구하는 환경에서 자주 사용. 10K이상 IOPS 지원
- 아주 `방대한 양의 데이터 처리` (매우 큰 DB관리) 같은 환경에서 사용
- 매우 큰 빅데이터 분석시에도 사용
- IOPS가 무료 10K 이상 나올 수 있기 때문에 `입출력 비중이 매우 빈번하고 양이 방대할 경우` 뛰어난 효능
- 그만큼 가격이 비싼 편
<Magentic/HDD군>
- Throughput Optimized HDD (ST1): 빅데이터 Datawarehouse, Log 프로세싱시 주로 사용
- boot volume으로 사용 불가능
- 빅데이터 보관, 컴퓨터 로그 파일 보관하고 읽을 때 추천
- 윈도우처럼 운영체제를 가지고 있을 수 없음
- CDD HDD (SC1): 파일 서버와 같이 `드문 volume 접근 시` 주로 사용, boot volume으로 사용 불가능
- `입출력의 비율이 빈번치 않은 경우` 사용
- 초당 어마어마한 양의 로그 파일이 생성되는 ST1과 달리 SC1은 빈번한 입출력이 필요 없고 오랫동안 보관해도 괜찮은 데이터들 처리할 때 쓰임
- Magentic (Sandard): 디스크 1GB당 가장 싼 비용을 자랑. `boot volume`으로 유일하게 `사용 가능`
ELB (Elastic Load Balancers)
- 수많은 서버의 흐름을 `균형있게` 흘러보내는데 중추적인 역할
- 하나의 서버로 traffic이 몰리는 `병목현상(bottleneck) 방지`
- Traffic의 흐름을 Unhealthy instance -> healthy instance로
- 셧다운이 생기거나 시간초과 등의 이유로 건강하지 않은 인스턴스로 보내지는 트래픽을 건강한 인스턴스로 보냄
ELB 종류
- Application Load Balance : OSI Layer 7에서 작동 (응용계층)
- `HTTP, HTTPS`와 같은 traffic의 load balancing에 가장 적합
- 고급 request 라우팅 설정을 통하여 `특정 서버`로 request를 보낼 수 있음
- 즉, 루트를 변경 시키는 것이 가능해 ELB임의가 아닌 `커스터마이징`으로 라우팅이 가능
- Network Load Balancer: OSI Layer 4에서 작동 (transport 계층)
- `매우 빠른 속도`를 자랑하며 `Production 환경`에서 종종 쓰임
- 고도의 performance가 요구되는 `TCP traffic`에서 적합
- `초당 수백만개의 request`를 아주 미세한 delay로 처리 가능
- 즉, 구글 네이버처럼 큰 서버에 적합
- Classic Load Balancer: 현재 `Legacy`로 간주, 거의 쓰이지 않음
- Layer7의 HTTP/HTTPS 라우팅 기능 지원
- Layer4의 TCP traffic 라우팅 기능 지원
- 시험에 제일 잘 나오는 편
ELB 에러
Load Balancer Error : 504 ERROR
ELB가 제공하는 에러 메시지로, 어플리케이션이나 서버가 응답을 받지 못할때 나타나는 에러
주로 웹서버 레이어 혹은 데이터베이스 레이어에서 해결 가능
X-Forwarded-For 헤더
1. public IP address가 DNS request를 통해 ELB에 도달
2. ELB는 이걸 Private IP address로 인식해 EC2에 전송
`EC2`는 `Private IP address`밖에 볼 수 없음. 출처가 어디인지 어느 곳에서 흘러온 요청인지 알지 못함.
`EC2`가 `X-Forwarded-For 헤더`를 통해 기존의 `public IP address`를 찾을 수 있다
정리
EC2: AWS에서 제공하는 `가상 서버`, 실제 하드웨어가 아닌 가상화된 컴퓨팅 환경을 제공해 `필요한 만큼` 인스턴스 생성 및 관리가 가능
EBS: EC2 인스턴스에 연결되는 `저장소`, EC2 인스턴스는 EBS 볼륨을 사용해 데이터를 저장하고 처리, EBS는 하나의 인스턴스에 부착될 수 있으며, 인스턴스가 필요로 하는 용량과 성능에 맞춰 다양한 `EBS 타입 선택 가능`
ELB: `로드 밸런싱` 기능, 여러 EC2 인스턴스에 분산된 트래픽 관리, 트래픽을 분산시켜 부하를 균등하게 나누고, 특정 인스턴스에 집중되지 않도록 함. `가용성`과 `안정성`을 높이는 역할
정리의 정리
EC2는 가상 서버(컴퓨팅 리소스), EBS는 EC2의 저장소(디스크), ELB는 여러 EC2 인스턴스 사이에 트래픽을 분산시키는 역할
EC2와 EBS: EC2 인스턴스는 데이터를 EBS에 저장하고 사용
EC2와 ELB: 여러 EC2 인스턴스에 분산된 트래픽을 ELB가 관리하여 서버 부하를 줄이고, EC2 인스턴스의 가용성 높임
참고강의
https://www.inflearn.com/course/aws-%EC%9E%85%EB%AC%B8
'백엔드 공부일지 > AWS 공부일지' 카테고리의 다른 글
[AWS] DynamoDB 기초부터 Index, Query, Scan 활용까지 (1) | 2024.11.04 |
---|---|
[AWS] S3 사용 용례 & 암호화 (1) | 2024.10.06 |
[AWS] S3와 S3 스토리지 종류 (0) | 2024.10.06 |
[AWS] RDS 읽기 전용 복제본 & AZ 가용영역 (1) | 2024.09.29 |
[AWS] RDS 관계형 데이터베이스 서비스 (1) | 2024.09.29 |