본문 바로가기

IT/AWS46

SQS 아키텍처 소비자가 ASG의 내부에서 EC2 인스턴스를 실행하고 SQS Queue에서 메시지를 폴링하는 사례이다. ASG는 일종의 지표에 따라 확장되어야 하는데 Queue의 길이를 지표로 사용할 수 있다. CloudWatch로 대기열의 길이를 얻을 수 있고 대기열의 길이가 특정 수준을 넘어가면 CloudWatch Alarm을 설정하여 ASG의 사이즈를 변경하는 아키텍처이다. 두번째는 비디오를 처리하는 애플리케이션이 있다고 해보자. 만약 프론트엔드 서버 밖에 없으면 프론트엔트가 처리까지 한 후 S3 버킷에 삽입해야한다. 이렇게 하면 시간이 오래 걸리고 웹사이트의 속도가 느려질 수 있다. 대신 SQS를 사용하여 애플리케이션을 분리(decouple) 하면 파일 처리 요청과 실제 파일 처리가 서로 다른 애플리케이션에서 발.. 2023. 3. 29.
GWLB (Gateway Load Balancer) Gateway Load Balancer GWLB는 배포 및 확장, 그리고 AWS의 써드파티 네트워크 가상 어플라이언스의 플릿 관리에 사용된다. GWLB는 네트워크의 모든 트래픽이 방화벽을 통과하게 하거나 침입 탐지 및 방지 시스템에 사용한다. GWLB를 생성하면 VPC에서 라우팅 테이블에 업데이트 된다. 라우팅 테이블이 수정되면, 모든 사용자 트래픽은 GWLB를 통과한다. 그리고 GWLB는 가상 어플라이언스의 target group으로 트래픽을 확산한다. 그래서 모든 트래픽은 어플라이언스에 도달하고 어플라이언스는 트래픽을 방화벽이나 침입 탐지와 같은 것들을 분석하고 처리한다. 이상이 없으면 다시 GWLB로 보내고 이상이 있으면 트래픽을 버린다. GWLB를 통과한 트래픽은 애플리케이션으로 보내진다. GWL.. 2023. 3. 27.
NLB (Network Load Balancer) NLB는 Layer4의 로드 밸런서 이므로 TCP와 UDP 트래픽을 다룰 수 있다. HTTP를 다루는 L7보다 하위 계층이다. NLB의 성능은 매우 좋다. ALB에 비해 지연시간이 짧다. NLB의 특징은 AZ 별로 하나의 static IP를 갖는다는 점이다. 그리고 Elastic IP 주소를 각 AZ에 할당할 수 있다. Target Groups NLB의 Target Group로는 - EC2 instances - private IP Addresses - ALB(Application Load Balancer) 가 포함 될 수 있고 ALB의 앞에 NLB를 배치하는 경우 NLB 덕분에 static IP 를 얻을 수 있고 ALB가 있기 때문에 HTTP 유형의 트래픽을 처리하는 rule을 얻을 수 있다. NLB는 .. 2023. 3. 27.
ALB(Application Load Balancer) Application Load Balancer ALB는 Network Layer 7, 즉 HTTP 전용 로드 밸런서로 머신 간 다수의 HTTP 애플리케이션의 라우팅에 사용된다. 이러한 머신들은 Target groups이라는 그룹으로 묶이게 된다. 그리고 동일 EC2 인스턴스 상의 여러 애플리케이션에 부하를 분산하다. 이 때는 컨테이너와 ECS를 사용한다. HTTP/2 와 WebSocket를 지원하고 HTTP에서 HTTPS로 트래픽 리다이렉트도 지원한다. 경로 라우팅도 지원한다. target group에 따른 라우팅으로는 URL 경로에 기반한 라우팅 (example.com/users, example.com/boards ...) URL 호스트네임에 따른 라우팅 (one.example.com, two.exam.. 2023. 3. 27.
Elastic Load Balancing (ELB) ELB는 트래픽을 다수의 다운스트림 인스턴스로 분산하기 위해 필요하다. 애플리케이션에 단일 액세스 지점(DNS)를 노출하게 되고 다운스트림 인스턴스의 장애를 원활히 처리할 수 있다. 로드 밸런서가 상태 확인 매커니즘으로 트래픽을 보낼 수 없는 인스턴스를 확인해 준다. 웹 사이트에 암호화된 HTTPS 트래픽을 가질 수 있고 쿠키로 stickiness를 강화할 수 있다. 그리고 클라우드 내에서 private 트래픽으로부터 public 트래픽을 분리할 수 있다. Elastic Load Balancer는 관리형 로드밸런서이며 AWS가 관리하고, 어떤 경우에도 작동할 것을 보장한다. AWS가 업그레이드, 유지관리 및 고가용성을 책임진다. 또한 로드밸런서는 ECS, ACM, CloudWatch, Route53, W.. 2023. 3. 26.
Elastic File System ( EFS ) EFS 는 관리형 NFS(네트워크 파일 시스템)이다 네트워크 파일 시스템이므로 여러 EC2에 마운트 될 수 있고 이 EC2 들은 여러 AZ에 있을 수 있는게 EFS의 강점이다. 가용성이 높고 확장성도 높다. EBS 볼륨보다 가격이 비싸다 사용량 만큼 지불하므로 미리 용량을 프로비저닝 하지 않아도 된다. EFS를 security group가 둘러 싸고 있기 때문에 EC2 인스턴스처럼 security group을 설정해야한다. 그리고 Windows 가 아닌 Linux 기반 AMI와 호환되고 KMS를 사용해 EFS 드라이브에 저장 데이터 암호화를 활성화 할 수 있다. EBS EFS 한 번에 하나의 인스턴스에 연결이 가능 (io제품군은 여러개 가능) 무수히 많은 인스턴스에 연결 가능 특정 AZ에 한정됨 (다른 .. 2023. 3. 24.