AWS computing service(EC2, Auto spaling, Lambda)
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서비스를 활용해 충분히 본인이 작성한 코드 를 활용할 수 있다.