EC2 : Elastic Computing Cloud

EC2

  • 서버가 처리할 수 있는 모든 것을 한다.
  • 정적 사이트 호스팅은 s3로 가능하지만, 동적 웹사이트 호스팅은 EC2 필요
  • EC2 서버라고 부르지 않고, EC2 인스턴스라고 부르는 이유는 일회용(?) 처럼 교체/증설/축소 가능해서이다. 그래서 가상머신과 물리적 서버를 비교할때 가축과 애완이라고 함.
  • 반복성/재사용성/복구성/백업 EC2_server_comparison

EC2 인스턴스 유형

세대가 높을 수록 인스턴스 성능이 더 좋고 더 좋은 가격 대비 가치를 제공받을 수 있다.

  • t타입 : 범용 인스턴스인 T타입의 경우, credit이라는 개념이 있는데, 기준 cpu보다 낮게 사용하고 있는 경우 크레딧을 쌓아놓았다가 갑자기 cpu가 올라가는 시점에 쌓아 높은 cpu credit을 끌어다가 사용 할 수 있는 기능이다.
  • c타입 : 고성능 웹 서버, 배치, 분산 등 집약적 워크로드에 최적화 되어 있다.
  • r타입 : 데이터 마이닝, 빅데이터, 하둡 등등에서 많이 사용함
  • p타입 : 기계학습, 딥러닝 …
  • h타입 : 빅데이터, 네트워크 파일 시스템 …

EC2_family_name EC2_instance_size

AMI

  • AMI (Amazon Machine Image)를 통해 EC2 를 구성하게 되고, 다음과 같은 선택을 할 수 있다.
    1. 사전구축 : 미리 빌드된 AMI를 제공 받아 사용자가 다양한 하위 옵션 추가
    2. AWS marketplace : 소프트웨어 솔루션이 나열된 디지털 카탈로그에서 고를 수 있다.
    3. 자체 생성 : 회사에서 필요한 툴/소프트웨어 등을 추가하여 생성할 수 있다. (Image Builder)
    4. 커뮤니티 AMI : AWS에서 관리해 주지는 않음.
  • 인스턴스 실행 시 User Data (사용자 데이터)를 전달 할 수 있다. EC2_ami EC2_instance

Storage

EBS (Elastic Block Storage)

  • 안정적이고 분리 가능한 블록 수준 스토리지 (외부 하드 드라이브 처럼)
  • 범용 SSD, 프로비저닝된 IOS SSD가 있다.
  • HDD도 있는데 보통 SSD를 사용한다고 함.

EC2_ebs

인스턴스 스토어

  • 인스턴스에 블록 수준의 임시 스토리지 제공.
  • 속도와 성능은 EBS보다 좋지만 휘발성이다.

공유 파일 시스템 (EFS/Fsx)

  • 여러 인스턴스에서 실행되는 애플리케이션이 동일한 파일 시스템을 사용해야 하는 경우, EFS를 사용할 수 있다. EFS 는 완전관리형으로 AWS에서 구성/모니터링 등등 일체 관리를 해준다.
  • S3는 리전레벨이기 때문에 EC2 밖에 있어서 네트워크를 타야하고, object storage이기 때문에 데이터의 일부 수정이 불가능하여 적합하지 않다.

EC2_efs

EC2 전용옵션

  1. 전용 인스턴스 사용

    AWS의 호스트에 인스턴스가 생성될때 다른 계정의 인스턴스와 분리하고 싶을때 전용인스턴스를 사용하면 호스트에 내 인스턴트들만 놓을 수 있다. 대신 정지하고 다시 시작하는 경우에 위치는 변경될 수 있다. (오른쪽 그림 파란색)

  2. 전용 호스트 사용

    고객 전용의 EC2 인스턴스 용량을 갖춘 물리적 서버

EC2_host

AWS Compute Optimizer

기계 학습을 사용하여 과거 사용률 지표를 분석함으로써 비용을 절감하고 성능을 개선할 수 있도록 하는 기능으로 클라우드 워치를 통해서 모니터링 하여, cpu, memeory 등에대한 개선 사항을 보여준다. 초점은 비용 보다는 성능.

인스턴스 추적

태그를 사용하면 간편하게 리소스 관리/검색/필터링 가능하다.

EC2_tag

아키텍쳐 고려사항

  1. 클러스터 배치 그룹
    • 동일 가용영역에 존재하고 인스턴스끼리 서로 호출해야하는 경우 빨리 처리하기위해 최대한 가까운 곳에 두기 위해 사용한다.
    • 단점은 장애시 가용성이 좋지않다.
  2. 분산형 배치
    • on premis에서 데이터센터 혹은 중요 서비스를 동일 rack에 두지 않는 것처럼 ec2도 분산해서 배치할 수 있다.
    • 가용성은 올라가고 성능은 내려감
  3. 파티션 배치 그룹
    • 특정 단위로 rack을 분리하여 배치