Contents

(기초) AWS - EC2

AWS에 대해 알아봅니다.

1. EC2

EC2(Elastic Compute Cloud)는 클라우드환경에서 스토리지가 유연하게 변경될 수 있도록 제공

EC2를 사용하기 위해 EBS라는 디스크 볼륨을 요구함

1.1. EC2 과금 정책

  • On-demand : 시간 단위로 가격이 고정되어 있음

  • Reserved : 한정된 EC2 용량 사용 가능, 1-3년동안 시간별로 할인 적용 받을 수 있음

  • Spot : 입찰(경매) 가격 적용. 가장 큰 할인률을 적용 받으며 특히 인스턴스의 시작과 끝 기간이 전혀 중요하지 않을 때 매우 유용.(갑자기 켜지고 꺼지는 경우 발생)

1.2. EC2 과금 활용 방안

  • On-demand : 오랜시간동안 선물을 내지 않고 최소한의 비용을 지불하여 EC2 인스턴스를 사용하고 싶을 때, 특히 개발 시 최초로 EC2 인스턴스에 deploy 할 때 매우 유용.(개발 시작과 끝의 기간을 알 수 없을 때 권장)

  • Reserved : 안정된, 예상 가능한 workload 시 Reserved 사용 권장, 선불로 인한 컴퓨팅 비용 대폭 감소(개발 시작과 끝의 기간을 알 수 있을 때 권장)

  • Spot : 경매와 유사. 단순히 비용 절감 시 유용함. 인스턴스의 시작/끝 시점에 구애 받지 않을 경우 권장

2. EBS

EBS(Elastic Block Storage)

  • 저장 공간이 생성되어지며 EC2 인스턴스에 부착됨

  • 디스크 볼륨 위에 File System이 생성됨

  • EBS는 특정 Availability Zone에 생성됨

2.1. Availability Zone(AZ)

하나의 Region 안에 여러개의 Availability Zone(이하 AZ)가 존재 할 수 있음

서버가 다운되었을 때 AZ라는 백업을 통해 서비스 제공을 가능하게 해줌

일종의 Disaster Recovery

2.2. EBS 볼륨 타입

2.2.1. SSD

  • (GP2) General Purpose SSD : 최대 10K IOPS를 지원하며 1GB당 3 IOPS 속도가 나옴(보편적으로 사용됨)

  • (I01) Provisioned IOPS SSD : 극도의 I/O률을 요구하는 환경에서 주로 사용됨. 10K 이상의 IOPS를 지원함 (예: 매우 큰 DB관리)

2.2.2. Magnetic/HDD

  • (ST1) Throughput Optimized HDD : 빅데이터 Datawarehouse, Log 프로세싱시 주로 사용

  • (SC1) CDD HDD : 파일 서버와 같이 드문 volume 접근시 주로 사용되며 매우 저렴한 비용(boot volume으로 사용 불가능, OS 설치 불가)

  • (Standard) Magnetic : 디스크 1GB당 가장 싼 비용을 자랑함. (Boot volume으로 사용 가능)

3. ELB

ELB(Elastic Load Balancers)

  • 수많은 서버의 흐름을 균형있게 흘려보내는데 중추적인 역할을 함

  • 하나의 서버로 traffic이 몰리는 병목현상(bottleneck) 방지

  • Traffic의 흐름을 Unhealthy instance → healthy instance로 (Unhealthy는 인스턴스 Shutdown, 등으로 발생)

3.1. ELB 타입

3.1.1. Application Load Balancer

OSI Layer 7에서 작동됨(Application Layer)

  • HTTP, HTTPS와 같은 traffic의 load balancing에 가장 적합함

  • 고급 request 라우팅 설정을 통하여 특정 서버로 request를 보낼 수 있음(root를 변경하는 것)

3.1.2. Network Load Balancer

OSI Layer 4에서 작동되고 매우 빠른 속도를 자랑하며 Production 환경에서 종종 쓰임 (Transport Layer)

  • 극도의 performance가 요구되는 TCP traffic에서 적합함

  • 초당 수백만개의 request를 아주 미세한 delay로 처리 가능

3.1.3. Classic Load Balancer

현재 Legacy로 간주됨, 따라서 거의 쓰이지 않음(Legacy ELB 라고도 함)

  • 성능은 뒤쳐지지만 Layer 4, 7 지원

  • Layer 7의 HTTP/HTTPS 라우팅 기능 지원

  • Layer 4의 TCP traffic 라우팅 기능도 지원

3.2. Load Balancer Error : 504 Error

EC2는 언제나 정상 동작한다는 보장이 없기 때문에 ELB에서 Error를 발견하여 504 Error를 사용자에게 보여줌

Application 또는 Server가 응답받지 못할 때 나타나는 현상

  • 웹서버/DB Layer에서 해결 가능

3.3. X-Forwarded-For 헤더

  • USER --(DNS)-→ ELB -→ EC2

  • public IP address --(DNS)-→ Private IP -→ EC2

  • 152.12.3.225 --(DNS)-→ 10.0.0.23 -→ 10.0.0.23

  • 따라서 EC2는 Private IP address 밖에 볼 수가 없음

  • 하지만 EC2는 X-Forwarded-For 헤더 를 사용해 public IP address 를 알 수 있음

4. Route53

AWS에서 제공하는 DNS 서비스. 도메인 주소를 구매하여 아래 3가지와 연결가능

  • S3 Bucket

  • EC2 instance

  • Load Balancer