

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

# Beanstalk 클러스터 아키텍처
<a name="beanstalk-cluster-concepts"></a>

Beanstalk 클러스터는 Beanstalk Standard와 동일한 Elastic Beanstalk 애플리케이션, 애플리케이션 버전, 환경 및 구성 옵션 개념을 사용합니다. Beanstalk Standard는 EC2-based 환경 유형입니다. Beanstalk 클러스터는 다른 컴퓨팅 계층과 구성 표면을 사용합니다. 이 주제에서는 측면별 차이점을 설명하고 적용 가능한 환경 유형을 식별합니다.

## 컴퓨팅 모델
<a name="beanstalk-cluster-compute"></a>

Beanstalk Standard에서 Elastic Beanstalk는 환경 전용 Auto Scaling 그룹에서 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스를 시작합니다. 애플리케이션은 해당 인스턴스에서 직접 실행됩니다. Beanstalk 클러스터 환경에서 Elastic Beanstalk는 대신 애플리케이션을 Beanstalk 클러스터 환경에서 공유할 수 있는 Amazon EKS 클러스터의 컨테이너 이미지로 실행합니다. Elastic Beanstalk는 클러스터를 생성하고 운영합니다. Elastic Beanstalk는 애플리케이션을 클러스터로 예약합니다. Elastic Beanstalk는 클러스터의 각 환경을 격리하고 구성된 값과 일치하도록 애플리케이션 복제본 수를 조정합니다. 클러스터를 생성하거나, 환경이 실행되는 클러스터를 선택하거나, 해당 Kubernetes 버전을 선택하지 않습니다.

