

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Amazon EKS 리소스 조정 실행 블록
<a name="eks-resource-scaling-block"></a>

EKS 리소스 조정 실행 블록을 사용하면 다중 리전 복구 프로세스의 일부로 EKS 리소스를 확장할 수 있습니다. 실행 블록을 구성할 때 비활성화되는 리전의 용량을 기준으로 확장할 용량 비율을 정의합니다.

## EKS 액세스 항목 권한 구성
<a name="eks-resource-scaling-block-permissions"></a>

EKS 리소스 조정 단계를 추가하려면 먼저 리전 스위치에 EKS 클러스터의 Kubernetes 리소스에 대한 작업을 수행하는 데 필요한 권한을 제공해야 합니다. 리전 전환에 액세스를 제공하려면, 다음 리전 전환 액세스 정책을 사용하여 리전 전환이 계획 실행에 사용하는 IAM 역할에 대한 EKS 액세스 항목을 생성해야 합니다. `arn:aws:eks::aws:cluster-access-policy/AmazonARCRegionSwitchScalingPolicy` 

### 리전 전환 EKS 액세스 정책
<a name="eks-resource-scaling-block-permissions.policy"></a>

다음 정보는 EKS 액세스 정책에 대한 세부 정보를 제공합니다.

**이름**: `AmazonARCRegionSwitchScalingPolicy`

**정책 ARN:** `arn:aws:eks::aws:cluster-access-policy/AmazonARCRegionSwitchScalingPolicy`


| Kubernetes API 그룹 | Kubernetes 리소스 | Kubernetes 동사(권한) | 
| --- | --- | --- | 
| \$1 | \$1/scale | get, update | 
| \$1 | \$1/status | get | 
| autoscaling | horizontalpodautoscalers | get, patch | 

### 리전 전환에 대한 EKS 액세스 항목 생성
<a name="eks-resource-scaling-block-permissions.create"></a>

다음 예제에서는 리전 전환이 Kubernetes 리소스에 대해 특정 작업을 수행할 수 있도록 필요한 액세스 항목 및 액세스 정책 연결을 생성하는 방법을 설명합니다. 이 예제에서 권한은 IAM 역할 `arn:aws:iam::555555555555:role/my-role`에 대한 EKS 클러스터 *my-cluster*의 네임스페이스 *my-namespace1*에 적용됩니다.

이러한 권한을 구성할 때 실행 블록의 두 EKS 클러스터 모두에 대해 이 단계를 수행해야 합니다.

