Cloud Computing Service
Cloud Computing Service
Cloud Computing Service
- 인터넷을 통해 서버, 스토리지, DB, 네트워크 및 기타 컴퓨팅 자원에 대한 온디맨드 액세스를 제공하는 서비스
- 사용자가 직접 인프라를 보유하거나 관리할 필요 없이 필요할 때 원하는 컴퓨팅 리소스를 사용하도록 함
AWS의 주요 컴퓨팅 엔진
EC2 (IaaS)
- AWS에서 갖장 기본적이고 널리 쓰이는 인프라, 가상 머신으로 제공되며 인스턴스라고 불림
- 물리 환경의 컴퓨터처럼 컴퓨팅 리소스를 제공하는 서비스
Lightsail (IaaS)
- 초보자 친화적인 서비스로, 주어진 리소스 옵션 중 하나를 골라 단일 가상 서버를 간단히 설정하는 서비스
- 사전에 구성된 템플릿을 이용해서 인스턴스를 빠르게 배포할 수 있음
Elastic Beanstalk (PaaS)
- EC2 위에 구축된 고급 관리 플랫폼으로 사용자는 애플리케이션 코드를 EB에 업로드하기만 하면, EB가 EC2 인스턴스를 자동으로 생성하고 배포 과정을 관리함.
Lambda (FaaS: Function as a Service)
- 모든 유형의 어플리케이션이나 백엔드 서비스에 대한 코드를 별도의 관리 없이 실행하는 서비스
- 서버에 대한 걱정 없이 코드만으로 서비스를 실행, 이벤트 기반으로 실행되는 서버리스 컴퓨팅 서비스
- 컴퓨팅 리소스의 모든 관리를 자체적으로 수행하므로, Lambda가 사용하는 언어 중 하나로 코드를 제공하기만 하면 됨
Lightsail & EC2
Lightsail
Lightsail
- 가상머신, 컨테이너, 데이터베이스, CDN, 로드밸런서, DNS 관리 등 프로젝트를 빠르게 시작하는데 필요한 모든 기능을 신속하게 이용 가능하도록 하는 VPC 서비스
- VPC: Virtual Private Cloud
👉 인스턴스, 컨테이너, DB, 스토리지, DNS 등을 한 곳에서 관리 가능
Lightsail 기능
Instance
- AWS 클라우드에 있는 가상 프라이빗 서버 (VPS)
- 리전과 가용영역 선택, 인스턴스 이미지로 선택할 플랫폼과 블루프린트 선택
- 블루 프린트: 미리 정의된 설정, 구성 및 자원의 모음
- 기본 수준의 CPU 성능을 발휘하면서 추가적으로 버스트 성능을 발휘할 수 있는 인스턴스 이용
👉즉, 비디오 인코딩 어플리케이션과 같은 일관되게 높은 CPU 성능을 쓰려면 EC2추천
- 가격에 따라 정해진 CPU, 메모리, 디스크 용량을 선택하게 되고 정해진 가격만큼 과금되는 형식
- 한달 내내 실행시키되 트래픽이 많지 않다면 EC2보다 훨씬 저렴!
Instance AMI
- Instance는 실행 가능한 소프트웨어 -> 인스턴스 이미지 (AMI) 제공
- 인스턴스 이미지에는 특정 운영체제와 소프트웨어 구성이 들어 있다.
- Amazon Linux2, Ubuntu, WordPress, LAMP, Node.js 등
Container Service
- 클라우드에서 컨테이너형 어플리케이션을 쉽게 실행하도록 돕는 서비스
- 필요한 배포 이미지, 성능, 노드 수만 지정하면 인프라를 관리할 필요 없이 컨테이너 서비스 실행 가능
- 도커 컨테이너 실행 가능, windows 컨테이너는 지원되지 않음
- 단, Lightsail 컨테이너 서비스가 직접적으로 CDN의 오리진 서버로 사용될 수 없고, Lightsail의 로드 밸런스 대상이 될 수 없음
- 컨테이너 서비스의 경우 수동으로 로드밸런싱을 해주어야 함
Database
- Lightsail 내부에서 DB 제공
Networking
- 고정 IP, Distribution (CDN), Load Balancer 기능 제공
Storage
- Bucket: 객체를 저장하고 액세스하는 공간 제공
- Disk: 스토리지 볼륨
Snapshot
- 인스턴스나 디스크의 상태를 캡처하여 백업 또는 복원에 사용하는 기능
- 문제 발생 시 백업, 애플리케이션 확장을 위한 복제, 다른 AWS 서비스로의 마이그레이션 등에 이용
DNS Zone
- 도메인 이름 시스템(DNS) 레코드를 관리하는 방식을 제공
EC2 (Amazon Elastic Compute Cloud)
EC2 (Amazon Elastic Compute Cloud)
- AWS 클라우드에서 확장 가능한 컴퓨팅 용량을 제공하는 서비스로, 하드웨어 투자 없이 빠르게 어플리케이션을 개발, 배포하도록 가상 서버의 구축과 네트워킹 구성, 스토리지 관리 등을 돕는 서비스
EC2 기능
Amazon Machine Image (AMI)
- 인스턴스를 실행하기 위한 정보를 모은 단위
- 도커의 이미지와 같은 역할이지만 EC2를 특정 환경으로 실행시키기 위한 레시피
- Lightsail을 EC2로 마이그레이션 할 때에도 AMI 이용
보안 그룹(Security Group)과 키 페어(Key Pair)
- 보안 그룹: 가상 방화벽 역할을 하여 인스턴스의 인바운드 / 아웃바운드 트래픽 제어
- 키 페어: 공개 키 인프라(PKI)를 사용하여 인스턴스에 로그인 -> Asymmetric Key
- Public Key: AWS에서 인스턴스를 생성할 때 사용되며, 인스턴스 내부에 자동으로 저장
- Private Key: 사용자가 인스턴스를 처음 생성할 때 다운로드하고, 이를 통해 인스턴스에 접근할 수 있다.
탄력적 IP 주소 (EIP)
- 인스턴스 재시작 시 바뀌는 IP 주소의 고정을 위한 것
인스턴스 스토어 볼륨
- 인스턴스와 물리적으로 직접 연결된 스토리지(디스크 드라이브)로 임시 데이터를 저장하는 스토리지 볼륨
- 인스턴스가 종료되면 데이터 사라짐
Amazon Elastic Block Store (Amazon EBS)
- 클라우드에서 사용하는 가상의 하드디스크
- EC2와 별개로 동작하므로 인스턴스가 종료되어도 별개로 작동 가능
- EC2와 같은 AZ에 있어야 함
Lightsail vs EC2
AWS Lightsail | AWS EC2 | |
간편성 & 제어력 | - 클라우드 컴퓨팅에 익숙하지 않은 사용자를 위해 사용이 간편하게 설계 - 사전 구성된 템플릿을 제공하므로 간편하고 빠르게 사용 가능 |
- 가상 머신을 직접 구성하고 사용자 정의 가능 - 컴퓨팅 리소스에 대한 유연성과 제어력 제공 |
확장성 | - 주로 소규모 어플리케이션에 적합 - 인스턴스를 수직으로 확장할 수 있지만, 수평 확장은 제한적 |
- 소규모부터 대규모 어플리케이션까지 다양한 워크로드 처리 - 확장 옵션을 유연하게 제공해 수요에 따라 용량을 자동으로 조절 가능 |
가격 정책 | - 고정된 월별 요금을 기반으로 예측 가능한 가격 정책 제공 - 필요에 따라 추가 리소스를 선택해서 확장하고 추가비용 지불 |
- 더 세분화된 사용량 기반의 가격 정책으로 동적으로 확장 및 축소 가능 - 다양한 가격 모델과 라이트세일보다 유연한 비용 구조를 가짐 |
통합 및 서비스 | - 통합 가능한 서비스는 EC2에 비해 제한적 - VPC, 일부 고급 네트워킹 기능이나 관리형 DB 서비스와 통합 불가 |
- 다른 AWS 서비스와 완벽히 통합되므로 높은 확장성을 가짐 |
Auto Scaling & Load Balancer
Auto Scaling
Auto Scaling
- 클라우드 리소스를 자동으로 조정하여 지정된 조건에 따라 필요할 때만 필요한 만큼의 컴퓨팅 리소스를 사용할 수 있도록 하는 AWS 서비스.
- 사용량이 증가하면 Auto Scaling은 사용자 정의 규칙에 따라 자동으로 EC2 인스턴스를 추가하여 용량을 늘리고, 사용량이 감소하면 리소스를 줄여 비용을 절감
Sclae Up <-> Scale Down
- 하나의 인스턴스의 리소스(ex. CPU, memory)를 늘리는 것
- 리소스 업그레이드 / 다운그레이드
- 주로 수동으로 수행되고 리부팅, 서비스 중단이 필요하다.
Scale Out <-> Scale In
- 더 많은 인스턴스를 추가하여 전체 시스템의 용량을 늘리는 방식
👉 AWS Auto Scaling이 지원하는 방식
EC2 Auto Scaling
EC2 Auto Scaling
- EC2 인스턴스에 대한 Scale In & Out을 제어할 수 있는 서비스
- Benefit
- 비용 절감
- 내결함성 향상: 하나의 가용 영역이 불가 상태가 되면 다른 가용 영역에서 새 인스턴스를 시작
- 가용성 향상: 현재 트래픽 요구를 처리할 수 있는 적정 용량을 갖추도록 도와주고, 가용 영역 전반에 인스턴스 분산
EC2 Auto Scaling 구성 요소
- Launch Configurations / Launch Templates
- Auto Scaling Groups (ASGs)
- Auto Scaling이 관리할 EC2 인스턴스의 집합
- Scaling Policies: 인스턴스를 언제 확장하거나 축소할 지 결정하는 규칙을 정의
- CPU 사용률: 애플리케이션의 CPU 사용이 높고, 이것이 서비스 성능에 직접적인 영향을 미치는 경우
- 네트워크 입출력: 네트워크 트래픽이 성능의 제한 요소가 되는 환경에서는 이 지표가 유용
- ALB 요청 수: 각 인스턴스가 처리해야 하는 HTTP/HTTPS 요청수를 기준으로 인스턴스 수를 조정
- Custom Metrics: Amazon CloudWatch를 통해 사용자가 직접 지표를 생성하고 이를 Auto Scaling에 활용
Load Balancer
Load Balancer
- 네트워크 트래픽을 여러 서버에 균일하게 분산시키는 장치 또는 소프트웨어.
- 웹사이트 또는 어플리케이션의 가용성과 내구성을 높이기 위해 사용
Load Balancing: 여러 리소스에 부하를 분산시키는 기술
- 부하 분산 처리: 하나의 리소스에 트래픽이 과도하게 몰려 서비스가 중단되는 현상을 막기 위함
- 하나의 엔드포인트 제공: 트래픽을 하나의 경로로 받아 여러 인스턴스에 분산 -> 사용자는 서로 다른 인스턴스에 접속하게 되더라도 동일한 엔드포인트로 접속
Load Balancer + Auto Scaling
Elastic Load Balancer
Elastic Load Balancer (ELB)
- 트래픽을 여러 대상에 자동으로 분산시켜주는 서비스
- VPC에 탑재되며, 사용자의 요청을 받아 VPC 내의 리소스를 적절히 부하 분산시킨다.
ELB 구성 요소
- 리스너 (Listener)
- 프로토콜과 포트를 기반으로 요청을 받아 검사하고 이를 적절한 타겟으로 전달하는 기능 수행
- 모든 로드 밸런서는 최소 한 개 이상의 리스너를 필요로 하며 최대 10개까지 설정 가능
- SSL 인증서를 게시하여 SSL Offload를 실시할 수 있음
- 규칙 (Rule)
- 리스너와 타겟그룹 사이의 트래픽 분배를 위한 라우팅 규칙
- 우선순위, 액션, 조건 등의 정보를 담고 있으며 특정 조건이 만족되었을 때 지정된 액션을 수행
- 대상 그룹 (Target Group)
- 리스너가 전달한 요청을 처리하기 위한 부하 분산 대상들의 모임 == 로드 밸런싱의 대상이 되는 인스턴스를 묶어 놓은 그룹
- 유휴 제한 시간 (Connection Time out)
- 사용자가 ELB를 거쳐 EC2에 접근하여 서비스를 접속하면 Connection이 생성되는데, 더 이상 통신이 없을 경우 유휴 제한 시간이 작동하고 그 시간이 지나면 Connection이 사라진다.
Cross-Zone Load Balancer
- 가용 영역(AZ)을 가리지 않고 고르게 분배하는 방식
- ALB는 기본적으로 활성화, NLB는 기본적으로 비활성화 되어 있음
Health Check
- ELB에 연결된 인스턴스에 직접 트래픽을 발생시켜 인스턴스가 살아있는지 체크
- 타겟 그룹에 대한 헬스 체크를 통해 정상적으로 작동하는 인스턴스로만 트래픽을 분배
ELB의 종류
- Application Load Balancer (ALB)
- Application Layer를 다루는 로드밸런서
- 지능적인 라우팅: HTTP/HTTPS 프로토콜의 헤더를 보고 적절한 패킷으로 전송
- IP 주소가 변동되기 떄문에 DNS Name을 이용
- Network Load Balancer (NLB)
- Transport Layer 단의 로드 밸런서를 지원
- TCP/IP 프로토콜의 헤더를 보고 적절한 패킷으로 전송 -> fast
- Elastic IP를 Static IP로 사용하여 DNS name과 IP 모두 사용 가능
- Gateway Load Balancer (GLB)
- Network Layer단의 로드 밸런서를 지원
- 트래픽이 EC2에 도달하기 전에 먼저 트래픽을 검사, 분석, 인증, 로깅 작업 수행
👉 단순한 라우팅이 필요하고, 트래픽이 극도로 많은 경우에는 ALB보다 NLB가 더 적절하다.
'ASC' 카테고리의 다른 글
6. Storage - S3 & CloudFront (0) | 2023.11.23 |
---|---|
5. RDS & DynamoDB (1) | 2023.11.16 |
3. VPC & Route53 (0) | 2023.11.01 |
2. Container & Docker + CI/CD (1) | 2023.10.29 |
1. 클라우드 컴퓨팅 개요 & IAM (0) | 2023.09.29 |