클라우드 컴퓨팅
: 인터넷을 통해 컴퓨팅 리소스를 제공받는 기술
회사 또는 개인은 서비스 제공업체에서 소유 및 관리하는 원격 서버에 위치한 컴퓨팅, 스토리지, 네트워킹 서비스를 비롯한 공유 리소스의 가상 풀에 엑세스하기 위해 비용을 지불
물리적 데이터 센터와 서버를 구입, 소유 및 유지 관리하는 대신, AWS와 같은 클라우드 공급자로부터 필요에 따라 기술 서비스에 엑세스할 수 있음
주요 클라우드 컴퓨팅 서비스 유형
IaaS (Infrastructure as a Service)
: 가상 서버, 스토리지, 네트워킹 등의 인프라 서비스를 제공
: 기존 온프레미스 IT 리소스와 가장 유사
: 사용자가 원하는 서비스를 개발할 수 있도록 개발 환경(Platform)을 미리 구축해 제공
: 클라우드 애플리케이션 개발에 필요한 모든 하드웨어 및 소프트웨어 리소스를 제공
SaaS (Software as a Service)
: 클라우드 서비스 형태 중 가장 완성된 형태의 클라우드 서비스
: 기본 인프라에서 유지 보수 및 앱 소프트웨어 자체 업데이트에 이르기까지 전체 애플리케이션 스택을 서비스로 제공

