- 아마존 웹 서비스(AWS)에서 제공하는 클라우드 컴퓨팅 서비스이다.
- 한마디로 서버용 컴퓨터를 원격으로 빌리는 것이다.
- 이름이 Elastic(탄력있는)인 이유는 성능과 용량을 자유롭게 설정할 수 있고, 사용한 만큼 비용을 지불하기 때문이다.
- 이름이 EC2인 이유는 Elastic Compute Cloud 뒤에 C가 2개있어서 그런것이 아닐까 하는 생각이다.
- 사실 서버를 구동하는건 일반 컴퓨터에서도 충분히 가능하다.
(다들 마인크래프트 서버를 열어본 경험이 있을것이다)- 그렇다면 EC2의 장점은 무엇일까
- 물리 서버를 도입하는 과정보다 훨씬 간편하고 빠르다.
- 서버라는게 트래픽이 얼마나 올지 모르기때문에 갑자기 트래픽이 몰릴경우 추가로 장비를 구입해야 하는데, EC2는 클릭 몇 번으로 서버를 증설할 수 있다.
- 그리고 반대의 상황으로 장비를 빵빵하게 구비해놓았는데 트래픽이 적다면? 엄청난 비용손해.
하지만 EC2는 클릭 몇번으로 서버를 증감하여 비용절감을 할 수 있다.
- 보통 EC2로 서버를 구축하면
EC2 인스턴스
라는 단어를 자주 볼 수 있다.- EC2 인스턴스를 생성한다는 것은 AMI을 토대로 운영체제, CPU, RAM 혹은 런타임 등이 구성된 컴퓨터를 빌리는 것이다. 한마디로 EC2 인스턴스 생성 = 서버컴퓨터 빌리기
- AMI는 소프트웨어의 구성이 기재된 탬플릿이다. AMI(Amazon Machine Image)
- AMI를 토대로 원하는 운영체제, 런타임, RAM, 용량, CPU등이 이미 세팅된 EC2 인스턴스를 생성할 수 있다. 한마디로 주문서 같은 셈.
- 사용 할 수 있는 대표적인 OS
- Amazon Linux2
- CentOS
- Red Hat Enterprise Linux
- Windows Server
- Ubuntu
- 다시 EC2 인스턴스 이야기로 돌아가서, EC2 인스턴스의 유형을 알아보도록 하겠다.
- EC2 인스턴스에는 굉장히 많은 종류가 있다.(699개나 있다)
- 이름의 구조가 심상치 않은데, 의미는 다음과 같다.
- t4g.large를 예로 들자면 이런 의미이다.
- 타입 : t
- 세대 : 4세대
- 추가기능 : d
- 인스턴스 크기 : large
- 그렇다면 타입마다 다른점은 뭘까?
- 타입은 크게 범용, 컴퓨팅 최적화, 메모리 최적화, 저장 최적화로 나뉘고, 또 세부적으로 더 나뉜다.
- 범용
- M : 범용(vCPU 1개 / 4GB 메모리)
- A : ARM 기반
- T : 버스트가 가능한 CPU
- Mac : macOS
- 컴퓨팅 최적화
- C : 컴퓨팅 최적화
- F : FPGA용
- G : GPU용
- INF : 머신러닝용
- 메모리 최적화
- R : 초대형 메모리용
- X : 랜덤 엑세스 메모리용
- P : 프리미엄 GPU용
- Z : 고주파수용
- 저장 최적화
- H : HDD용(최대 16TB)
- I : NVMe용
- D : 고밀도 스토리지용(48TB)
- 이와같이 굉장히 많은 타입이 있다.
- 서버의 특성마다 특화된 타입으로 EC2 인스턴스를 구성하는게 중요할 것으로 보인다.
- EC2는 타입도 여러가지인데, 요금유형도 여러가지다.
(과연 인스턴스 경우의 수가 몇일까)
- 온 디맨드 인스턴스 (On Demand Instance) : 필요할 때 바로 생성해서 사용할 수 있는 방식.
3가지 방식 중 요금이 가장 비싸다(원래 피시방도 후불요금이 더 비싼것 처럼)
- 공유 인스턴스(Shared tenancy) : 하나의 물리적인 서버에 여러 개의 EC2인스턴스가 실행 → 다른 인스턴스가 서버 자원을 많이 소모한다면 현재 인스턴스의 성능에 영향이 있을 수 있다
- 전용 인스턴스(Dedicated tenacy) : 하나의 물리적인 서버에 하나의 EC2인스턴스가 실행 → 서버 내 다른 인스턴스가 없으므로 영향 X, 공유 인스턴스 방식보다 비싸다
- 스팟 인스턴스(Spot Instance) : 경매 방식의 인스턴스. 인스턴스의 스펙을 설정하고 원하는 가격을 입력하여 입찰하면 높게 입찰한 사람한테 인스턴스가 할당된다. 해당 스펙의 인스턴스를 다른 사람이 더 높은 가격으로 입찰했다면 내가 가지고 있는 인스턴스는 종료된다 (세상은 냉정한법)
- 예약 인스턴스 (Reserved Instacne) : 일정한 예약금을 선불로 내면 인스턴스를 1년 또는 3년동안 예약할 수 있으며 시간당 요금이 대폭 할인된다. 온 디맨드 인스턴스와 마찬가지로 공유 인스턴스, 전용인스턴스로 나뉜다
- Light 사용률 예약 인스턴스 : 모든 예약 인스턴스 중에서 선결제 금액이 가장 저렴하다. 사용시간이 많지 않을 때 유용하다 → 몇 달만 사용하는 개발 및 테스트와 단기 프로젝트에 적합
- Medium 사용률 예약 인스턴스 : Light보다 선결제 금액은 비싸지만 시간당 요금이 저렴하다. → 거의 항상 실행하지만 사용량에 약간의 변화가 있을 때 유용!
- Heavy 사용률 예약 인스턴스 : Medium보다 선결제 금액은 비싸지만 모든 예약 인스턴스 중에서 시간당 요금이 가장 저렴하다. → 24시간 상시 가동되어야하는 출시된 제품에 유리!
- AMI로부터 실행이 되고나서 종료될 때까지 EC2가 거치는 과정을 말한다
- Amazon EC2 인스턴스는 시작한 순간부터 종료될 때까지 다양한 상태로 전환된다
- 1. pending state
- 제일 처음 AMI가 실행이 되면 준비 상태를 말한다.
- EC2를 가동하기 위해서 가상머신, ENI, EBS 등이 준비되는 과정이다.
- 2. running state
- 실제로 EC2를 사용할수 있는 상태를 말한다.
- running 상태에서 할수 있는 것 3가지가 있는데 다음과 같다.
- 2-1. 중지
- 인스턴스를 잠깐 멈춰두는 것
- 중지 중에는 인스턴트 요금 미청구
- 단 EBS 요금, 다른 구성 요소(Elastic IP 등)은 청구
- 중지 후 재 시작 할때 퍼블릭 IP가 변경됨 (프라이빗IP는 변경X, 해결하려면 탄력적 IP 사용)
- EBS를 사용하는 인스턴스만 중지 가능
- 2-2. 재부팅
- 인스턴스를 다시 시작 하는 것
- 중지하고 다시 시작과는 달리, 재부팅 시 퍼블릭IP 변동 X
- 최대 절전모드
- 메모리 내용을 보존해서 재 시작시 중단지점에서 시작할 수 있는 정지모드
- 어떤 프로그램을 실행시켰을 때 데이터를 하드디스크에서만 가져오는 것이 아니라 메모리에 올려놓는 것
- 컴퓨터/노트북의 최대 절전 모드와 같은 원리라고 보면 된다. 우리가 만일 프로그램을 이용하다 만일 프로그램이 켜 상태를 유지하면서 잠시 노트북을 꺼야한다면 최대 절전을 한다. 그리고 다시 노트북을 켰을때 아예 OS 재부팅되는게 아니라, 프로그램이 이어서 돌아가게 된다.
- 3. shutting-down state
- 인스턴스 종료 중
- 설정에 따라 EBS도 같이 종료 시킬 수도 있고 EBS는 남기고 인스턴스만 종료 할 수 있다.
- 4. terminated state
- 완전히 종료, 인스턴스가 영구적으로 삭제된다
- 인스턴스 미사용시 중지시켜두기만 해도 많은 비용 절감 할수 있다.
- 인스턴스 생명 주기에서 EBS가 많이 언급되었는데, EBS는 뭘까?
- EBS란 EC2 인스턴스에 장착하여 사용할 수 있는 가상 저장 장치이다.
- 일반적인 하드디스크나 SSD처럼 인식되기에, 원하는 크기와 성능을 설정할 수 있다.
- Block은 블록 장치로,
Unix/Linux 계열 OS에서 일정한 크기(Block)단위로 읽고 쓰는 저장 장치를 부르는 말이다.
AWS 친구들(EC2, Lambda, S3, RDS, DynamoDB, ElastiCache)중에 처음으로 EC2에 대해 공부해봤는데
생각보다 이렇게 분량이 많을줄 몰랐다. 그래도 알고 쓰는것과 모르고 쓰는것은 엄청난 차이니까
차근차근 공부해봐야겠다. 하루하루 성장하는거같아서 기분이 좋다.