여러 환경이 동일한 Amazon EKS 클러스터에서 실행될 수 있습니다. Elastic Beanstalk는 구성된 VPC 서브넷을 제공하는 클러스터에 환경을 배치합니다. 해당 서브넷을 처음 사용할 때 클러스터를 생성합니다. 섹션을 참조하세요[환경 그룹화](#beanstalk-cluster-clusters-sharing). Amazon EKS Auto Mode는 노드 용량을 제공합니다. 예약된 컨테이너에 맞게 노드를 추가 및 제거합니다. 클러스터를 공유할 수 있고 Amazon EKS에서 노드 용량을 관리하므로 인스턴스 수는 `aws:autoscaling:asg` 네임스페이스를 통해 구성되지 않습니다. 대신 애플리케이션 복제본 수는 `aws:elasticbeanstalk:eks:environment:autoscaling` 네임스페이스의 `min-replica` 및 `max-replica` 옵션으로 설정됩니다. 복제본 경계 및 복제본 수를 변경하는 트리거는 섹션을 참조하세요[Beanstalk 클러스터 환경 확장](configuring-cluster-scaling.md).

Elastic Beanstalk는 사용자가 제공한 옵션 설정에서 환경의 구성을 확인하고 환경을 생성하거나 업데이트할 때 확인된 구성을 적용합니다. 동일한 구성 옵션이 두 번 이상 제공되면 마지막 발생이 성공합니다. 구성을 변경하려면 옵션 설정을 업데이트합니다.

## Beanstalk 표준과의 차이점
<a name="beanstalk-cluster-differences"></a>

다음 표에는 Beanstalk Standard와 Beanstalk 클러스터 환경 간의 고객 대면 차이점이 요약되어 있습니다. 각 행은 Elastic Beanstalk 개념을 자세히 다루는 주제로 연결됩니다.


| 속성 | Beanstalk 표준 | Beanstalk 클러스터 환경 | 
| --- | --- | --- | 
| 컴퓨팅 | aws:autoscaling:\* 네임스페이스를 통해 구성된 Auto Scaling 그룹의 전용 Amazon EC2 인스턴스입니다. | Beanstalk 클러스터 환경에서 공유할 수 있는 Amazon EKS 클러스터에 예약된 컨테이너입니다. Elastic Beanstalk는 클러스터의 각 환경을 격리합니다. 노드는 Amazon EKS Auto Mode에서 제공합니다. | 
| 규모 조정 | Amazon EC2 인스턴스는 aws:autoscaling:\* Auto Scaling 그룹에 의해 추가 및 제거되며, 트리거 및 예약된 작업은 네임스페이스를 통해 구성됩니다. [Elastic Beanstalk 환경 인스턴스의 Auto Scaling](using-features.managing.as.md)을(를) 참조하세요. | min-replica 및 max-replica 경계, CPU, 메모리, 일정 또는 자체 엔드포인트가 보고하는 지표 내에서 애플리케이션 복제본이 추가 및 제거되었습니다. [Beanstalk 클러스터 환경 확장](configuring-cluster-scaling.md)을(를) 참조하세요. | 
| 배포 아티팩트 | Elastic Beanstalk가 플랫폼(솔루션 스택) AMI에서 실행하는 소스 번들입니다. [Elastic Beanstalk 지원되는 플랫폼](concepts.platforms.md)을(를) 참조하세요. | Amazon Elastic Container Registry(Amazon ECR)의 컨테이너 이미지입니다. 이미지가 직접 제공되거나 Elastic Beanstalk가 이미지에 빌드할 소스가 제공됩니다. [Beanstalk 클러스터 환경을 위한 컨테이너 이미지 빌드](beanstalk-cluster-app-versions.md)을(를) 참조하세요. | 
| 플랫폼 개념 | 관리형 솔루션 스택(AMI의 운영 체제, 웹 서버 및 언어 런타임). [Elastic Beanstalk 지원되는 플랫폼](concepts.platforms.md)을(를) 참조하세요. | 솔루션 스택 또는 AMI가 없습니다. 런타임은 컨테이너 이미지와 Elastic Beanstalk가 생성하는 클러스터 버전에 의해 정의됩니다. | 
| 배포 정책 | aws:elasticbeanstalk:command 네임스페이스를 통해 구성된 All-at-once, 롤링 또는 변경 불가능한 배포. | aws:elasticbeanstalk:eks:environment:deployment 네임스페이스의 strategy 옵션으로 구성된 롤링 업데이트(기본값) 또는 한 번에 모두. 한 번에 모든의 옵션 값은 입니다Recreate. | 
| 구성 네임스페이스 | aws:autoscaling:\* 및와 같은 클래식 네임스페이스aws:elasticbeanstalk:environment. [구성 옵션](command-options.md)을(를) 참조하세요. | aws:elasticbeanstalk:eks:\* 네임스페이스입니다. 클래식 컴퓨팅 네임스페이스는 적용되지 않습니다. | 
| Health | 각 인스턴스의 호스트 관리자 및 로드 밸런서에서 보고됩니다. | 인스턴스당 상태는 보고되지 않습니다. Application Load Balancer를 사용하면 상태에 Elastic Beanstalk가 평가하는 로드 밸런서 지표가 포함됩니다. 에서는 load-balancer-type=None요청 속도, 오류 속도 및 지연 시간 평가가 적용되지 않습니다. [Beanstalk 클러스터 환경 모니터링](monitoring-cluster-environments.md)을(를) 참조하세요. | 

## 고객 제공 및 서비스 관리형 리소스
<a name="beanstalk-cluster-resources"></a>

Elastic Beanstalk는 Beanstalk 클러스터 환경을 실행하는 Amazon EKS 클러스터를 생성하고 운영합니다. Amazon EKS에 필요한 클러스터 및 노드 AWS Identity and Access Management (IAM) 역할은 고객이 제공합니다. Elastic Beanstalk는 클러스터의 모든 환경에서 동일한 역할을 제공해야 하므로 [Beanstalk 클러스터에 대한 권한](beanstalk-cluster-permissions.md)에 설명된 역할 이름과 AWS 관리형 정책을 사용하는 것이 좋습니다. Amazon EKS Pod Identity를 통해 실행 중인 애플리케이션에 대해 애플리케이션 역할을 제공할 수도 있습니다. 환경 생성 중에 Elastic Beanstalk 콘솔에서 애플리케이션 역할이 선택됩니다. 전체 IAM 책임 모델 및 애플리케이션 역할 절차는 섹션을 참조하세요[Beanstalk 클러스터에 대한 권한](beanstalk-cluster-permissions.md).

환경의 VPC 서브넷은 선택 사항입니다. 서브넷이 생략되면 Elastic Beanstalk는 기본 VPC의 퍼블릭 서브넷을 사용합니다. 서브넷 세트는 환경을 실행하는 클러스터를 결정합니다. 클러스터 할당 및 Elastic Beanstalk가 작동하는 인프라는 섹션을 참조하세요[환경 그룹화](#beanstalk-cluster-clusters-sharing).

Elastic Beanstalk는 서비스 생성 클러스터에서 애플리케이션을 운영합니다. 컨테이너 이미지를 배포하고 `aws:elasticbeanstalk:eks:environment:deployment` 네임스페이스를 통해 롤링 업데이트를 적용합니다. 실행 중인 애플리케이션 복제본 수를 구성의 `min-replica` 및 `max-replica` 경계로 조정합니다. 에 설명된 상태를 통해 환경 수준 상태를 보고합니다[Beanstalk 클러스터 환경 모니터링](monitoring-cluster-environments.md). Elastic Beanstalk는 환경을 서비스 관리형으로 할당하는 각 클러스터를 추적합니다.

**중요**  
Elastic Beanstalk는 예상 서비스 관리형 구성과 일치하는 클러스터에만 환경을 할당합니다. 인프라가 더 이상 해당 구성과 일치하지 않으면 Elastic Beanstalk는 새 환경에 대한 클러스터 선택을 중지합니다. 환경 변경은 Elastic Beanstalk 작업 및 구성을 통해 이루어집니다.

## 애플리케이션 요구 사항 및 제한 사항
<a name="beanstalk-cluster-when-to-use"></a>

Beanstalk 클러스터 환경에는 컨테이너 이미지 및 하나 이상의 동일한 교체 가능한 복제본으로 실행할 수 있는 애플리케이션이 필요합니다. 로드 밸런서는 선택 사항입니다. 로드 밸런서가 구성되면 애플리케이션 복제본 간에 요청을 분산합니다. 복제본에 재시작 후에도 유지되어야 하는 로컬 상태가 없는 상태 비저장 웹 서비스 또는 API는이 요구 사항을 충족합니다. 요청 포트, CPU 및 메모리 요청, 애플리케이션 복제본 수 및 배포 동작은 `aws:elasticbeanstalk:eks:*` 옵션을 통해 구성됩니다. Elastic Beanstalk는 Amazon EKS Auto Mode를 통해 클러스터 용량을 제공합니다.

Beanstalk 클러스터 환경을 생성하기 전에 다음 애플리케이션 요구 사항 및 제한 사항을 확인합니다.
+ 로컬 스토리지는 영구적이지 않습니다. 애플리케이션의 각 복사본에는 복사본이 다시 시작될 때 손실되는 임시 스토리지가 있습니다. 업로드, 캐시 또는 작업 파일을 로컬 디스크에 쓰고 재시작 후에도 유지되어야 하는 애플리케이션은 외부 영구 스토리지 없이는 호환되지 않습니다.
+ 요청은 애플리케이션 복제본에 분산됩니다.
+ Elastic Beanstalk는 지원되는 언어에 대해 소스에서 컨테이너 이미지를 빌드합니다. Dockerfile 또는 사전 빌드된 이미지를 제공할 수도 있습니다. [Beanstalk 클러스터 환경을 위한 컨테이너 이미지 빌드](beanstalk-cluster-app-versions.md)을(를) 참조하세요.

## 구성 예
<a name="beanstalk-cluster-example"></a>

다음 AWS CLI 요청은 Beanstalk 클러스터 환경에 대한 요청 포트, 메모리 요청, 실행 중인 복제본 수 및 배포 동작을 설정합니다. 설정은 `aws:elasticbeanstalk:eks:*` 네임스페이스를 사용합니다.

```
$ aws elasticbeanstalk update-environment \
    --environment-name my-cluster-env \
    --option-settings \
        Namespace=aws:elasticbeanstalk:eks:environment,OptionName=service-port,Value=8080 \
        Namespace=aws:elasticbeanstalk:eks:environment,OptionName=memory,Value=1Gi \
        Namespace=aws:elasticbeanstalk:eks:environment,OptionName=load-balancer-type,Value=ALB \
        Namespace=aws:elasticbeanstalk:eks:environment:autoscaling,OptionName=min-replica,Value=3 \
        Namespace=aws:elasticbeanstalk:eks:environment:autoscaling,OptionName=max-replica,Value=3 \
        Namespace=aws:elasticbeanstalk:eks:environment:deployment,OptionName=strategy,Value=RollingUpdate \
        Namespace=aws:elasticbeanstalk:eks:environment:deployment:strategy:rolling,OptionName=max-surge,Value=25% \
        Namespace=aws:elasticbeanstalk:eks:environment:deployment:strategy:rolling,OptionName=max-unavailable,Value=0
```

`strategy` 옵션은 콘솔에 롤링 업데이트로 표시되고 한 번에 모두 `Recreate`표시되는 `RollingUpdate` 또는를 수락합니다. `RollingUpdate`를 사용하면는 배포 중에 Elastic Beanstalk가 시작하는 추가 복제본 수를 `max-surge` 제한합니다. `max-unavailable` 옵션은 한 번에 축소되는 기존 복제본 수를 제한합니다. 각 옵션은 개수 또는 백분율을 허용합니다. `memory` 값은 `1Gi` 또는와 같은 Kubernetes 수량 표기법을 사용합니다`512Mi`. 전체 옵션 세트는 섹션을 참조하세요[Beanstalk 클러스터 환경의 구성 옵션](command-options-general-eks.md).

## 환경 그룹화
<a name="beanstalk-cluster-clusters-sharing"></a>

Elastic Beanstalk는 사용하는 VPC 서브넷을 기준으로 Beanstalk 클러스터 환경을 클러스터로 그룹화합니다.
+ 동일한 AWS 계정에서 동일한 서브넷 세트를 사용하는 환경은 *동일한* 클러스터에서 실행됩니다.
+ 다른 서브넷 세트를 사용하는 환경은 *다른* 클러스터에서 실행됩니다.

지정된 서브넷 세트로 첫 번째 환경을 생성하면 Elastic Beanstalk가 클러스터를 생성합니다.이 클러스터에는 약 10분이 걸립니다. Elastic Beanstalk는 환경의 이벤트에서 이를 보고합니다.

```
INFO  Creating CloudFormation stack for cluster infrastructure. This is a one-time operation and generally takes about 10 minutes. stack='beanstalk-cluster-{{uuid}}'
INFO  Starting cluster assignment. environment='my-cluster-env'
INFO  Successfully completed cluster assignment. environment='my-cluster-env' clusterArn='arn:aws:eks:us-east-1:{{111122223333}}:cluster/beanstalk-cluster-{{uuid}}'
```

Elastic Beanstalk는 나중에 기존 클러스터에 동일한 서브넷을 사용하는 환경을 배치합니다. 이벤트는 스택 생성 메시지 없이 할당을 보고합니다. Elastic Beanstalk는 클러스터와 클러스터를 생성하는 AWS CloudFormation 스택의 이름을 모두 지정합니다`beanstalk-cluster-{{uuid}}`.

Elastic Beanstalk가 서브넷을 고려하는 순서는 중요하지 않습니다. 동일한 서브넷이 다른 순서로 설정됩니다. 서브넷 세트만 클러스터를 선택합니다. 클러스터가 이미 서브넷 세트에 등록된 경우 제공하는 클러스터 및 노드 역할 설정이 해당 클러스터에 등록된 역할과 일치해야 합니다. Elastic Beanstalk는 충돌하는 역할 설정을 거부합니다. 다른 역할 ARNs 다른 클러스터를 선택하지 않습니다. 관찰성 역할도 제공하면 Elastic Beanstalk는 동일한 방식으로 클러스터에 대해 이를 검증합니다. 선택적 애플리케이션 역할은 환경에 속하며 환경마다 다를 수 있습니다. 의 환경 생성 절차를 사용하여 구성합니다[애플리케이션 역할 구성](beanstalk-cluster-permissions.md#beanstalk-cluster-permissions-application-role).

Elastic Beanstalk는 클러스터를 공유하는 환경 수를 제한하지 않습니다. Amazon EKS Auto Mode는 클러스터에 예약된 컨테이너에 맞게 노드를 추가합니다. 클러스터 공유는 환경별 조정 제한을 추가하지 않습니다. 각 환경에는 구성된 복제본 또는 오토 스케일링 제한, 적용 가능한 서비스 할당량 및 사용 가능한 용량이 계속 적용됩니다. 별도의 클러스터에서 환경을 실행하려면 다른 서브넷 세트로 환경을 생성합니다.

**중요**  
기존 Beanstalk 클러스터 환경의 서브넷 또는 클러스터, 노드 및 관찰성 역할은 변경할 수 없습니다. Elastic Beanstalk는 환경을 다른 클러스터로 이동하지 않고 이러한 업데이트를 거부하고 다음을 보고합니다. 애플리케이션을 다른 서브넷 또는 역할로 이동`Changes to EKS cluster configuration (subnets and IAM roles) are not currently supported for an existing environment. Please revert these option settings to continue.`하려면 원하는 설정으로 새 환경을 생성한 다음 두 환경 CNAMEs을 교체합니다. [Elastic Beanstalk를 사용한 블루/그린 배포](using-features.CNAMESwap.md)을(를) 참조하세요. 환경을 생성할 때 환경에서 사용하는 서브넷 및 클러스터 역할을 결정합니다. [Beanstalk 클러스터 시작하기](beanstalk-cluster-getting-started.md)을(를) 참조하세요.

## 컴퓨팅을 공유하는 환경 간 격리
<a name="beanstalk-cluster-isolation-pointer"></a>

서브넷은 환경 간의 기본 경계입니다. 서브넷 세트는 클러스터를 선택하므로 환경 그룹에 자체 서브넷을 제공하면 해당 그룹에 자체 클러스터, 자체 노드 및 자체 네트워크가 제공됩니다. 단일 클러스터 내에서 Elastic Beanstalk는 기본적으로 Beanstalk 클러스터 환경 간의 네트워크 트래픽을 격리하며, `aws:elasticbeanstalk:eks:environment` 네임스페이스의 옵션을 사용하면 특정 환경이 전용 노드에서 통신하거나 환경을 배치할 수 있습니다.

각 선택에서 제공하는 경계, 이를 확장하는 옵션, 공유 클러스터가 분리하지 않는 항목에 대한 자세한 내용은 섹션을 참조하세요[Beanstalk 클러스터 환경의 다중 테넌시](beanstalk-cluster-multi-tenancy.md).

## 관리형 인프라 구성
<a name="beanstalk-cluster-clusters-config"></a>

Elastic Beanstalk는 사용자가 선택하지 않은 고정 구성으로 각 클러스터를 생성합니다.


| 설정 | Elastic Beanstalk가 구성하는 내용 | 
| --- | --- | 
| Kubernetes 버전 | Elastic Beanstalk는 클러스터 생성 시 버전을 선택합니다. Elastic Beanstalk는 지원하는 최신 Kubernetes 버전으로 새 클러스터를 생성합니다. 기존 클러스터의 환경은 클러스터에 이미 있는 버전을 실행합니다. 이 버전은 클러스터 수명 동안 고정 상태로 유지됩니다. | 
| 노드 용량 | Amazon EKS Auto Mode: 클러스터에 예약된 컨테이너에 맞게 노드를 추가 및 제거합니다. 노드 용량 구성은 서비스 관리형입니다. | 
| 클러스터 인프라 액세스 | 서비스 관리형. Elastic Beanstalk API AWS CLI, 또는 Elastic Beanstalk 콘솔을 통해 환경을 구성합니다. | 
| 클러스터 추가 기능 | Elastic Beanstalk는 환경에서 사용하는 추가 기능을 설치하고 고정합니다. Elastic Beanstalk가 새로운 고정 추가 기능 버전을 도입하면 후속 환경 생성 또는 업데이트 중에 클러스터에 업데이트를 적용합니다. 업데이트를 직접 계획하거나 적용하지 않습니다. | 

Elastic Beanstalk는 이를 자체적으로 설정하므로 클러스터를 구성하는 대신 `aws:elasticbeanstalk:eks:*` 옵션을 통해 *애플리케이션을* 구성합니다. [Beanstalk 클러스터 환경의 구성 옵션](command-options-general-eks.md)을(를) 참조하세요.

## 클러스터 구성 드리프트
<a name="beanstalk-cluster-clusters-drift"></a>

Elastic Beanstalk는 해당 클러스터가 예상 서비스 관리형 구성과 일치하는 경우에만 생성한 클러스터를 운영합니다. 인프라가 더 이상 해당 구성과 일치하지 않는 경우 Elastic Beanstalk는 구성 드리프트를 감지하고 클러스터 유지 관리를 일시 중지하며 환경 이벤트를 보고합니다.

```
ERROR  Cluster drift detected for environment 'my-cluster-env'. {{what changed}}. Service will skip cluster maintenance for this environment.
```

클러스터가 드리프트되는 동안:
+ Elastic Beanstalk는 새 환경을 배치하지 않습니다.
+ Elastic Beanstalk는 서비스 관리형 추가 기능 버전 업데이트를 포함하여 더 이상 이를 유지 관리하지 않습니다.
+ 이미 실행 중인 환경에 대한 업데이트가 실패합니다.

드리프트는 복구할 수 있습니다. 복구하려면 클러스터가 Elastic Beanstalk가 다시 예상하는 구성과 일치하도록 변경의 원인을 되돌립니다. 드리프트 이벤트는 변경된 항목의 이름을 지정하며, 되돌릴 항목을 알려줍니다. Elastic Beanstalk는 다음 환경 작업에서 클러스터를 재평가하고 구성이 일치하면 클러스터 관리를 재개합니다. 실패한 작업을 다시 시도합니다.

예상 구성을 복원할 수 없는 경우 AWS Support에 문의하십시오.

드리프트를 방지하려면 클러스터를 직접 변경하는 대신 Elastic Beanstalk 작업 및 구성 옵션을 통해 환경을 변경합니다. [Beanstalk 클러스터 환경의 구성 옵션](command-options-general-eks.md)을(를) 참조하세요.

## 클러스터 삭제
<a name="beanstalk-cluster-clusters-lifecycle"></a>

Elastic Beanstalk는 마지막 환경을 종료한 후 3시간 후에 클러스터 삭제를 예약합니다. 이 간격 동안 서브넷이 동일한 다른 환경을 생성하면 Elastic Beanstalk는 보류 중인 정리를 취소하고 기존 클러스터를 재사용합니다.

**서비스 관리형 인프라 삭제를 확인하려면**

1. 마지막 환경을 종료하기 전에 Elastic Beanstalk를 통해 클러스터 ARN을 기록합니다. 서비스 생성 클러스터 인프라의 경우 CloudFormation 템플릿은 클러스터 이름을 스택 이름으로 설정합니다. 따라서 클러스터 ARN의 마지막 슬래시 뒤의 이름은 다음 절차에서 읽기 전용 삭제 확인을 위한 스택을 식별합니다.

   ```
   $ aws elasticbeanstalk describe-environment-resources \
       --environment-name my-cluster-env \
       --query 'EnvironmentResources.Cluster.Name'
   ```

   명령은 클러스터 ARN을 반환합니다. 스택 이름은 마지막 슬래시 뒤의 ARN 부분입니다.
**중요**  
파생 스택 이름은 읽기 전용 CloudFormation 웨이터에만 사용되며 아래에 표시된 작업을 설명합니다. 서비스 관리형 인프라를 변경하는 `delete-stack``update-stack`, 또는 기타 작업에 전달하지 마십시오.

   클러스터 ARN과 파생 스택 이름을 기록합니다. 다음 읽기 전용 확인 단계에 사용합니다.

1. 환경을 종료하고의 단계에 `Terminated` 따라 환경에 도달하는지 확인합니다[Elastic Beanstalk 환경 종료](using-features.terminating.md). 클러스터 정리는 3시간 재사용 간격 후에 별도로 시작되며 환경 종료는 클러스터 삭제를 기다리지 않습니다.

1. 3시간 후 권한이 있는 IAM 보안 주체를 사용하여 서비스 생성 스택을 설명합니다. CloudFormation 웨이터는 최대 60분 동안 30초마다 읽기 전용 스택 설명을 사용하고 스택이 더 이상 존재하지 않으면 성공합니다.

   ```
   $ aws cloudformation wait stack-delete-complete \
       --stack-name {{cluster-stack-name}}
   ```

   스택이 더 이상 존재하지 않으면 웨이터가 성공합니다. 실패하면 기한 이후에도 스택이 계속 존재합니다. `aws cloudformation describe-stacks` 및 `aws cloudformation describe-stack-events`를 사용하여 스택 상태 및 `DELETE_FAILED` 이벤트를 검사합니다.

1. 웨이터가 기한 이후에도 스택이 여전히 존재한다고 보고하는 경우 다른 환경이 클러스터를 재사용했는지 확인합니다. 계정 및 리전의 활성 Beanstalk 클러스터 환경을 나열합니다.

   ```
   $ aws elasticbeanstalk describe-environments \
       --query "Environments[?Tier.Name=='Cluster' && Tier.Type=='EKS'].EnvironmentName"
   ```

   나열된 각 환경에 대해 클러스터 ARN을 읽습니다.

   ```
   $ aws elasticbeanstalk describe-environment-resources \
       --environment-name {{environment-name}} \
       --query 'EnvironmentResources.Cluster.Name'
   ```

   클러스터 ARN이 기록된 클러스터 ARN과 일치하는 환경은 삭제가 재사용을 위해 취소되었음을 의미합니다. 일치하는 환경이 없는 경우 스택 상태 및 `DELETE_FAILED` 이벤트를 사용하여 보존된 리소스를 진단합니다. 서비스 관리형 스택을 수동으로 삭제하거나 수정하지 마십시오. 활성 환경이나 실행 가능한 CloudFormation 실패 없이 기한 이후에도 스택이 유지되는 경우 AWS Support에 문의하세요.