DAX가 클러스터 유지 관리 및 상태를 자동으로 처리합니다. 하지만 사용 패턴에 맞게 클러스터를 수평 또는 수직으로 스케일링하려면 작업 입력을 제공해야 합니다. 이 섹션에서는 DAX 클러스터 규모를 조정하는 데 필요한 권장 프로세스에 대해 설명합니다.
이 섹션의 내용
클러스터의 수평적 스케일링
DAX 클러스터 규모를 조정하려면 처리량 수요를 충족하도록 용량을 조정해야 합니다. 클러스터가 실행되는 동안 클러스터의 노드(복제본) 수를 늘리거나 줄이면서 조정할 수 있습니다. 수평적 스케일링이라고 하는 이 프로세스를 적용하면 더 많은 노드에 워크로드를 분산하거나 수요가 적을 때 더 적은 수의 노드로 통합할 수 있습니다.
AWS CLI에서 decrease-replication-factor
또는 increase-replication-factor
명령을 사용하여 DAX 클러스터를 수평적으로 스케일 인 및 스케일 아웃할 수 있습니다.
복제 인수 증가(스케일 아웃)
DAX 클러스터의 복제 인수를 늘리면 클러스터에 더 많은 노드가 추가됩니다. 다음 예제에서는 increase-replication-factor
명령의 사용법을 보여줍니다.
aws dax increase-replication-factor \ --cluster-name
yourClusterName
\ --new-replication-factordesiredReplicationFactor
-
이 명령에서
cluster-name
인수는 클러스터의 이름을 지정합니다.yourClusterName
을 예로 들 수 있습니다. -
new-replication-factor
인수는 규모 조정 후 클러스터에 추가할 총 노드 수를 지정합니다. 여기에는 프라이머리 노드와 복제본 노드가 포함됩니다. 예를 들어, 클러스터에 현재 3개의 노드가 있는데 노드를 2개 더 추가하려는 경우new-replication-factor
값을 5로 설정합니다.
복제 인수 감소(스케일 인)
DAX 클러스터의 복제 인수를 줄이면 클러스터에서 노드가 제거됩니다. 노드를 제거하면 수요가 적은 기간 동안 비용을 절감하는 데 도움이 될 수 있습니다. 다음 예제에서는 decrease-replication-factor
명령의 사용법을 보여줍니다.
aws dax decrease-replication-factor \ --cluster-name
yourClusterName
\ --new-replication-factordesiredReplicationFactor
-
이 명령에서
cluster-name
인수는 클러스터의 이름을 지정합니다.yourClusterName
을 예로 들 수 있습니다. -
new-replication-factor
인수는 규모 조정 후 클러스터의 줄어든 노드 수를 지정합니다. 이 수는 현재 복제 인수보다 낮아야 하며 프라이머리 노드를 포함해야 합니다. 예를 들어, 클러스터에 5개의 노드가 있고 2개의 노드를 제거하려는 경우new-replication-factor
값을 3으로 설정합니다.
수평적 스케일링 고려 사항
수평적 스케일링 계획을 세울 때 다음 사항을 고려하세요.
-
프라이머리 노드 - DAX 클러스터에는 프라이머리 노드가 포함되어 있습니다. 복제 인수에는 이 프라이머리 노드가 포함됩니다. 예를 들어, 복제 인수 3은 프라이머리 노드 하나와 복제 노드 2개를 의미합니다.
-
가용성 - DAX 노드를 추가하거나 제거하면 클러스터의 가용성과 내결함성이 변경됩니다. 노드가 많을수록 가용성이 향상될 수 있지만, 비용도 증가합니다.
-
데이터 마이그레이션 - 복제 인수를 늘리면 DAX가 새 노드 집합 전반의 데이터 분산을 자동으로 처리합니다. 새 노드가 트래픽을 처리하기 시작하면 해당 캐시는 이미 워밍업된 상태입니다. 하지만 이 프로세스 중에는 데이터 마이그레이션 도중 성능에 일시적인 영향이 있을 수 있습니다.
규모 조정 프로세스 도중과 이후에 DAX 클러스터를 면밀히 모니터링하여 예상대로 작동하는지 확인하고 필요에 따라 추가로 조정해야 합니다.
클러스터의 수직적 스케일링
기존 클러스터의 노드 크기를 수직적으로 스케일링하려면 새 클러스터를 생성하고 애플리케이션 트래픽을 새 클러스터로 마이그레이션해야 합니다. 노드가 다른 새 클러스터로 마이그레이션하려면 애플리케이션의 성능 및 가용성에 미치는 영향을 최소화하면서 원활하게 전환할 수 있도록 여러 단계를 거쳐야 합니다.
노드 크기를 수직적으로 스케일링할 수 있는 새 클러스터를 만들려면 다음 사항을 고려하세요.
-
현재 설정에 액세스 - 현재 DAX 클러스터의 지표를 검토하여 필요한 새 노드 크기와 수량을 결정하세요. 이 정보를 입력으로 사용하여 클러스터 크기를 정의합니다. 자세한 내용은 DAX 클러스터 크기 조정을 참조하세요.
-
새 DAX 클러스터 설정 - 결정한 노드 유형과 수량으로 새 DAX 클러스터를 생성합니다. 조정할 필요가 없는 한 파라미터 그룹의 기존 구성 설정을 사용할 수 있습니다.
-
데이터 동기화 - DAX는 DynamoDB의 캐싱 계층이므로, 데이터를 직접 마이그레이션할 필요가 없습니다. 그러나 새 DAX 클러스터는 트래픽을 전송하기 전까지는 작업 데이터세트를 메모리에 저장하지 않습니다.
-
애플리케이션 구성 업데이트 - 새 DAX 클러스터의 엔드포인트를 가리키도록 애플리케이션 구성을 업데이트하세요. 애플리케이션 구성에 따라 코드를 변경하거나 환경 변수를 업데이트해야 할 수 있습니다.
새 클러스터로 전환할 때 미치는 영향을 줄이려면 애플리케이션 플릿의 일부에서 새 클러스터로 canary 트래픽을 전송하세요. 애플리케이션 업데이트를 천천히 배포하거나 DAX 엔드포인트 앞에 가중치 기반 라우팅 DNS 항목을 사용하여 이를 수행할 수 있습니다.
-
모니터링 및 최적화 - 새 DAX 클러스터로 전환한 후 성능 지표와 로그를 면밀히 모니터링하여 문제가 있는지 확인하세요. 업데이트된 워크로드 패턴에 따라 노드 수를 조정할 준비를 하세요.
새 클러스터가 작업 데이터세트를 제대로 캐시하기 전까지는 캐시 누락률과 지연 시간이 더 높아집니다.
-
기존 클러스터 사용 중지 - 새 클러스터가 예상대로 작동한다고 확신할 경우 이전 DAX 클러스터를 안전하게 해제하여 불필요한 비용을 방지하세요.