728x90
728x90
RDS 읽기 전용 복제본 및 multi AZ RDS 읽기 전용 복제본 및 multi AZ 둘의 차이를 이해하고 각각의 사용 사례를 제대로 알아놔야 한다. RDS Read Replicas fos read scalabilty 이름 그대로 읽기에 특화된 데이터베이스 복제본을 만드는 것이다. 예를 들어 애플리케이션과 RDS 데이터베이스 인스턴스가 있다. 애플리케이션은 데이터베이스 인스턴스에 대해 읽기와 쓰기를 수행한다. 데이터베이스 인스턴스가 너무 많은 요청이 쏠려서 스케일링이 필요로 하다. 특히, 읽기에 해당하는 요청이 너무 많아 읽기만 전용으로 처리해주는 인스턴스가 필요로 한 경우에 읽기 전용 복제본을 만들면 된다. 읽기 전용 복제본은 최대 5개 까지 생성할 수 있으며 동일한 가용 영역 뿐만 아니라 다른 가..
RDS 개요 RDS 는 관계형 데이터베이스 서비스를 나타내며 SQL 문을 언어로 사용하는 Relational Database Service 의 약자이다. SQL 언어를 사용하여 클라우드에 데이터베이스를 생성할 수 있고, 해당 데이터베이스는 AWS 상에서 관리되는 이점을 갖는다. AWS 에서 관리하는 데이터베이스 엔진에는 PostgreSQL, MySQL, MariaDB, Oracle, Microsoft SQL Server, Aurora 등이 있다. EC2 인스턴스에 데이터베이스 서비스를 배포하지 않고 독립된 서비스인 RDS 를 사용하는 이유는 뭘까? RDS 는 관리형 서비스로 AWS 가 데이터베이스 뿐만 아니라 여러 기타 서비스를 제공하기 때문이다! 데이터베이스의 프로비저닝이 완전 자동화되어 있고, 운영 ..
Auto Scaling Group - 솔루션 아키텍트용 ASG 기본 종료 정책 아래는 기본 종료 정책에 대한 우선 순위이다. 가장 많은 인스턴스가 있는 AZ을 찾는다. AZ에 여러개의 인스턴스가 존재할 경우 가장 오랫동안 실행된 인스턴스를 종료한다. 아래 그림을 보면 오토 스케일링 그룹이 있고 두개의 가용 영역이 있다. A 가용 영역에는 두 개의 v1 인스턴스와 두 개의 v2 인스턴스가 실행 구성으로 되어 있고 B 가용 영역에는 세 개의 v1 인스턴스가 있다. v1은 가장 오랫동안 실행된 인스턴스이다. 기본 종료 정책에 따라 우선 가장 많은 인스턴스가 있는 A 가용 영역에서 인스턴스를 삭제할 것이다. 또한 네 개의 인스턴스 중에서 가장 오랫동안 실행된 v1 인스턴스를 선택하여 종료시킨다. 기본 종료 정책..
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..