우리가 서비스를 운영하기 위헤서는 서버가 필요하다. 서버를 통해 1. 웹 애플리케이션을 호스팅하고 2. 기업에 필요한 컴퓨팅 용량을 제공한다.
AWS → 물리적인 서버가 아닌 가상화된 서버를 제공
EC2는 가상화된 서비스에 액세스하는 데 사용하는 서비스이다.
온프레미스 | EC2 |
---|---|
자체적인 데이터 센터에서 물리적인 서버 이용 | 이미 데이터 센터를 구축해서 보안 유지 |
사전 연구 필요 → 구매할 서버 유형과 필요한 서버 대수 확인 | AWS에서 엄청난 양의 컴 퓨팅 용량을 지속적으로 운용 → 사용자가 필요할 때 용량의 일정 부분을 마음껏 사용 가능 |
하드웨어 비용 선결제 | EC2를 사용한 만큼만 비용 지불(실행중인 인스턴스 비용만 청구) |
제공 업체에서 서버를 전달할 때까지 기다려야 함 | |
해당 서버를 소유하거나 데이터 센터로 옮겨 설치, 제반 작업 수행, 전선 연결 | 이미 서버를 구입하고 필요한 제반 작업을 마쳤으며 사용할 수 있는 온라인 상태 |
보안, 전원 확인 | 원하는 EC2 인스턴스를 요청하기만 하면 인스턴스가 시작하고 가동, 몇 분안에 사용 가능 |
일단 서버를 구매하면 사용 여부와 상관 없이 무조건 보유해야 한다 | 필요한 작업이 끝나면 EC2 인스턴스를 손쉽게 중단 → 필요하지 않거나 원하지 않는 서버를 가지고 있을 필요가 없다 |
👉🏻 온프레미스로 실행하는 방법과 비교하여 훨씬 유연하고 비용 효율적이고 빠르다!
AWS는 고객이 어려워하는 부분을 이미 해결해두었다!
AWS에서는 가상화라는 기술을 사용하여 EC2를 관리한다
AWS에서 관리하고 있는 물리적 호스트 시스템에서 실행이 되기 때문에 EC2 인스턴스를 가동할 때 전체 호스트를 다 소유할 필요가 없다.
👉🏻 호스트를 다른 여러 인스턴스와 공유해서 사용한다 = 가상 머신
호스트 머신에서 실행하는 하이퍼바이저가 가상 머신끼리 서로 물리적인 리소스를 공유하도록 책임을 진다
이것을 멀티 테넌시라고 한다. 이것을 AWS에서 관리!
→ 여러 가상머신이 기본적인 하드웨어를 공유하는 것
호스트의 리소스를 서로 공유하는 가상 머신을 서로 분리해주는 일을 책임진다
👉🏻 EC2 인스턴스는 서로 격리되어 있어서 안전하다는 뜻!
리소스를 공유할 수는 있지만, 같은 호스트의 다른 EC2 인스턴스는 전혀 인식하지 못한다.
위에서 설명한 모든 것들을 직접 설정할 필요가 없다. 새로운 서버를 가동할 수도 있고, 오프라인 전환도 가능하다. 또한 인스턴스들의 구성에 대해서도 높은 수준의 유연성과 제어력을 확보 가능하다.
EC2 인스턴스를 프로비저닝할 때 운영체제로서 Windows와 Linux, Mac 0S 등을 선택할 수 있다. 선택한 EC2 인스턴스 수천 개를 온디맨드로 프로비저닝 할 수도 있다. 각자 원하는 방식으로 비즈니스에 필요한 애플리케이션을 가동할 수 있다. 운영 체제 외에 인스턴스에서 실행할 소프투웨어도 구성할 수 있다.
굉장히 작은 인스턴스부터 시작하여 애플리케이션이 서버 한도를 초과하면 그 때 더 많은 메모리와 CPU를 제공할 수 있다.
언제든지 크기를 늘리거나 줄일 수 있으며 EC2의 네트워킹 측면도 제어할 수 있다.
⇒ AWS를 사용하면 더 쉽고 비용 효율적으로 서버를 확보할 수 있다.
목적에 따라 다양한 유형이 있으며 이를 인스턴스 패밀리로 구분한다.
컴퓨팅에서 메모리는 임시 스토리지 영역이다.
→ 중앙 처리 장치(CPU)가 작업을 완료하는 데 필요한 모든 데이터와 명령이 들어있다
컴퓨터 프로그램이나 애플리케이션은 스토리지에서 메모리로 로드된 후 실행된다. → 이러한 사전 로드 프로세스 덕분에 CPU가 컴퓨터 프로그램에 직접 액세스 할 수 있다.
하드웨어 액셀러레이터 또는 코프로세서를 사용하여 일부 기능을 CPU에서 실행되는 소프트웨어에서보다 더 효율적으로 수행
→ 하드웨어 액셀러레이터는 데이터 처리를 가속화할 수 있는 구성 요소
로컬 스토리지의 대규모 데이터 집합에 대한 순차적 읽기 및 쓰기 액세스가 많이 필요한 워크로드를 위해 설계
초당 입출력 작업 수(IOPS): 스토리지 디바이스의 성능을 측정하는 지표, 디바이스가 1초 내에 수행할 수 있는 입력 또는 출력 작업의 수
👉🏻 스토리지 최적화 인스턴스는 지연 시간이 짧은 임의 IOPS를 애플리케이션에 제공하도록 설계
사용 사례에 따라 다양한 요금 옵션을 제공한다!
인스턴스를 실행한 기간만큼만 비용을 낸다
인스턴스 유형과 선택한 운영 체제에 따라 시간당 혹은 초당으로 과금, 약정이나 선결제가 필요 없다
처음 사용 시 서비스를 가동하고 워크로드를 테스트하며 조정할 때 자주 사용한다
✳️ 중단할 수 없는 불규칙한 단기 워크로드가 있는 애플리케이션에 가장 적합
1년 이상 지속되는 워크로드에는 권장하지 않는다 (예약 인스턴스를 사용하는 것이 비용 절감 효과가 더 크기 때문)
일정한 사용량을 약정하는 대가로 EC2를 저렴하게 제공
특정 인스턴스 패밀리 및 리전에 대해 1년 또는 3년의 기간으로 약정하면 사용한 시간에서 약정한 용량만큼 할인된 비용 청구 → AWS 컴퓨팅 사용량 요금을 72%까지 절약할 수 있다
약정 사용량까지는 할인된 Savings Plans 요금이 청구되지만, 약정을 초과한 사용량에 대해서는 일반 온디맨드 요금이 청구된다
AWS Fargate와 AWS Lambda 사용량에도 적용할 수 있는 보다 유연한 요금제
✳️ 약정 기간 동안 Amazon EC2 사용량에 유연성이 필요한 경우 유용한 옵션
가용 영역, 인스턴스 크기, OS 또는 테넌시에 관계없이 선택한 리전에서 EC2 인스턴스 패밀리의 EC2 인스턴스를 실행한다 → 표준 예약 인스턴스와 비슷
하지만 할인을 받기 위해 EC2 인스턴스 유형 및 크기, OS, 테넌시를 사전에 지정할 필요가 없다! 또한 EC2 용량 예약 옵션도 없다!
꾸준한 상태의 워크로드나 사용량이 예측 가능한 워크로드에 적합
온디맨드 요금제 대비 최대 75% 저렴하며, 1년 또는 3년을 약정하면 할인받는다
3가지 결제 방법
✳️ 안정적 상태의 애플리케이션에 필요한 EC2 인스턴스 유형 및 크기, 그리고 해당 애플리케이션을 실행할 AWS 리전을 알고 있는 경우에 적합
위의 자격 요건을 명시하면 EC2 예약 인스턴스의 가용 영역을 지정할 수 있다
✳️ EC2 인스턴스를 여러 가용 영역 또는 다양한 인스턴스 유형에서 실행해야 하는 경우 적합
예약 인스턴스 약정 기간 종료 시 Amazon EC2 인스턴스를 중단 없이 계속 사용할 수 있다
하지만 인스턴스를 종료하거나 인스턴스 속성과 일치하는 새 예약 인스턴스를 구입할 때까지는 온디맨드 요금이 부과된다
여분의 Amazon EC2 컴퓨팅 용량을 온디맨드 가격의 최대 90%까지 할인을 받아 사용
AWS가 필요 시 언제든 인스턴스의 용량을 회수할 수 있다 (회수 2분 전에는 경보 제공, 이후 필요할 때 언제든 다시 시작 가능)
워크로드에서 중단을 허용할 수 있는지 확인해야 한다
대표적으로 배치 워크로드에 스팟 인스턴스가 사용된다.
✳️ 시작 및 종료 시간이 자유롭거나 중단을 견딜 수 있는 워크로드에 적합
EC2가 동작하는 물리적 호스트를 전용으로 사용할 수 있게 해준다
다른 사용자와 물리적 호스트, 서버 머신을 공유하지 않게 되며 일반적으로 규정 준수 요구 사항을 충족하는데 사용한다
당연히 가장 비용이 많이 든다!