Elastic Compute Cloud. CPU 사용량 그런 거 없이 기본적으로 켜놓은 시간을 기준으로 과금하는 구조
Elastic Compute Cloud. CPU 사용량 그런 거 없이 기본적으로 켜놓은 시간을 기준으로 과금하는 구조다. 다만 새 서버 인스턴스를 생성하고 프로그램 올리고 구동하는 게 전부 제공되는 API로 다 되기 때문에 Auto Scaling 서비스와 연계해서 트래픽이 몰리면 인스턴스를 자동으로 늘려서 대응하고 트래픽이 줄어들면 만들었던 인스턴스를 없애는 일을 할 수 있다. 성능별로 micro/small/large/xlarge 등으로 세분화되는데, 주의할 것은 성능 좋은 인스턴스를 쓸수록 그만큼 과금액이 기하급수적으로 늘어난다. 때문에 작은 서버 여러 대로 분산처리를 하는 것이 필수고, 고성능이 필요한 연산이 있으면 필요할 때만 잠깐씩 서버를 생성했다가 계산 끝내고 다시 없애버리는 식으로 사용시간을 아껴야 한다. 시간당 요금을 결제하는 방법부터 다양한 방식의 사용법 및 과금법이 존재한다.
또한 고려할 점이 데이터 트래픽 요금이다. 현재는 인터넷구간으로 월 1GB까지 무료, 10TB까지는 GB당 0.09달러 등으로 책정되어 있다. 그러니 대용량 데이터용을 생각할 때는 회선비용도 고려해야한다. 정적 콘텐츠 제공용으로는 S3+CloudFront, 대규모 데이터 이동시에는 Import/Export Snowball 등의 다른 서비스를 사용해서 비용을 아끼자. AWS에서 EC2 서비스는 EC2 기반에서 작동하지 않는 다른 서비스가 존재할 경우 제공하는 성능 대비 가장 비싼서비스라고 생각해야 한다. 소규모에서는 EC2가 저렴하다가 대규모로 서비스가 발전하면 갑자기 확 비싸지는 게 EC2의 특징이다.
-
온 디맨드 인스턴스 (On Demand Instance)
사용한 만큼 과금된다. 단, 과금의 단위가 1분이기 때문에 1초를 사용해도 1분 어치가 과금된다. 다른 회사의 호스팅 서비스는 1초를 사용하려 해도 1개월어치를 선불로 낸다. 2019년 현재는 Google Cloud Platform의 Compute Engine도 분 단위로 과금된다.
그리고 인스턴스(서버)를 켜 놓은 시간으로 과금되기 때문에 고성능 인스턴스를 켜 놓고 잊어버리면 월말에 어마어마한 요금 폭탄을 맞게 된다. 서버에 접속한 시간 기준이 아니라 켜 놓은 시간 기준이다. 따라서 안 쓰는 인스턴스는 반드시 Stop시켜야 한다. Stop한 인스턴스도 EBS 스토리지(인스턴스가 저장된 가상 디스크) 1GB당 0.1달러(SSD 기준)를 매달 지불하므로 다시 켤 일이 없는 인스턴스는 Terminate시켜서 완전히 삭제하고 해당 인스턴스가 사용한 모든 EBS 볼륨도 역시 지워줘야 한다.[6] 보통 Terminate시키면 EBS 볼륨도 자동으로 삭제되지만 옵션에서 이걸 막을 수 있게 돼 있으므로 확인은 필수.
그러나, 이런 번거로움을 감수할 만한 엄청난 메리트가 있으니 바로 가격. 제일 싼 t2.nano의 시간당 비용은 0.0065달러... 한달내내 켜놔도(약 750시간) 약 5달러를 낸다. EBS볼륨은 유지한 상태로 인스턴스 타입을 바꾸는 게 가능하기 때문에 제일 싼 t2.nano 인스턴스로 먼저 시스템을 구축하고 나서 정상 작동 여부를 테스트한 뒤 위의 고성능 인스턴스로 바꿔서 재부팅하는 방법으로 요금을 아낄 수 있다. 다른 구식 호스팅 서비스에서는 서버를 두 대를 결제해서 데이터를 복사하는 방법(데이터 마이그레이션)이 유일한데 이렇게 하면 서버 두 대의 한 달치 요금을 중복 결제하게 되어 오히려 요금이 늘어난다.
-
스팟 인스턴스 (Spot Instance)
현재 사용되고 있지 않은 EC2 자원을 경매로 싸게 낙찰받아 이용할 수 있다. 수요가 증가하여 제시 가격보다 현재 시세가 높아질 경우 약 2분의 유예 기간을 준 뒤 인스턴스가 내려간다. t2.micro 같은 작은 인스턴스도 이 옵션을 사용할 수 있으며, 이 경우 온디맨드 가격인 0.0144$ 보다 훨씬 싼 0.0046$에 인스턴스를 사용할 수 있다.
언제 인스턴스가 내려가 버릴지 모르는 서비스인데 불안해서 어떻게 쓰냐 하고 생각할 수 있지만, 보통 스팟 인스턴스는 작업 결과를 S3 버킷 같은 데 쌓는 방식으로 사용한다. 그러다가 인스턴스가 내려가 버리면 위의 온 디맨드 인스턴스를 대신 켜서 하던 일 계속한다. 관리 비용이 증가하는 건 단점이지만 고성능 인스턴스의 스팟 경매 가격은 한가한 리전일 경우 반값 이하로 싼 경우가 많기 때문에 관리 비용을 충분히 상쇄하고도 남는다.
-
예약 인스턴스 (Reserved Instance)
사용할 기간(1년 혹은 3년)과 사용량(No/Partial/All Upfront)을 예약하면서 초기 선납비용을 내면, 시간당 사용료를 할인받는 방식.
완전 선납 플랜을 사용하는 경우 시간당 사용료가 0이 된다. 가장 작은 t2.nano 인스턴스의 1년 완전 선납 가격은 2015년 12월 현재 38달러. 이게 월간이 아니라 연간 사용액이다!
단, 이 예약 인스턴스는 '계약'의 형식이라 원칙적으로 환불이 안 되며 일단 결제하면 계약 기간동안 매월 할부 방식으로 돈이 빠져나간다. 인스턴스를 꺼놨어도 이 돈은 계약 만료시까지 계속 청구된다. 윗 문단의 설명도 그렇고 AWS 홈페이지의 설명도 저렇게 돼 있어서 마치 인스턴스를 꺼 놓으면 그 달은 결제 금액이 없는 것처럼 착각할 수 있는데 아니다. 청구서에는 매월 정액 요금이 빠져나간다. 단지 All Upfront는 일시 불 이고 No Upfront는 12개월 할부인 게 차이일 뿐. 원래 24시간 상시가동하는 인스턴스를 위해 있는 서비스이므로 인스턴스 사용 시간이 한 달에 300시간 미만(절반)이면 온 디맨드 인스턴스를 사용하는 게 가격적으로 더 유리하다.