728x90
728x90
Auto Scaling Group 조정 정책 오토 스케일링 그룹의 스케일링 정책에 대해 살펴보자 동적 스케일링 정책(Dynamic Scaling Policies) 동적 스케일링 정책은 세 가지 유형이 존재한다. 대상 추적 스케일링(Target Tracking Scaling) 가장 간단하고 설정하기도 쉽다. 예를 들어 오토 스케일링 그룹의 모든 EC2 인스턴스 평균 CPU 사용률을 추적하여 40% 대에 머무르게 하고 싶을 경우 사용한다. 즉, 기본이 되는 기준점을 세우고 상시 가용이 가능하도록 하는 것이다. Simple / Step Scaling 대상 추적 스케일링 보다 좀 더 복잡하다. 예시1) CloudWatch 에 전체 ASG 에서 CPU 사용률이 70%를 초과하는 경우, 두 개의 유닛을 추가할 수 ..
Auto Scaling Group ASG 에는 증가되는 트래픽 양에 따라 인스턴스를 증가시키는 스케일 아웃 작업과 트래픽 양이 줄어듦에 따라 인스턴스를 감소시키는 스케일 인 작업을 설정할 수 있다. 또한, 특정 갯수만큼만 스케일 아웃시키거나 스케일 인 하여 인스턴스의 최대 최소 갯수를 정할 수 있다. 마지막으로, 이전까지 했던 작업들과 다르게 새 인스턴스를 로드 밸런서에 자동으로 등록할 수 있는 기능도 있다. Minimum size : 오토 스케일링 그룹에서 꼭 실행되야 하는 인스턴스 갯수로, 최소 크기를 나타낸다. Actual Size / Desired Capacity : ASG 에서 현재 실행 중인 인스턴스 갯수를 나타낸다. Maximum size : 부하가 심해진 경우에 스케일 아웃을 통해 추가될 ..
Connection Draining 한 기술 회사에서 운영하는 서비스는 ELB(Elastic Load Balancer)뒤에 EC2 인스턴스를 두고 부하를 분산하는 방식을 사용하고 있다. 이때, EC2가 health check 에 실패하여 unhealthy 상태로 들어가게 되면 진행중이던 in-flight Request 가 끊어지는 이슈가 발생하게 된다. 이를테면, 특정 EC2 인스턴스로부터 수십초가 걸리는 파일 다운로드를 수행중이라고 했을 때, 파일을 다운로드받는 도중, 해당 인스턴스가 unhealthy상태로 바뀌게 되면 커넥션이 끊어지면서 파일 다운로드에 실패하게 되는 것이다. 이러한 상황을 막기 위해 취할 수 있는 방법으로 Connection Draining 을 사용한다. Connection Drai..
Classic Load Balancer(CLB) CLB 는 TCP (4 계층), HTTP & HTTPS (7 계층) 프로토콜을 지원한다. 헬스 체크 또한 TCP 또는 HTTP 프로토콜 기반이다. 클래식 로드 밸런서는 호스트명이 고정되어 있다는 것이다. ex) XXX.region.elb.amazonaws.com HTTP listener 로 클래식 로드 밸런서에 연결하는 클라이언트와 CLB 를 통해 인스턴스에 트래픽을 리다이렉션하는 작업을 진행할 것이다. 클래식 로드 밸런서를 만들기 전에 인스턴스를 생성한다. 사용자 데이터에는 아래 처럼 작성한다. #!/bin/bash sudo yum update -y sudo yum install -y httpd sudo systemctl start httpd sudo s..
EFS vs EBS EBS EBS 볼륨은 오직 하나의 인스턴스에만 연결될 수 있고 특정 가용 영역에서만 사용 가능하다. gp2 : 볼륨의 크기가 커지면 IO 도 커진다. io1 : 볼륨의 크기와 상관없이 IO 를 키울 수 있다. EBS 볼륨을 다른 가용 영역으로 옮기고(마이그레이션) 싶다면 스냅샷을 사용해서 옮겨야 한다. 스냅샷을 찍고, 해당 스냅샷을 이용해서 옮기고 싶은 가용 영역으로 설정한 뒤에 볼륨을 생성한다. EBS 의 스냅샷을 찍고, 재구성하는 동안은 해당 볼륨이 사용되지 않도록 해야 한다. EBS 루트 볼륨은 기본적으로 EC2 인스턴스가 종료될 때 자동으로 종료된다. 옵션을 통해 인스턴스가 종료되도 볼륨은 유지되도록 설정을 바꿀 수 있다. EFS 여러 가용 영역에 있는 인스턴스가 동시에 접속하..