Basic/AWS

[AWS] AWS의 서비스(2)

코딩공대 2023. 5. 8. 22:56
728x90


1. AWS EC2

 

  • 가장 기본적인 형태의 클라우드 컴퓨팅


  • 온디맨드 : 선결제 금액이나 장기 약정 없이 저렴하고 유연하게 Amazon EC2를 사용하기 원하는 사용자


  • 스팟 인스턴스 : 시작 및 종료 시간이 자유로운 애플리케이션(온디맨드 사용자가 사용을 원할 시 사용이 중지된다.)


  • Saving Plans : 1년 또는 3년 기간의 일정 사용량 약정을 조건으로 EC2및 Fargate사용량에 대해 저렴한 요금을 제공하는 유연한 요금

  • EC2 Auto Scaling : 서버에서 트래픽이 몰리면 자동으로 서버를 증축, 감소해준다.


  • 결국 EC2는 컴퓨터 한대를 빌리는 것이다.(컴퓨터 사양도 고를 수 있다.)

 

- 인스턴스 중지 : 인스턴스를 잠깐 사용하지 않을 때

- 인스턴스 종료 : 인스턴스를 완전히 사용하지 않을 때

- 가용영역 : AWS의 여러가지 리전에서 어디 리전에서 사용하는지?

 

 

2. AWS Elastic Beanstalk 

 

  • Elastic Beanstalk = EC2 + 배포 버전 관리(RollBack) + Elastic Load Balancer + 모니터링 + 로그 트래킹 + 오토 스케일링


  • EC2에서 성능을 업그레이드 한 것


  • AWS 클라우드에서 애플리케이션을 신속하게 배포하고 관리할 수 있는 서비스(애플리케이션 코드만 업로드하면 된다.)


  • 다양한 언어 지원 : .NET / PHP / Java / Ruby / Node.js / Python / Docker 등


  • 기본 압축파일로 설정을 통해 환경이 만들어진다.


  • 애플리케이션 버전을 통해 업로드, 롤백 등을 자유자제로 할 수 있다.


  • 오토스케일링 프리셋 설정을 통해 서버의 크기가 유동적으로 바뀐다.

 

 

3. AWS Fargate

 

  • 쉽게 말하면 Docker파일을 서버에 쉽게 올리는 서비스


  • 가상 머신의 클러스터를 프로비저닝, 구성, 조정할 필요가 없다. 따라서 서버 유형을 선택하거나, 클러스터를 조정할 시점을 결정하거나, 클러스터 패킹을 최적화할 필요가 없다.


  • 컨테이너를 실행하기 위해 컨테이너를 실행할 Instance(EC2)를 실행시켜야 했지만, AWS Fargate는 이러한 수고를 덜어준다.


  • EC2보다 비싸다.

 

 

4. AWS ECR

 

  • Amazon Elastic Contaicer Registry
    • ECR은 안전하고 확장 가능하고 신뢰할 수있는 AWS관리형 컨테이너 이미지 레지스트리 서비스
- RDS(DB) -> 데이터를 저장하는 장소

- S3 -> 이미지를 파일을 저장하는 장소

- ECR -> 도커 이미지를 저장하는 장소  

  

 

5. AWS ECS

 

  • Amazon Elastic Contaicer Service


  • ECS는 AWS에서 제공하는 컨테이너 오케스트레이션 서비스, 여러 어플리케이션 컨테이너를 쉽고 빠르게 실행하고, 컨테이너를 적절하게 분배 및 확장, 축소할 수 있도록 도와주는 서비스

  • AWS EC2, AWS Fargate 중 원하는 환경에서 실행 가능


  • 용어정리

    • Task Definition : 컨테이너의 이미지, CPU / 메모리 리소스 할당 설정, port Mapping, Volume설정


    • Task : Task안에는 한 개 이상의 컨테이너들이 포함되어 있으며 ECS에서 컨테이너를 실행하는 최소 단위는 Task이다.


    • Service : Task들의 Life cycle을 관리하며, 오토스케일링과 로드밸런싱을 관리한다.


    • Cluster : Task가 배포되는 Container Instance들은 논리적인 그룹

side car pattern

     - 메인서버가 죽었을 때 모니터링 서버를 두어 확인 할 수 있게한다.

 

 

6. AWS Lambda

 

  • 서버 없이도 코드를 실행시킬 수 있는 서버리스 컴퓨팅 서비스


  • 코드를 돌리기 위한 리소스를 임의로 지정할 수 있으며, 사용 리소스와 사용시간에 따라 과금이 된다.


  • 최대 15분 / 최대 10GB / 최대 6개의 Core사용가능


  • 사용예시 : 비동기 처리(이미지 썸네일 생성), 예측이 불가능한 리소스 사용(대용량 처리, 머신러닝)


  • Node / Python을 많이 사용한다.

 

Cold Start / Warm Start

   - 기본적으로 EC2와 같은 인스턴스보다는 Latency가 높다.

   - 콜드 스타트 : 배포 패키지의 크기와 코드 실행 시간 및 코드의 초기화 시간에 따라 새 실행 환경으로 호출을 라우팅할 때 지연시간이 발생하는 람다 호출 시작(겨울에 자동차 시동을 미리 걸에 예열하는 것에서 유래됨)

   - 콜드 스타트 시간은 단축시킬 수 없다. 

   - 5분정도 Warm하게 유지

   - 계속 Warm하게 유지하기 위해선 지속적으로 사용해야 하는 방법 밖에 없다.

   - 아무것도 올라가지 않았을 때 실행을 시키면 언어마다 실행속도가 다르다.

 

언어에 따른 실행속도 그래프

 

'Basic > AWS' 카테고리의 다른 글

[AWS] AWS의 서비스(4)  (0) 2023.05.13
[AWS] AWS의 서비스(3)  (0) 2023.05.11
[AWS]AWS와 AWS의 서비스(1)  (0) 2023.05.05