EC2- Elastic Compute Cloud
AWS 클라우드에서 가상 머신을 인스턴스라고 한다.
그 중 EC2 인스턴스는 컴퓨팅 리소스로 CPU, 메모리, 스토리지 및 네트워킹 리소스를 필요에 맞게 구성할 수 있도록 지원한다.
간단히 보면, 한 대의 컴퓨터(서버)라고 보면 된다. 서버에 어떤 CPU를 쓸지, 메모리는 얼마나 사용할지 등 설정하는 것처럼 EC2 인스턴스를 구성하기 위해서 필요한 컴퓨팅 리소스를 설정해주어야 한다. 즉, EC2는 클라우드 서비스 중 IaaS에 해당하는 것으로 보면 된다.
https://multitasker-sh.tistory.com/63
클라우드 시스템
클라우드 시스템에서는 가상화 서비스를 3가지로 구분할 수 있다. IaaS, PaaS, 마지막으로, SaaS. IaaS는 Infrastructure as a service로. 말 그대로 인프라만 제공하는 것이다. OS 부터 고객이 설치를 해야한다
multitasker-sh.tistory.com
위 예시로 든 웹 아키텍처에서는 Web Server와 Web Application Server를 구성하기 위해서 EC2가 들어간 것을 볼 수 있다.
https://multitasker-sh.tistory.com/67
Web server vs Web application server
웹 서버 웹 서버란 클라이언트로부터 HTTP 요청을 받아 정적인 컨텐츠를 제공한다. 동적인 컨텐츠 제공 요청을 받을 경우에는 그 요청을 Web Container(혹은 WAS)로 보내고, Web Container(혹은 WAS)로부터
multitasker-sh.tistory.com
EC2는 컴퓨팅을 위한 서버이고, 데이터는 저장하지 않는다.
데이터는 S3, EBS, EFS와 같은 스토리지에 저장한다. 물론, EC2 또한 Instance Store라는 높은 성능(IOPS)의 스토리지 볼륨이 있으나 이는 임시 데이터를 저장하는데 사용되며, 휘발성 데이터로 EC2 인스턴스가 종료되면 데이터가 삭제된다.
EC2는 성능에 따라 6가지 타입의 인스턴스가 있다.
1) General purpose instances - 일반적으로 사용
범용 인스턴스 : 균형 있는 컴퓨팅, 메모리 및 네트워킹 리소스를 제공하며, 다양한 여러 워크로드에 사용
웹 서버 및 코드 리포지토리와 같이 이러한 리소스를 동등한 비율로 사용하는 애플리케이션에 적합
2) Compute optimized instances - 가장 높은 성능의 인스턴스이나 CPU 성능에 포커스
컴퓨팅 최적화 인스턴스 : 고성능 프로세서를 활용하는 컴퓨팅 집약적인 애플리케이션에 사용
배치 처리 워크로드, 미디어 트랜스코딩, 고성능 웹 서버, 고성능 컴퓨팅(HPC), 과학적 모델링, 전용 게임 서버 및 광고 서버 엔진, 기계 학습 추론 및 기타 컴퓨팅 집약적인 애플리케이션에 매우 적합
3) Accelerated computing instances - 가장 높은 성능은 아니지만, CPU 외 코프로레서, GPU 등을 활용하여 컴퓨팅 가속화
가속화된 컴퓨팅 인스턴스 : GPU, 하드웨어 액셀러레이터, 코프로세서 및 FPGA를 이용한 높은 컴퓨팅 애플리케이션에 사용
부동 소수점 수 계산이나 그래픽 처리, 3D 앱 스트리밍 데이터 패턴 일치 등과 같은 업무에 적합
머신러닝이나 딥러닝, AI, 인식 과 같은 요즘 흔히 GPU를 활용한 인공지능 이라고 싸잡아보는 것들에 적합
4) Memory optimized instances - In-Memory DB(SAP HANA, Redis) & In-Memory Analytics(SAS, Aerospike) & In-Memory Cache(Memcached, Redis), Haddp & Spark 클러스터 등과 같이 사용에 최적화
메모리 최적화 인스턴스 : 메모리에서 대규모 데이터 세트를 처리하는 워크로드에 적합
In-Memory DB, 메모리 기반의 빅 데이터 처리 엔진 및 메모리를 집중적으로 사용하는 애플리케이션에 적합
5) Storage optimized instances - 메모리 최적화 인스턴스와 같이 빠른 데이터 처리에 목적이 있으나, 메모리에서 처리에 포커스가 된 것이 아닌, 큰 데이터베이스(데이터웨어하우스, 하둡)에 포커스가 맞춰진 인스턴스
스토리지 최적화 인스턴스 : 로컬 스토리지에서 매우 큰 데이터 세트에 대해 많은 순차적 읽기 및 쓰기 액세스를 요구하는 워크로드에 적합
애플리케이션에 대해 대기 시간이 짧은, 수만 단위의 무작위 초당 I/O 작업 수(IOPS)를 지원하도록 최적화
6) HPC Optimized - 컴퓨터 최적화 인스턴스 보다 저렴한 가격으로 HPC 애플리케이션을 구성 가능
고성능 컴퓨팅(HPC) 인스턴스 : AWS에서 HPC 워크로드를 대규모로 실행할 때 최고의 가격 대비 성능을 제공하도록 특별히 제작
대규모의 복잡한 시뮬레이션 및 딥 러닝 워크로드와 같이 고성능 프로세서가 유용한 애플리케이션에 적합