클라우드 컴퓨팅
: 인터넷을 통해 컴퓨팅 자원(서버, 스토리지, 네트워크 등)을 필요한 만큼 제공받는 기술
- IaaS(Infrastructure As A Service):** 가상 서버, 스토리지, 네트워크 등의 인프라를 서비스로 제공
-
PaaS(Platform As A Service): 사용자가 원하는 서비스를 개발할 수 있도록 개발환경을 미리 구축해, 이를 서비스 형태로 제공
-
SaaS(Software As A Service): 클라우드 서비스 형태 중 가장 완성된 형태의 클라우드 서비스, 소프트웨어 애플리케이션을 서비스로 제공
-
FaaS(Function As A Service): 복잡한 인프라를 관리하지 않고도 이벤트에 대한 응답으로 코드를 실행할 수 있는 클라우드 컴퓨팅 서비스
Lightsail
: AWS 클라우드에서 제공하는 가상 프라이빗 서버(VPS)
- 웹 사이트 또는 웹 애플리케이션을 구축해야 하는 모든 사용자가 AWS를 시작할 수 있는 가장 쉬운 방법
- 가상머신, SSD 기반 스토리지, Networking, 로드밸런서, DNS 관리, 고정 IP, OS, 개발플랫폼(MEAN, Node.js), 어플리케이션(Wordpress, Nginx, Gitlab, Redmine)
- 쉽게 확장 가능(snapshot을 통해 EC2로 쉽게 마이그레이션 가능)
가상 프라이빗 서버(VPS)
: 하나의 물리서버를 여러 개의 가상 서버로 쪼개어 사용하는 것.
- 각자 독립적인 서버 공간을 가짐
→ 동일한 속도, 보안서비스 제공
- 하나의 물리 서버의 리소스를 모든 사용자가 공유함
→ 한 사용자가 리소스를 점유할 수 있음.
Lightsail 기능
- 인스턴스
- 다양한 운영 체제와 자동으로 설치되는 인스턴스 이미지(AMI)를 제공
- 인스턴스 이미지에는 특정 운영체제와 소프트웨어 구성이 들어있음
- Amazon Linux, Ubuntu, WordPress, Nginx, Node.js 등이 있고 브라우저 내 SSH 또는 자체적인 SSH 클라이언트를 사용하여 인스턴스에 소프트웨어를 추가로 설치할 수 있음.
- 컨테이너 서비스
- 클라우드에서 컨테이너형 애플리케이션을 쉽게 실행하도록 돕는 서비스
- 필요한 배포 이미지, 성능, 노드 수만 지정하면 인프라를 관리할 필요없이 컨테이너 서비스 실행
- 도커 컨테이너 실행이 가능하며 windows 컨테이너를 지원되지 않음.
- 단, Lightsail 컨테이너 서비스가 직접적으로 CDN의 오리진 서버로 사용될 수는 없음.
- 컨테이너 서비스는 Lightsail의 로드밸런스 대상이 될 수 없음.
cf. Lightsail의 로드 밸런서는 인스턴스 간의 트래픽을 분산하는 데 사용되지만, 컨테이너 서비스의 경우 수동으로 로드 밸런싱을 해주어야 함.
- 데이터베이스
- DBMS 선택 및 master user name, 데이터베이스 이름 설정, 데이터베이스 선택 가능
- 네트워킹
- 고정 IP: Lightsail로 만들어진 인스턴스에 고정 IP주소 할당
- Distribution: 콘텐츠 전송 네트워크(CDN) 기능 제공
- Load Balancer: 트래픽을 여러 서버로 균등하게 나누는 기능을 제공
- 스토리지
- Bucket: 파일, 이미지, 비디오 등의 객체를 저장하고 엑세스하는 공간을 제공
- Disk: 라이트세일 인스턴스에서 하드 드라이브로 마운트 할 수 이는 스토리지 볼륨
- 스냅샷
- 인스턴스나 디스크의 상태를 캡처하여 백업 또는 복원에 사용하는 기능
- 문제 발생 시 백업, 애플리케이션을 확장을 위한 복제, 다른 AWS서비스로의 마이그레이션 등에 이용
- DNS Zone
- 도메인 이름 시스템(DNS) 레코드를 관리하는 방식을 제공
Auto Scaling
:클라우드 리소스를 자동으로 조정하여 지정된 조건에 따라 필요할 때만 필요한 만큼의 컴퓨팅 리소스를 사용할 수 있도록 하는 AWS 서비스
- EC2 상태 확인을 사용하여 인스턴스의 상태와 가용성을 자동으로 모니터링하고, 종료되거나 손상된 인스턴스를 교체하여 원하는 용량을 유지
- 사용량이 증가하면 Auto Scaling 은 사용자 정의 규칙에 따라 자동으로 EC2 인스턴스를 추가하여 용량을 늘리고, 사용량이 감소하면 리소스를 줄여 비용을 절감.
- Scale Up: 하나의 인스턴스의 리소스(예: CPU, 메모리)를 늘리는 것
- Scale Out: 규모를 늘리는 것
Auto Scaling 구성요소
Scaling Policies
인스턴스 수를 언제 확장하거나 축소할지 결정하는 규칙을 정의, 매트릭(예: CPU 사용률, 네트워크 입출력 등)에 기반하여 동작
-
CPU 사용률
- 애플리케이션의 CPU 사용이 높고, 이것이 서비스 성능에 직접적인 영향을 미치는 경우
-
네트워크 입출력
- 네트워크 트래픽이 성능의 제한 요소가 되는 환경
-
ALB 요청 수
- 웹 애플리케이션이나 API 게이트웨이를 운영하고 요청 처리 능력을 기반으로 스케일링 하고 싶을 때
-
사용자 지정 지표
- Amazon CloudWatch를 통해 사용자가 직접 지표를 생성, 이는 표준 지표로는 해결되지 않는 특수한 요구 사항을 가진 시스템에 적합
cf. 퀴즈. 스트리밍 서비스를 운영하는 경우 사용할 수 있는 Scaling Policy는? 답: 네트워크 입출력