AWS - EC2이란?

오송아·2021년 5월 4일
0
post-thumbnail

📌 EC2(Elastic Compute Cloud)란?

클라우드 공간에서 크기가 유연하게 변경되며, 인스턴스를 켜고 끌 수가 있고 켰을때만 비용 지불한다.

EC2 사용시 내는 다양한 지불 방법

  • On-demand : 시간 단위로 가격이 고정되어 있으며, 소프트웨어 및 서버 개발 초기 단계에서 종종 사용
  • Reserved : 한정된 EC2 용량 사용 가능, 1-3년동안 시간별로 할인 적용 받을 수 있음. 일정량을 대여해서 사용하며 on-demand 보다 조금 저렴하지만 크기를 줄이고 늘릴 수 없음 (지정석)
  • Spot : 입찰 가격 적용. 가장 큰 할인률을 적용받으며 특히 인스턴스의 시작과 끝기간이 전혀 중요하지 않을때 매우 유용. 갑자기 스스로 켜지고 꺼지고 가능

사용 용례

  1. On-demand
    오랜시간동안 선불을 내지 않고 최소한의 비용을 지불하여 EC2인스턴스를 사용하고 싶을때, 특히 앱/프로그램 개발시 최초로 EC2인스턴스에 deploy할때 매우 유용함. 즉, 시간당 얼마를 지불해야하는지 개발 시작, 끝 시간 둘 다 모를 때 유용. 단기간에 끝낼 수 있을 때 개발 초기단계에서 EC2 인스턴스에 처음 테스트 할때 적합함

  2. Reserved
    안정된, 예상 가능한 workload시 Reserved 사용 권장, 선불로 인한 컴퓨팅 비용 대폭 감소. 개발 시작, 끝 시간을 미리 알때가 적합하며, 선불로 특정한 금액을 지불할 때 추가적으로 지정되는 컴퓨팅 시스템을 사용할 수 있음

  3. Spot
    단순히 비용 절감 시 유용함. 인스턴스의 시작/끝 시점에 구애받지 않고 예측하기 어려울 경우 권장됨.

📌 EBS(Elastic Block Storage)란?

EC2를 사용하기 위해 EBS라는 디스크 볼륨을 요구하며 EBS는 EC2에 부착되어 있는 일종의 하드디스크, 가상디스크를 의미한다.

  • 저장 공간이 생성되어지며 EC2 인스턴스에 부착된다. 즉, 스토리지 볼륨을 생성하여 EC2에 부착한다.
  • 디스크 볼륨 위에 File System이 생성된다. 따라서 Ec2에 접근 가능, 파일을 로컬디스크에 옮기는 과정 가능
  • EBS는 특정 Availability Zone(AZ)에 생성된다. AZ는 하나의 리전 안에 여러 개의 AZ가 존재할 수 있으며 중심부로부터 복사본들이 AZ로 꾸려지며, 한쪽 서버 망가지면 AZ 백업을 통해 서비스 제공을 가능하게 해주는 일종의 Disaster Recovery

EBS 볼륨 타입 (SSD군, Magnetic/HDD군)

  • SSD군 - 속도 빠름
    1) General Purpose SSD (GP2) : 최대 10K IOPS를 지원하며 1GB당 3IOPS 속도가 나옴. 가장 보편적으로 사용되며 빠르다
    2) Provisioned IOPS SSD (IO1) : 극도의 I/O률을 요구하는(예시 : 매우 큰 DB관리) 환경에서 주로 사용됨. 10K 이상의 IOPS를 지원함 //방대한 양의 데이터 처리, 데이터베이스 테이블 관리시 사용, 가격 비쌈, 매우 큰 빅데이터 분석 시에도 사용

  • Magnetic/HDD군 - 속도 느림
    3) Throughput Optimized HDD (ST1) : 빅데이터 Datawarehouse, Log 프로세싱시 주로 사용 (boot volume으로 사용 가능 X) 즉, 빅데이터 보관하며 컴퓨터 로그 파일을 복원하고 읽어들일 시 사용, 운체를 가지고 있을 수 없음 = boot voulume x
    4) CDD HDD (SC1) : 파일 서버와 같이 드문 volume 접근시 주로
    사용, 역시 boot volume으로 사용 불가능하나 비용은 매우 저렴함. 입출력이 빈번하지 않을 때 사용, 오랫동안 보관해도 괜찮은 데이터 처리 시 사용
    5) Magnetic (Sandard) : 디스크 1GB당 가장 싼 비용을 자랑함. Boot volume으로 유일하게 가능함

📌 ELB (Elastic Load Balancers)란?

네트워크와 관련

  • 수많은 서버의 흐름을 균형있게 흘려보내는데 중추적인 역할을 함
  • 하나의 서버로 traffic이 몰리는 병목현상(bottleneck) 방지
  • Traffic의 흐름을 Unhealthy instance -> healthy instance로 즉, 인스턴스가 셧다운, 시간 추가와 같은 일들 unhealthy instance의 트래픽을 건강한 인스턴스로 보내준다

ELB 종류

  1. Application Load Balancer
    OSI Layer7(Application)에서 작동됨
    HTTP, HTTPS와 같은 traffic의 load balancing에 가장 적합함
    고급 request 라우팅 설정을 통하여 특정 서버로 request를 보낼 수 있음.
    (= 루트를 변경 시켜준다 = 커스터마이징의 라우팅이 가능하다)

  2. Network Load Balancer
    OSI Layer4(Transport Layer)에서 작동됨, 매우 빠른 속도를 자랑하며 Production 환경에서 종종 쓰임
    극도의 performance가 요구되는 TCP traffic에서 적합함
    초당 수백만개의 request를 아주 미세한 delay로 처리 가능.
    (= 굉장히 파워풀하다 = 구글과 같은 큰 서버에서 적합하다)

  3. Classic Load Balancer
    현재 Legacy로 간주됨, 따라서 거의 쓰이지 않음
    성능은 조금 뒤쳐지나 OSI Layer7,OSI Layer4 둘 다 가능하다.
    Layer7의 HTTP/HTTPS 라우팅 기능 지원
    Layer4의 TCP traffic 라우팅 기능도 지원

Load Balancer Error : 504 ERROR

ELB는 에러를 발견하여 우리에게 에러 메세지를 지원
어플리케이션/서버가 응답을 받지 못하는 경우 나타는 504 메세지
주로 웹서버, 데이터베이스 layer에서 해결 가능하다

X-Forwarded-For 헤더


public IP address는 DNS를 통하여 request를 보내 private IP로 인식하며 EC2에 전달하며 EC2는 Private IP address밖에 볼 수 없으며, public IP 모름. X-forwarded-For 헤더를 통해 원래 public IP를 찾을 수 있음

📌 Route 53(Domain)란?

도메인 주소를 구매하여 세가지 백엔드로 연결 시켜주는 것으로 AWS에서 제공하는 DNS 서비스이다.

profile
백엔드 개발자

0개의 댓글