AWS computing service(EC2, Auto spaling, Lambda)

2021. 8. 11. 20:18Cloud/AWS 기초

Amazon EC2

가장 기본이 되는 서버 개념의 서비스이다.

윈도우, 리눅스가 주로 지원이된다. 무료도 있지만 레드헷과 같은 것들은 유료로 제공한다.

EC2는 사용자의 마음대로 쉽게 확장, 축소를 할 수 있으며 이를 기반으로 마음것 재구성을 할 수 있다.  즉 고객의 니즈에 따라 고객의 업무 영역에 따른 다양한 인스턴트 타입을 제공한다.

또한 사용한 만큼 비용을 지출한다(pay-as-you-go) ==> 과거에는 1분을 써도 최소 기간인 1시간의 요금이 발생했지만 최근 개정으로 인해 1초를 사용하면 1초에 해당하는 금액을 지출하면 된다.

 

인스턴트 패밀리(변경할 수 있는 서비스 종류)의 종류는 아래와 같다.

 

범용 M4, M5 .... ==> 가장 일반적인 제품

컴퓨팅 C4, C5 .... ==> 와스, 계산이 필요한 Ec2가 적합하다.

메모리 R4 .... ==> 많은 매모리를 요구할때, cpu는 낮아도 되지만 메모리 확보는 반드시 해야한다. 라고 할때 사용한다.

성능 순간 확장 T2, T3 .... ==> 순간적인 성능을 낼 수 있는 저렴한 기능이다.

GPU G3,P3 .... ==> 엔디비아 의 cpu가 들어가있다. 머신러닝, 안면인식 등의 고급 그레픽의 gpu를 사용하기 위할때 사용한다.

높은 I/O(입 출력) I2 .... ==> SSD 기반의 초고속 스토리지 이다. 높은 하드디스크 용량, 하드디스크끼리의 I/O등을 사용할때 사용한다.

고밀도 스토리지 D2 .... ==> I시리즈 보다 더 많은 용량을 사용할때 필요하다.

 

M5.large 라는 인스턴트가 있다고 가정하고 이것을 분석해서 읽어본다면

 

M= 인스턴트 패밀리, 용도

5=인스턴트 세대, 높을 수록 최신, 고스팩이다.

Large == 인스턴트 사이즈 메모리, 그래픽 등이 몇개인지에 대한 스팩. 2배씩 증가한다.

 ==> nano, micro, small, medium, large, N large(2,4,…)

즉 범용 5인스턴트, 라지 사이즈를 가지고 있다 라고 할 수 있다.

 

과금 구매 옵션

On- demand ==> 약정없이 사용한 만큼만 지불할 수 있다. 주요 용도로는 갑작스러운 트레픽, 예측하기 어려운 신규서버에 사용한다.(오픈초기의 서버)

Reserved ==> 1, 3년 약정을 해서 40~70%의 할인을 받아서 사용할 수 있다. 항상 사용 중인 안정화된 서버를 저렴하게 이용하고자 할 때 사용할 수 있는 요금제이다.(꾸준히 지속적으로 사용중인 서버)

Spot ==> 실제 남은 자원에 대한 경매형식이다. 최대 80~90%이상 저렴하게 구매할 수 있다. 단기적으로 수요가 많을 때 유리하다.(ex 코로나 예약 웹 구축, 블렉 프라이데이 등)

 

Auto scaling

1줄요약 ==> 넥슨의 메이플스토리 서버

메이플스토리 라는 게임의 전통적인 비즈니스 모델은 특정기간(방학기간)에 100명의 사용자가 접속한다고 할 때 특정기간이 지나게 되면 10명이 의 사용자가 접속하는 환경을 가지고 있다. 이런 환경에서 매일 매주 매년 100명의 사용자가 접속할 것을 대비해서 서버설정 등을 하는것은 굉장히 비 효율적며 낭비 비용이 발생하게 된다. 과거에는 100명의 사용자를 위해서 서버증설을 위해 물리적인 공간을 확장하고 그곳에 하드웨어를 설치했다.

 

이런 환경에서 Auto scailng을 사용해 트레픽, 이벤트 등에 맞춰서 사용하는 환경을 확장, 축소할 수 있으며 이것은 기업의 측면에서 비용효율을 나타낼 수 있다.

 

Ex) cpu를 예시로 들어보면, 평균 cpu 의 사용율이 80~100%가 된다면 인스턴트를 2개 추가하여 서버를 안정화 시켜라. 평균 사용율이 20~40% 가 된다면 인스턴트를 1개 제거해라. 단 최대값은 인스턴트 10개, 최솟값은 2개 라는 정책을 구축한다.

 

이런 환경을 구축할 수 있는 이유는 cloud는 수 분 안에 프로비저닝이 가능하고 사용할 수 있기 때문이다.

 

AWS lambda

FAS ==> function as service. 즉 서버리스 컴퓨팅이 가능한 함수 기반의 서비스 이다.

==> 모든 AWS리소스는 아마존이 관리하고 고객은 java,C,C++등의 소스만 관리하면 된다. 서버 없이 코드만으로 특정 이벤트를 처리한다.

 

“No server is easier to mange than no server”

Werner Vogels.CTO,amazon.com

 

Lambda의 구동 과정

1.Java, python등을 특정 cli등으로 업로드한 후 추적한다.

2.추적 과정이 S3에 이미지가 업로드 되자마자 (이벤트 발생이 되자마자) 이것이 트리거가 되어서 

3.트리거를 람다펑션(이미지 리 사이징)이 실행하게 된다.

4.이 과정의 발생요금은 ms시간 단위 과금이 된다.

 

이런 과정은 EC2 혹은 서버가 구동되야 하는데 이런 구동 과정에서 낮게는 2~3만원 발생하는데 펑션은 특정 이벤트에서만 구동되기 때문에 비용절감을 있다. 즉 고사양의 pc가 없는 개발자도 혼자서 lambda서비스를 활용해 충분히 본인이 작성한 코드 를 활용할 수 있다.