클라우드/AWS

[AWS] Computing Service / LightSail, EC2

dayeonsheep 2023. 7. 13. 04:31

기본 개념...

클라우드 컴퓨팅에서 인스턴스란?

- 인스턴스는 타사 클라우드 서비스에서 제공하는 서버 리소스

- 클라우드 제공업체는 데이터 센터에서 하드웨어를 유지 관리하고 인스턴스라는 형태로 컴퓨팅 리소스에 대한 가상 액세스를 제공

- 클라우드 인스턴스를 사용하여 컨테이너, 데이터베이스, 마이크로서비스, 가상 머신 등의 컴퓨팅 집약적인 워크로드를 실행


; AWS에서 제공하는 주요 컴퓨팅 엔진 

 

더보기

EC2 (Elastic Compute Cloud)

  • 크기를 조정할 수 있는 컴퓨팅 용량을 제공하는 웹 서비스
  • AWS에서 가장 기본적이고 널리 쓰이는 인프라, 가상 머신으로 제공되며 인스턴스라고 불림
  • 물리 환경의 컴퓨터처럼 컴퓨팅 리소스를 제공하는 서비스

Lightsail

  • 초보자 친화적인 서비스로, 주어진 리소스 옵션중 하나를 골라 단일 가상 서버를 간단히 설정하는 서비스
  • 사전에 구성된 템플릿을 이용해서 인스턴스를 빠르게 배포할 수 있음

Lambda (Serverless Computing)

  • 모든 유형의 애플리케이션이나 백엔드 서비스에 대한 코드를 별도의 관리 없이 실행하는 서비스
  • 서버에 대한 걱정없이 코드만으로 서비스를 실행, 이벤트 기반으로 실행되는 서버리스 컴퓨팅서비스
  • 서버 및 운영 체제 유지 보수, 용량 프로비저닝 및 자동 확장, 코드 모니터링 및 로깅과 같은 컴퓨팅 리소스의 모든 관리를 자체적으로 수행하므로, Lambda가 사용하는 언어 중 하나로 코드를 제공하기만 하면 됨

Elastic Beanstalk(EB)

  • 애플리케이션을 신속하게 배포하고 관리
  • Java,Node.js, Python, Go 등을 사용하여 Apache, Nginx와 같은 친숙한 서버에서 개발된 웹 애플리케이션 및 서비스를 간편하게 배포하고 조정할 수 있는 서비스
  • 코드를 업로드하기만 하면 프로비저닝, 로드 밸런싱, Auto Scaling, 운영체제 관리등의 개발과 배포 자동화

이 외 : ECR(Elastic Container Registry), ECS(Elastic Container Service), EKS(Elastic Container Service for Kubernetes), Batch, Serverless Application Repository, Serverless Application Model

 


LightSail

 

더보기

Instance

  • AWS 클라우드에 있는 가상 프라이빗 서버(VPS)
  • 리전과 가용영역 선택, 인스턴스 이미지로 선택할 플랫폼과 블루프린트 선택
  • 인스턴스 시작시 스크립트 설정, SSH 키페어, 데일리 백업 설정 및 인스턴스 플랜 설정
  • 인스턴스 이름, 갯수, 태그 설정 후 생성, SSH 접속이 가능하며, 방화벽 설정 가능
  • 기본 수준의 CPU 성능을 발휘하면서 추가적으로 버스트 성능을 발휘할 수 있는 인스턴스 이용
  • 즉 비디오 인코딩같은 어플리케이션과 같은 일관되게 높은 CPU 성능을 쓰려면 EC2 추천

Container Service

  • 클라우드에서 컨테이너형 애플리케이션을 쉽게 실행하도록 돕는 서비스
  • 필요한 배포 이미지, 성능, 노드수만 지정하면 인프라를 관리할 필요 없이 컨테이너 서비스 실행
  • 도커 컨테이너 실행이 가능하며 windows 컨테이너는 지원되지 않음
  • 단, CDN 배포의 오리진으로 지원X, 컨테이너 서비스는 라이트세일의 로드밸러스 대상이 될 수 없음

