클라우드 컴퓨팅이란?
인터넷을 통해 컴퓨팅 자원(서버, 스토리지, 네트워크 등)을 필요한 만큼 제공받는 기술이다.
IaaS(Infrastructure As A Service)
: 가상 서버, 스토리지, 네트워크 등의 인프라를 서비스로 제공
EC2
- AWS에서 가장 기본적이고 널리 쓰이는 인프라, 가상 머신으로 제공되며 이를 인스턴스라고 힘
- 물리 환경의 컴퓨터처럼 컴퓨팅 리소스를 제공하는 서비스
- 하드웨어 투자 비용 없음
- 원하는 수의 가상 서버 구축 가능, 보안 및 네트워킹 구성과 스토리지 관리 등이 용이
- 용량을 추가하면 웹 사이트 트레픽 급증 등 컴퓨터 사M량I 많은 작업을 처리할 수 있음, 사용량이 감소하면 용량을 다시 축소.
Lightsail
- 초보자 친화적인 서비스로, 주어진 리소스 옵션중 하나를 골라 단일 가상 서버를 간단히 설정하는 서비스
- 웹 사이트 또는 웹 애플리케이션을 구축해야 하는 모든 사용자가 AWS를 시작할 수 있는 가장 쉬운 방법
- 가상머신, SSD기반 스토리지, Networking, 로드밸런서, DNS관리, 고정IP, OS, 개발플랫폼(MEAN, Node.js), 어플리케이션(Wordpress Nginx GitLab, Redmine) 등 모두 포함
- 쉽게 확장 가능
(snapshot을 통해 EC2로 쉽게 마이그레이션 가능)
Virtual Private Server
: 하나의 물리서버를 여러 개의 가상서버로 쪼개어 사용하는 SR
- 각자 독립적인 서버 공간을 가짐
-> 동일한 속도, 보안서비스 제공
- 하나의 물리서버의 리소스를 모든 사용자가 공유함
-> 한 사용자가 리소스를 점유할 수 있음
EC2 vs Lightsail
: 사용자가 원하는 서비스를 개발할 수 있도록 개발 환경(Platform)을 미리 구축해, 이를 서비스 형태로 제공
SaaS(Software As A Service)
: 클라우드 서비스 형태 중 가장 완성된 형태의 클라우드 서비스, 소프트웨어 애플리케이션을 서비스로 제공
FaaS(Function As A Service)
: 복잡한 인프라를 관리하지 않고도 이벤트에 대한 응답으로 코드를 실행할 수 있는 클라우드 컴퓨팅 서비스
Elastic Load Balancer
Auto Scaling
- EC2 상태 확인을 사용하여 인스턴스의 상태와 가용성을 자동으로 모니터링하고, 종료되거나 손상된 인스턴스를 교체하여 원하는 용량을 유지
- 사용량이 중가하면 Auto Scailing은 사용자 정의 규칙에 따라 자동으로 EC2 인스턴스를 추가하여 용량을 늘리고, 사용량이 감소하면 리소스를 줄여 비용을 절감.
- 클라우드 리소스를 자동으로 조정하여 지정된 조건에 따라 필요할 때만 필요한 만큼의 컴퓨팅 리소스를 사용 할 있도록 하는 AWS 서비스
Scale Up: 하나의 인스턴스의 리소스(예:CPU,메모리)를 늘리는 것
Scale Out: 규모를 늘리는 것
목표
- 비용 절감
필요에 따라 용량을 동적으로 늘리거나 줄임. 사용한 만큼만 비용 지불
- 내결함성 향상
인스턴스가 비정상 상태일 때 이를 종료하고, 새로운 인스턴스를 시작 -> 하나의 가용 영역이 불가 상태가 되면 다른 가용 영역에서 새 인스턴스를 시작
- 가용성 향상
현재 트래픽 요구를 처리할 수 있는 적정 용량을 갖추도록 도움을 주고, 가용 영역 전반에 인스턴스 분산
Load Balancing
네트워크 트래픽을 여러 서버에 균일하게 분산시키는 장치 또는 소프트웨어 웹사이트 또는 어플리케이션의 가용성과 내구성을 높이기 위해 사용
- 부하 분산 처리
하나의 리소스에 트래픽이 과도하게 몰려 서비스 중단되는 현상을 막기
- 하나의 엔드포인트 제공
트래픽을 하나의 경로로 받아 여러 인스턴스에 분산시키기 때문에, 사용자 입장에서는 서로 다른 인스턴스에 접속하게 되더라도 같은 엔드포인트(주소)로 접속하면 됨
Elastic Load Balancer
:트래픽을 여러 대상에 자동으로 분산시켜주는 서비스 VPC에 탑재되며, 사용자의 요청을 받아 VPC 내의 리소스를 적절한 부하 분산
ALB(ApplicationLoadBalancer)
- OSI La3er/인 어플리케이션 계층에서 동작하는 로드밸런서
- ALB는 HTTP/HTTPS 프로콜의 헤더를 보고 적절한 패킷으로 전송(지능적인 라우팅)
- ALB는 IP주소+ 포트번호 + 패킷내용을 보고 스위칭
- ALB는 IP주소가 변동되기 때문에 Client에서 Access할 ELB의 DNS Name을 이용
- ALB는 L7을 지원하기 때문에 EC2 대신에 SSL적용이 가능
NLB(NetworkLoadBalancer)
- L4(Transport Layer)의 로드밸런서를 지원
- TCP/IP프로토콜의 헤더를 보고 적절한 패킷으로 전송
- NLB는 IP+ 포트번호를 보고 스위칭
- NLB는 할당한 Elastic IP를 Static IP로 사용이 가능하여 DNS Name과 IP주소 모두 사용이 가능
- NLB는 SSL 적용이 인프라 단에서 불가하여 애플리케이션에서 따로 적용해주어야함