만약 온프레미스 서버 사용한다 생각하면 네트워킹부터 애플리케이션까지 다 구축해야 함. IaaS 사용하면 O/S까지 구축해주는 것!
AWS의 대표적인 클라우드 컴퓨팅 서비스
-> IaaS 서비스 EC2 / Lightsail
EC2
- AWS에서 가장 기본적이고 널리 쓰이는 인프라
- 가상머신으로 제공되며 이를 인스턴스라 함
- 물리 환경의 컴퓨터처럼 컴퓨팅 리소스를 제공하는 서비스
** 인스턴스: 클라우드의 가상 서버
- 클라우드 서비스인 만큼 초기 하드웨어 투자 비용이 없음
- 원하는 수의 가상 서버 구축 가능
EC2 키워드!
- AMI (Amazon Machine Image)
- 인스턴스를 실행하기 위한 정보를 모은 단위
- 소프트웨어 구성(운영 체제, 애플리케이션 서버, 애플리케이션)이 기재된 템플릿
- AMI에서 인스턴스를 바로 시작할 수 있음 -> 이 인스턴스는 AMI의 사본으로, 클라우드에서 실행되는 가상 서버
- 하나의 AMI로 여러 인스턴스를 실행할 수 있음
- 보안 그룹과 키페어
1) 보안 그룹
- 보안을 위한 서버 접속 규칙
- 가상 방화벽 역할을 하며 인스턴스로의 트래픽을 제어
- 인바운드 규칙 -> 인스턴스로 들어오는 트래픽을 제어
아웃바운드 규칙 -> 인스턴스에서 나가는 트래픽을 제어
- 인스턴스를 생성할 때, 하나 이상의 보안 그룹을 지정할 수 있고, 지정하지 않으면 EC2가 기본 보안 그룹을 사용함
2) 키페어
- 서버에 접속하기 위한 열쇠
- AWS에서는 공개 키 인프라(PKI)를 사용하여 인스턴스에 로그인함
키페어는 사용자가 EC2 인스턴스의 암호화된 로그인 정보를 안전하게 전달할 수 있는 방법을 제공
- 탄력적 IP 주소 (EIP)
- 인스턴스 재시작시 바뀌는 IP 주소의 고정을 위한 것
- EC2 시작할 때 아이피주소가 바뀌는데, 탄력적 아이피주소를 할당함으로써 바뀌지 않게 할 수 있음
- 인스턴스 스토어 볼륨
- 인스턴스와 물리적으로 직접 연결된 스토리지(디스크 드라이브)로 임시 데이터를 저장하는 스토리지 볼륨
- Amazon Elastic Block Store(EBS)
- 클라우드에서 사용하는 가상의 하드디스크
- EC2와 별개로 동작 -> EC2가 중단되어도 EBS는 작동할 수 있는 것 (같은 가용영역에 있다면)
Lightsail
- AWS 클라우드에서 제공하는 가상 프라이빗 서버(VPS)
- 초보자 친화적인 서비스
- 인스턴스(가상 프라이빗 서버), 관리형 데이터베이스, 객체 스토리지, 로드 밸런서, 콘텐츠 전송 네트워크(CDN) 배포, SSD 기반 블록 스토리지, 고정 IP 주소, 도메인 등록, DNS 관리 및 스냅샷(백업) 등 프로젝트를 시작하는 데 필요한 기능 포함
- 주어진 리소스 옵션 중 하나를 골라 단일 가상 서버를 간단히 설정하는 서비스
** VPS (Virtual Private Server)
: 하나의 물리 서버 여러 개의 가상 서버로 쪼개어 사용하는 것
-각자 독립적인 서버 공간을 가짐 -> 비용 저렴하지만 각자 독립적인 서버 공간을 갖고 있기에 동일한 속도, 보안서비스 제공
-단점으로는 하나의 물리 서버의 리소스를 모든 사용자가 공유함 -> 한 사용자가 리소스를 점유할 수 있음
Lightsail 기능
- 인스턴스
- 다양한 운영 체제와 자동으로 설치되는 인스턴스 이미지(AMI)를 제공
- 인스턴스를 만들 때는 Windows, Plesk, LAMP, click-to-launch Nginx 등과 같은 WordPress 간단한 운영 체제 (OS), 사전 구성된 애플리케이션 또는 개발 스택이 만들어짐
- 컨테이너 서비스
- 컨테이너는 애플리케이션이 한 컴퓨팅 환경에서 다른 컴퓨팅 환경으로 빠르고 안정적으로 실행되도록 코드와 종속성을 함께 패키징하는 표준 소프트웨어 단위
- 필요한 배포 이미지, 성능, 노드 수만 지정하면 인프라를 관리할 필요없이 컨테이너 서비스 실행
- 데이터베이스
- 데이터베이스를 사용하면 가상 서버와 독립적으로 데이터베이스를 쉽게 확장하고, 애플리케이션 가용성을 개선하거나, 클라우드에서 독립형 데이터베이스를 실행할 수 있음
- 네트워킹
- 고정 IP: Lightsail로 만들어진 인스턴스에 고정 IP 주소 할당
- Distribution: 콘텐츠 전송 네트워크(CDN) 기능 제공
- 로드 밸런서: 트래픽을 여러 서버로 균등하게 나누는 기능을 제공
- 스토리지
- Bucket: 파일, 이미지, 비디오 등의 객체를 저장하고 엑세스하는 공간을 제공
- Disk: 라이트세일 인스턴스에서 하드 드라이브로 마운트할 수 있는 스토리지 볼륨
- Snapshot
- 인스턴스나 디스크의 상태를 캡처하여 백업 또는 복원에 사용하는 기능
- DNS Zone
- 도메인 이름 시스템(DNS) 레코드를 관리하는 방식을 제공
Elastic Load Balancer
Auto Scaling
클라우드 리소스를 자동으로 조정하여 지정된 조건에 따라 필요할 때만 필요한 만큼 컴퓨팅 리소스를 사용할 수 있도록 하는 AWS 서비스
: EC2 상태 확인을 사용하여 인스턴스의 상태와 가용성을 자동으로 모니터링하고, 종료되거나 손상된 인스턴스를 교체하여 원하는 용량을 유지
- Scale Up: 하나의 인스턴스의 리소스를 늘리는 것
- Scale Out: 규모를 늘리는 것
Load Balancing
: 애플리케이션을 지원하는 리소스 풀 전체에 네트워크 트래픽을 균등하게 배포하는 방법
-> 웹사이트 또는 애플리케이션의 가용성과 내구성을 높이기 위해 사용
- 부하 분산 처리
하나의 리소스에 트래픽이 과도하게 몰려 서비스가 중단되는 현상을 막기 위함
- 하나의 엔드포인트 제공
트래픽을 하나의 경로로 받아 여러 인스턴스에 분산시키기 때문에, 사용자 입장에서는 서로 다른 인스턴스에 접속하게 되더라도 같은 엔드포인트(주소)로 접속하면 됨
Elastic Load Balancer
: 트래픽을 여러 대상에 자동으로 분산시켜주는 서비스 VPC에 탑재되며, 사용자의 요청을 받아 VPC 내의 리소스를 적절한 부하 분산