데이터베이스

  • DBMS 선택 및 master user name, 데이터베이스 이름 설정, 데이터베이스 선택 가능

네트워킹

  • 고정 IP : 라이트세일로 만들어진 인스턴스에 고정 IP주소 할당
  • Distribution : 콘텐츠 전송 네트워크 (CDN) 기능 제공
  • Load Balancer : 트래픽을 여러 서버로 균등하게 나누는 기능을 제공

스토리지

  • Bucket 생성 : 파일, 이미지, 비디오등의 객체를 저장하고 엑세스하는 공간을 제공
  • Disk 생성 : 라이트세일 인스턴스에서 하드 드라이브로 마운트 할 수 있는 스토리지 볼륨

SNAPSHOT

  • 인스턴스나 디스크의 상태를 캡처하여 백업 또는 복원에 사용하는 기능
  • 문제 발생시 백업, 애플리케이션을 확장을 위한 복제, 다른 AWS서비스로 마이그레이션등에 이용

DNS zone

  • 더보기
    도메인의 하위 도메인을 정의하고 트래픽을 리소스로 라우팅함

EC2

더보기

: 클라우드에서 안전하고 크기 확장 조정이 가능한 컴퓨팅 용량을 제공하는 웹 서비스

: 하드웨어 투자 없이 빠르게 어플리케이션을 개발하고 배포하도록 가상 서버의 구축과 네트워킹 구성, 스토리지 관리등을 돕는 서비스

: 안정성을 위해 여러 AWS 리전과 가용 영역에 걸쳐 배포

 

제공 기능

  • 인스턴스 : 가상 컴퓨팅 환경, AMI를 이용해서 쉽게 만듦
    • 온디맨드 인스턴스 : 온디맨드 인스턴스에서는 실행하는 인스턴스에 따라 시간당 또는 초당 컴퓨팅 용량에 대한 비용을 지불, 애플리케이션 수요에 따라 컴퓨팅 용량 조정 가능.
    • 스팟 인스턴스 : AWS 클라우드의 미사용 EC2 용량을 활용할 수 있음. 애플리케이션 실행 비용 절감. 같은 예산으로 애플리케이션 컴퓨팅 용량과 처리량 높임. 새로운 유형의 클라우드 컴퓨팅 애플리케이션 실행 가능.
    • 예약 인스턴스(RI) : 특정 가용 영역에서 사용하는 경우에는 용량 예약을 제공함. 사용자가 필요할 때 예약해 놓은 수의 인스턴스를 시작할 수 있음. 용량 예약을 포기하고 리전에 한정된 RI 구매도 가능.
    • Savings plan : 1년 또는 3년 기간의 일정 사용량 약정 조건으로 EC2 및 Fargate 사용량에 대해 저렴한 요금 제공하는 요금 모델 ( *Fargate = AWS Fargate는 서버를 관리하지 않고도 애플리케이션 구축에 초점을 맞출 수 있도록 지원하는 종량제 서버리스 컴퓨팅 엔진 )
    • 전용 호스팅 : 고객 전용의 물리적 EC2 서버. Windows Server, SQL Server, SUSE Linux Enterprise Server 및 기존 서버 한정 SW 라이선스 사용 가능.
  • Amazon 머신 이미지(AMI): 서버에 필요한 운영체제와 소프트웨어들로 구성되어 있는 템플릿
  • 인스턴스 스토어 볼륨 : 인스턴스와 직접 연결된 스토리지로 임시 데이터를 저장하는 스토리지 볼륨
  • Amazon Elastic Block Store(Amazon EBS)를 사용해 영구 스토리지 볼륨에 데이터 저장
  • 보안 그룹을 사용해 인스턴스에 연결할 수 있는 프로토콜, 포트, 소스 IP 범위를 지정하는 방화벽 기능
  • 탄력적 IP 주소(EIP): 인스턴스 재시작시 바뀌는 IP 주소의 고정을 위한 것
  • Virtual Private Clouds : EC2 인스턴스를 위한 가상 네트워킹 환경, 해당 인스턴스는 vpc내 위치

 

