-
Lightsail&EC2, auto Scailing&ELB카테고리 없음 2023. 11. 8. 11:46
Lightsail이란?
아마존 웹 서비스 중 독립적으로 구성된 서비스로, AWS에가 너무 복잡하기에 등장했다.
클라우드에서 제공되는 가장 기본적인 서비스는 IaaS라고 이야기되는 가상머신을 제공해준다. 물론, EC2도 여기에 속하지만 Lightsail에 비하면 다루기 어려운 서비스이다.
즉, Lightsail은 가상머신, 컨테이너,데이터베이스, CDN, 로드밸런서, DNS 관리 등 프로젝트를 빠르게 시작하는 데 필요한 모든 기능을 신속하게 이용가능하도록 하는 VPC(virtual private server) 서비스이다.
cf. VPC란 1대의 물리적 서버에 다수의 가상 서버를 구축하는 것을 의미한다.
cf. CDN(콘텐츠 전송 네트워크)
Lightsail의 instance는?
AWS 클라우드에 있는 가상 프라이빗 서버(VPS)로, 리전과 가용영역 선택, 인스턴스 이미지로 선택할 플랫폼과 블루프린트(미리 정의된 설정, 구성 및 자원의 모음) 선택할 수 있으며, 기본 수준의 CPU 성능을 발휘하면서 추가적으로 버스트 성능을 발휘할 수 있다. 즉, 비디오 인코딩 어플리케이션과 같이 일관되게 높은 CPU 성능을 쓰려면 EC2가 더 적합하다.
가격에 따라 정해진 CPU, 메모리, 디스크 용량을 선택하게되고 정해진 가격만큼만 과금된다. 만약, 한달 내내 실행시키되 트래픽이 많지 않다면 EC2가 아닌 Lightsail가 더 적합하다.
Lightsail의 AMI는?
instance는 실행가능한 소프트웨어로 인스턴스 이미지(AMI)를 제공하는데, 이 이미지 안에는 특정 운영체제와 소프트웨어 구성이 들어가있어 사용자는 원하는 것을 선택할 수 있다. 사용자는 브라우저 내 SSH 클라이언트를 사용하여 인스턴스에 소프트웨어를 추가적으로 설치할 수 있다.
1) Amazon Linux 2: 기본적인 웹, 백엔드 서버, 개발 및 테스트 환경에 적합한 이미지
2) ubuntu: 다양한 웹, DB서버, 컨테이너 환경 호스팅에 적합한 이미지
3) WordPress: 블로그나 웹사이트 호스팅에 적합한 이미지로 아파치 서버가 미리 설치되어 있다.
4) LAMP: Linux, Apache, MySQL, PHP 기반의 웹 개발에 적합한 이미지
4) Node.js: 노드기반의 웹 개발에 적합한 이미지
Lightsai의 스냅샷은?
인스턴스나 디스크의 상태를 캡처하여 백업 및 복원에 사용하는 기능으로, 문제 발생시 백업, 애플리케이션 확장을 위한 복제, 다른 AWS 서비스(EC2 등)로의 마이그레이션 등에 이용된다.
Lightsail과 EC2의 차이점은?

Auto Scaling이란?
클라우드 리소스를 자동으로 조정하여 지정된 조건에 따라 필요할 때만 필요한 만큼의 컴퓨팅 리소스를 사용할 수 있도록 하는 서비스로, 사용량이 증가하면 auto scaling은 사용자 정의 규칙에 따라 자동으로 EC2 인스턴스를 추가하여 용령을 늘리고 사용량이 감소하면 리소스를 줄여 비용을 절감한다.
Scale up과 Scale down이란?
스케일 업이란 하나의 인스턴스 리소스를 늘리는 것을 의미한다. 예를 들어 더 강력한 CPU나 더 많은 RAM을 갖는 더 큰 인스턴스 유형으로 전환하는 것이다. 단, 해당 방법은 주로 수동으로 수행되기에 리부팅, 서비스 중단을 야기한다.
Scale in과 Scale out이란?
스케일 인이란 더 많은 인스턴스를 추가하여 전체 시스템의 용량을 늘리는 방식으로, auto scaling이 지원하는 방식이다.
EC2 Auto Scaling이란?
ec2인스턴에 대해 scale in 또는 out을 제어할 수 있는 서비스로, 하나의 가용영역이 불가상태가 되면 다른 가용영역에서 새 인스턴스를 시작하게 함으로써 내결함성을 향상시켰고, 현재 트래픽 요구를 처리가능한 용량을 찾아 가용영역 전반에 인스턴스를 분산시킴으로써 가용성을 향상시켰다.
EC2 Auto Scaling의 구성요소는?
Launch Configurations / Launch Templates, Auto Scaling Groups (ASGs), Scaling Policies가 있다. Scaling Policies는 인스턴스 수를 언제 확장하거나 축소할지 결정하는 규칙을 정의하는 것이다.
cf. asg는 최소,최대, 원하는 용량을 설정하여 그 범위 내에서 인스턴스를 유지한다.