**사전 조건**  
시작하기 전에 클러스터의 인증 모드를 `API_AND_CONFIG_MAP` 또는 `API`로 변경합니다. 권한 부여 모드를 변경하면 액세스 항목에 대한 API가 추가됩니다. 자세한 내용은 Amazon EKS 사용 설명서의 [액세스 항목을 사용하도록 인증 모드 변경](https://docs.aws.amazon.com/eks/latest/userguide/setting-up-access-entries.html)을 참조하세요.

**액세스 항목 생성**  
첫 번째 단계는 다음과 유사한 AWS CLI 명령을 사용하여 액세스 항목을 생성하는 것입니다.  

```
aws eks create-access-entry --cluster-name my-cluster --principal-arn
									arn:aws:iam::555555555555:user/my-user --type STANDARD
```
자세한 내용은 Amazon EKS 사용 설명서의 [액세스 항목 생성](https://docs.aws.amazon.com/eks/latest/userguide/creating-access-entries.html)을 참조하세요.

**액세스 항목 연결 생성**  
그런 다음 다음과 유사한 AWS CLI 명령을 사용하여 리전 스위치 액세스 정책에 대한 연결을 생성합니다.  

```
aws eks associate-access-policy --cluster-name my-cluster --principal-arn arn:aws:iam::555555555555:role/my-role \
										--access-scope type=namespace,namespaces=my-namespace1 --policy-arn
										arn:aws:eks::aws:cluster-access-policy/AmazonARCRegionSwitchScalingPolicy
```
자세한 내용은 Amazon EKS 사용 설명서의 [액세스 정책을 액세스 항목과 연결](https://docs.aws.amazon.com/eks/latest/userguide/access-policies.html)을 참조하세요.

리전 전환으로 두 클러스터 모두에 액세스할 수 있도록 다른 리전에서 실행 블록에 있는 두 번째 EKS 클러스터로 이 단계를 반복해야 합니다.

## 구성
<a name="eks-resource-scaling-block-config"></a>

**중요**  
EKS 리소스 조정 단계를 추가하기 전에 먼저가 올바른 권한을 구성했는지 확인합니다. 자세한 내용은 [EKS 액세스 항목 권한 구성](#eks-resource-scaling-block-permissions) 단원을 참조하십시오. 또한 올바른 IAM 정책이 있는지 확인합니다. 자세한 내용은 [Amazon EKS 리소스 조정 실행 블록 샘플 정책](security_iam_region_switch_eks.md) 단원을 참조하십시오.

리전 전환은 현재 apps/v1, 배포 및 apps/v1과 같은 ReplicaSet 리소스를 지원합니다.

실행 블록 구성에 다음 값을 입력합니다.

1. **단계 이름:** 이름을 입력합니다.

1. **설명(선택 사항):** 단계에 대한 설명을 입력합니다.

1. **애플리케이션 이름:** *myApplication*과 같은 EKS 애플리케이션의 이름을 입력합니다.

1. **Kubernetes 리소스 종류:** 애플리케이션의 리소스 종류, 예를 들어 *배포*를 입력합니다.

1. ***리전* 리소스: **각 리전에 대해 EKS 클러스터 ARN, 리소스 네임스페이스 등을 포함하여 EKS 클러스터에 대한 정보를 입력합니다.

1. **활성화된 리전의 용량에 맞추기 위한 비율: ** 활성화된 리전에 맞추기 위해 소스 리전의 실행 중인 포드의 원하는 비율을 입력합니다.

1. **용량 모니터링 접근 방식: **용량 모니터링에 대한 유일한 옵션이 이미 선택되어 있습니다(**24시간 동안 샘플링된 최대 실행 용량**).

   이 용량 모니터링 접근 방식은 EKS 서비스 요청에 `ReplicaCount` 값을 사용합니다. 자세한 내용은 Amazon Elastic Kubernetes Service 사용 설명서의 [Amazon EKS에서 ARC 영역 전환에 대해 알아보기](https://docs.aws.amazon.com/eks/latest/userguide/zone-shift.html)를 참조하세요.

1. **제한 시간:** 제한 시간 값을 입력합니다.

그런 다음 **단계 저장**을 선택합니다.

## 작동 방식
<a name="eks-resource-scaling-block-how"></a>

계획 실행 중에 리전 전환은 활성화 중인 리전의 대상 리소스에 대해 지난 24시간 동안 샘플링된 최대 복제본 수를 검색합니다. 그런 다음 다음 공식을 사용하여 대상 리소스에 대해 원하는 복제본 수를 계산합니다. `ceil(percentToMatch * Source replica count)` 

대상 준비 복제본 수가 원하는 값보다 낮으면 리전 전환은 대상 리소스 복제본 값을 원하는 용량으로 조정합니다. 필요한 경우 노드 오토 스케일러를 활용하여 노드 용량을 늘리면서 복제본이 준비될 때까지 기다립니다.

선택적 `hpaName` 필드가 비어 있지 않은 경우, 리전 전환은 다음 패치를 사용하여 실행 중 또는 실행 후에 자동 스케일 다운을 방지하기 위해 HorizontalPodAutoscaler를 패치합니다. `{"spec":{"behavior":{"scaleDown":{"selectPolicy":"Disabled"}}}}` 

패치의 리소스에 대한 복제본 필드와 HorizontalPodAutoscaler 필드를 무시하도록 GitOps 도구와 같은 드리프트 수정 도구를 구성해야 합니다.

## 계획 평가의 일부로 평가되는 항목
<a name="eks-resource-scaling-block-eval"></a>

리전 전환은 계획을 평가할 때 구성된 EKS 실행 블록 및 권한에 대해 여러 검사를 수행합니다. 리전 전환은 계획의 IAM 역할에 EKS 클러스터를 설명하고 연결된 액세스 항목 정책을 나열할 수 있는 올바른 권한이 있는지 확인합니다. 또한 리전 전환은 IAM 역할이 올바른 액세스 항목 정책에 연결되어 있는지 확인하여 리전 전환에 Kubernetes 리소스에 대해 작업하는 데 필요한 권한이 있는지 확인합니다. 마지막으로 리전 전환은 구성된 EKS 클러스터와 Kubernetes 리소스가 존재하는지 확인합니다.

또한 리전 전환은 필요한 모니터링 데이터(Kubernetes 복제본 수)를 성공적으로 수집 및 저장했는지 확인하고 리전 전환 계획을 실행하는 데 필요한 실행 중인 포드 수를 캡처합니다.