AWS 라이트세일: 간단하고 초보자 친화적인 서비스로 미니 프로젝트나 단순한 어플리케이션 배포 경험을 원하는 사용자에게 적합

EC2: 더 유연하고 확장성 높은 통합 옵션들을 사용해서 복잡한 대규모 어플리케이션을 원하는 사용자에게 적합

 


Auto Scaling

: 크기 조정 가능한 AWS 리소스에 대한 자동 크기 조정을 제어할 수 있는 서비스

( Scaling -> 인스턴스나 컴퓨팅 파워를 늘리거나 줄이는 것 )

 

EC2 Auto Scaling : EC2 인스턴스에 대한 자동 크기 조정을 제어할 수 있는 서비스

 

 

Elastic Load Balancer

: 트래픽을 여러 대상에 자동으로 분산시켜주는 서비스

: 안정적인 AWS서버 환경을 운용하는데에 도움

: EC2뿐만 아니라 컨테이너(ECS), AWS Lambda 등으로 다양한 서비스와 연계하여 부하를 분배 가능

Load Balancing : 여러 리소스에 부하를 분산시키는 기술

 

 

대상 그룹 (Target Group)

  • 대상그룹은 리스너가 전달한 요청을 처리하기 위한 부하분산 대상들의 모임
  • 즉, ELB가 분산을 할 때 어디로 분산할 것이냐를 모은 그룹들이 대상그룹
  • 그렇기에 대상 그룹에 등록된 EC2의 각종 정보(인스턴스 ID, Port, AZ)가 적혀있음
  1. 이 EC2가 전달받은 요청을 처리할 수 있는지를 체크하는 '헬스 체크(Health Check)' 기능 
  2. 이 대상 그룹에 요청 처리가 가능한 EC2가 몇 개인지, 불가능한 EC2는 몇 개인지를 확인하는 요청 처리에 관련된 '모니터링(Monitoring)' 기능

 

헬스 체크?

: ELB에 연결된 인스턴스에 직접 트래픽을 발생시켜 인스턴스가 살아있는지 체크하는 기능

: 타겟 그룹에 대한 헬스 체크를 통해 현재 정상적으로 작동하는 인스턴스로만 트래픽을 분배

  • 인스턴스의 상태를 자동으로 감지해서 오류가 있는 시스템은 배제하고, 만일 인스턴스가 회복되면 LB가 자동으로 감지하여 인스턴스에 트래픽을 보내줌
  • 이를 통해 장애가 전파되는것을 방지하여 고가용성을 확보할 수 있으며, 상태 확인 개선을 통해 상세한 오류 코드를 구성할 수 있음
  • 또한 새로운 지표로 EC2 인스턴스에서 실행되는 각 서비스의 트래픽을 파악할 수 있음

 

헬스 체크의 두가지 상태

  • InService(서비스 살음)
  • OutofService(서비스 죽음)

헬스 체크 방법

  1. 해당 포트의 Listen 상태를 감시하는 포트 감시 : 임계값(Threashold) 만큼 Health check가 실패하면 load balancer를 서비스에서 Target을 제외시키고, 다시 해당 Target이 Healthy 상태가 되면 서비스에 추가시킴. (자동)
  2. HTTP 또는 HTTPS의 경우 실제 HTML 파일 접근 가능 여부를 확인하는 서비스 감시

로드 밸런서


<참고>

https://inpa.tistory.com/entry/AWS-📚-ELB-Elastic-Load-Balancer-개념-원리-구축-세팅-CLB-ALB-NLB-GLB