필요에 따라 용량을 동적으로 조절하기 때문에 비용절감의 효과가 있고, 인스턴스가 비정상 상태일 때 종료하고 새로운 인스턴스를 시작하므로 내결함성 향상 효과가 있으며, 현재 트래픽 요구를 처리할 수 있는 적정 용량을 갖추도록 도움을 주고 가용영역 전반에 인스턴스를 분산함으로서 가용성을 향상시킨다.
Load Balancer란?
네트워크 트래픽을 여러 서버에 균일하게 분산시키는 장치 또는 소프트웨어로, 웹사이트의 가용성과 내구성을 높이기 위해 사용한다. 부하분산처리는 하나의 리소스에 트래픽이 과하게 몰려 서비스가 중단되는 현상을 막으며, 하나의 엔드포인트를 제공함으로써 트래픽을 하나의 경로로만 받아도 여러 인스턴스에 분산시킬 수 있다는 장점이 있다. 즉, 사용자는 서로 다른 인스턴스에 접속하게 되더라도 동일한 엔드포인트로 접속하는 것이다.
Auto caling과 Load Balancer을 같이 사용하면?

Elastic Load Balancer(ELB)란?
트래픽을 여러 대상에 자동으로 분산시켜주는 서비스로, VPC에 탑재된다.
구성요소로는
1) 리스너 (Listener) : 프로토콜과 포트를 기반으로 요청을 받아 검사하고 이를 적절한 타겟으로 전달하는 기능을 수행한다.
2) 규칙 (Rule) : 리스너와 타겟그룹 사이의 트래픽 분배를 위한 라우팅 규칙이 정의되어 있다.
3) 대상그룹 (Target Group) : 리스너가 전달한 요청을 처리하기 위한 부하 분산 대상들의 모임 (=인스턴스를 묶어 놓은 집합)
4) 유휴 제한 시간 (Connection Time out) : 사용자가 ELB를 거쳐 EC2에 접근하여 서비스를 접속하면 Connection이 생성되는데, 더 이상 통신이 없을 경우 유휴 제한 시간이 작동하고 그 시간이 지나면 Connection이 사라진다.

대상그룹 두개의 AZ 영역이 있고 각 영역에서 로드밸런서가 위치하고 있다면?
EC2가 적은 가용영역에 트래픽이 몰리므로 Cross-Zone Load Balancing을 사용한다.


오른쪽이 Cross-Zone Load Balancing Cross-Zone Load Balancer란?
가용 영역(AZ)을 가리지 않고 고르게 분배하는 방식으로, ALB는 기본적으로 활성화, NLB는 기본적으로 비활성화 되어 있다.
Health Check란?
ELB에 연결된 인스턴스에 직접 트래픽을 발생시켜 인스턴스가 살아있는지 체크하여, 정상적으로 작동하는 인스턴스로만 트래픽을 분배한다.
ELB의 종류는?
1) Application Load Balancer (ALB): L5을 다루는 로드밸런서로 HTTP/HTTPS 프로토콜의 헤더를 보고 적절한 패킷으로 전송한다. 이때 IP가 변동이 자주되므로 DNS name을 사용한다. IP주소 + 포트번호 + 패킷 내용을 보고 스위칭한다. ALB는 IP 주소가 변동되기 때문에 Client에서 Access 할 ELB의 DNS Name을 이용한다.
2) Network Load Balancer (NLB): L4를 다루는 로드밸런서로 TCP/IP 프로토콜의 헤더를 보고 적절한 패킷으로 전송한다. IP + 포트번호를 보고 스위칭한다. NLB는 할당한 Elastic IP를 Static IP로 사용이 가능하여 DNS Name과 IP주소 모두 사용이 가능하다.
3) Gateway Load Balancer (GLB): L4를 다루는 로드밸런서로 트래픽이 ec2로 도달하기 전에 트래픽을 검사, 분석, 인증, 로깅 작업 등을 수행한다. 위의 일반 로드밸런서와 조금 역할이 다르다.
=> 단순한 라우팅이 필요하고, 트래픽이 극도로 많은 경우에는 ALB보다 NLB가 더 적절하다.