기본 개념...
클라우드 컴퓨팅에서 인스턴스란?
- 인스턴스는 타사 클라우드 서비스에서 제공하는 서버 리소스
- 클라우드 제공업체는 데이터 센터에서 하드웨어를 유지 관리하고 인스턴스라는 형태로 컴퓨팅 리소스에 대한 가상 액세스를 제공
- 클라우드 인스턴스를 사용하여 컨테이너, 데이터베이스, 마이크로서비스, 가상 머신 등의 컴퓨팅 집약적인 워크로드를 실행
; 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)가 적혀있음
- 이 EC2가 전달받은 요청을 처리할 수 있는지를 체크하는 '헬스 체크(Health Check)' 기능
- 이 대상 그룹에 요청 처리가 가능한 EC2가 몇 개인지, 불가능한 EC2는 몇 개인지를 확인하는 요청 처리에 관련된 '모니터링(Monitoring)' 기능
헬스 체크?
: ELB에 연결된 인스턴스에 직접 트래픽을 발생시켜 인스턴스가 살아있는지 체크하는 기능
: 타겟 그룹에 대한 헬스 체크를 통해 현재 정상적으로 작동하는 인스턴스로만 트래픽을 분배
- 인스턴스의 상태를 자동으로 감지해서 오류가 있는 시스템은 배제하고, 만일 인스턴스가 회복되면 LB가 자동으로 감지하여 인스턴스에 트래픽을 보내줌
- 이를 통해 장애가 전파되는것을 방지하여 고가용성을 확보할 수 있으며, 상태 확인 개선을 통해 상세한 오류 코드를 구성할 수 있음
- 또한 새로운 지표로 EC2 인스턴스에서 실행되는 각 서비스의 트래픽을 파악할 수 있음
헬스 체크의 두가지 상태
- InService(서비스 살음)
- OutofService(서비스 죽음)
헬스 체크 방법
- 해당 포트의 Listen 상태를 감시하는 포트 감시 : 임계값(Threashold) 만큼 Health check가 실패하면 load balancer를 서비스에서 Target을 제외시키고, 다시 해당 Target이 Healthy 상태가 되면 서비스에 추가시킴. (자동)
- HTTP 또는 HTTPS의 경우 실제 HTML 파일 접근 가능 여부를 확인하는 서비스 감시
로드 밸런서
<참고>
https://inpa.tistory.com/entry/AWS-📚-ELB-Elastic-Load-Balancer-개념-원리-구축-세팅-CLB-ALB-NLB-GLB
'클라우드 > AWS' 카테고리의 다른 글
[AWS] 데이터베이스- DynamoDB (0) | 2023.07.25 |
---|---|
[AWS] Edge Location - Global Accelerator (0) | 2023.07.24 |
[Hands-on] CloudFront - S3 연결 (0) | 2023.07.10 |
[Hands-on] Bastion host로 private instance 접속하기 (0) | 2023.06.27 |
[Hands-On] ECR, Docker image pull, Flask (0) | 2023.06.22 |