

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

# SageMaker AI Spaces 추가 기능 설치
<a name="operator-install"></a>

## 종속성
<a name="dependencies"></a>

**Amazon EKS Pod Identity Agent 추가 기능**
+ 운영자가 AWS 자격 증명을 얻는 데 필요합니다.
+ **일반적으로 대부분의 EKS 클러스터에 사전 설치됨** 
+ 설치: EKS 추가 기능을 통해

**Cert-manager**
+ TLS 인증서 관리에 필요
+ HyperPod 빠른 클러스터 생성을 사용하는 경우 **사전 설치됨** 
+ 설치: EKS 추가 기능을 통해

**EBS CSI 드라이버**
+ 스페이스 영구 스토리지(EBS 볼륨)에 필요
+ SageMaker 콘솔을 사용하여 **설치할 때 자동으로** 설치됨
+ `AmazonEBSCSIDriverPolicy` \+ HyperPod별 권한이 있는 IAM 역할 필요
+ 설치: EKS 추가 기능을 통해. 그러나 가이드에 따라 HyperPod에 필요한 추가 권한을 설치해야 합니다.
+ 참조: [ HyperPod에서 Amazon EBS CSI 드라이버 사용](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-ebs.html)

## WebUI 액세스를 위한 추가 종속성
<a name="-additional-dependencies"></a>

**AWS Load Balancer서 컨트롤러**
+ HyperPod 빠른 클러스터 생성을 사용하는 경우 **사전 설치됨** 
+ 설치: Helm을 통해
+ 수동 설치 가이드: [AWS Load Balancer서 컨트롤러 설치](https://docs.aws.amazon.com/eks/latest/userguide/lbc-helm.html)

**외부 DNS**
+ WebUI 액세스에 사용자 지정 도메인을 사용할 때 필요합니다.
+ Route53 DNS 레코드를 자동으로 관리합니다.
+ Route53 권한이 있는 IAM 역할 필요
+ 설치: EKS 추가 기능을 통해

## 설치
<a name="installation"></a>

시작하기 전에 다음 사항을 갖추었는지 확인합니다.
+ Kubernetes 버전 1.30 이상을 실행하는 작업자 노드가 하나 이상 있는 활성 SageMaker HyperPod 클러스터
+ 최소 인스턴스 유형(XX vCPU, YY GiB 메모리)이 있는 작업자 노드 하나 이상

### Amazon SageMaker Spaces 추가 기능 설치
<a name="space-add-on"></a>

기본 설정의 경우 빠른 설치 또는 고급 구성의 경우 사용자 지정 설치를 사용하여 SageMaker Spaces 추가 기능을 설치할 수 있습니다.

#### 빠른 설치
<a name="quick-install"></a>

1. [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)에서 Amazon SageMaker Console을 엽니다.

1. 클러스터 목록에서 클러스터를 선택합니다.

1. IDE 및 노트북 탭에서 Amazon SageMaker Spaces를 찾은 다음 빠른 설치를 선택합니다.

빠른 설치 자동:
+ 추가 기능에 필요한 IAM 역할을 생성합니다.
+ Systems Manager에 필요한 IAM 역할을 사용하여 원격 액세스 모드 활성화
+ 추가 기능을 설치하고 포드 자격 증명 연결을 구성합니다.

#### 사용자 지정 설치
<a name="custom-install"></a>

1. [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)에서 Amazon SageMaker Console을 엽니다.

1. 클러스터 목록에서 클러스터를 선택합니다.

1. IDE 및 노트북 탭에서 Amazon SageMaker Spaces를 찾은 다음 사용자 지정 설치를 선택합니다.

1. 다음과 같은 옵션을 구성합니다.

   **추가 기능에 필요한 IAM 역할**
   + 권장 권한이 있는 새 IAM 역할을 생성할지 아니면 필요한 권한이 있는 기존 역할을 사용할지 선택합니다(위의 관리자 권한 설정 섹션 참조).

   **원격 액세스 구성**
   + 사용자가 AWS Systems Manager를 사용하여 로컬 Visual Studio 코드의 스페이스에 연결할 수 있도록를 활성화합니다.
   + SSM 관리형 인스턴스 역할의 경우:
     + **새 역할 생성** - 추가 기능은 필요한 Systems Manager 권한으로 역할을 생성하고 관리합니다.
     + **기존 역할 사용** - 필요한 Systems Manager 권한이 있는 사전 구성된 역할 선택
   + Spaces 추가 기능 실행 역할에 SSM 관리형 인스턴스 역할에 대한 PassRole 권한이 있는지 확인합니다.
**참고**  
원격 액세스를 활성화하면 추가 인스턴스당 요금에 대해 AWS Systems Manager 고급 인스턴스 티어가 활성화됩니다. 요금 정보는 Systems Manager 요금을 참조하세요.

   **웹 브라우저 액세스 구성**
   + 사용자가 Route 53 DNS 및 SSL 인증서를 사용하여 웹 브라우저를 통해 스페이스에 액세스할 수 있도록 허용하려면 활성화
   + **사전 조건:** 브라우저 액세스를 활성화하기 전에 AWS Load Balancer 컨트롤러 설치
   + **Route 53 호스팅 영역:** 소유한 도메인 또는 하위 도메인의 기존 호스팅 영역을 선택합니다. DNS 관리 및 SSL 인증서 검증을 활성화하려면 도메인 또는 하위 도메인을 등록하고 사용자가 제어해야 합니다.

     도메인 등록에 대한 자세한 내용은 Route 53 개발자 안내서의 [새 도메인 등록](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-register.html#domain-register-procedure-section)을 참조하세요.
   + **하위 도메인:** 하위 도메인 접두사 입력(영숫자 및 하이픈만 해당, 최대 63자)
   + **SSL 인증서:** AWS Certificate Manager에서 기존 SSL 인증서를 선택합니다. 인증서는 유효해야 하며 개별 스페이스 액세스 URL을 지원하려면 하위 도메인(예: subdomain.domain.com)과 와일드카드 하위 도메인(예: \*.subdomain.domain.com)을 모두 포함해야 합니다. URLs
   +  **토큰 서명 키:** JWT 토큰 서명을 위한 AWS KMS 비대칭 키를 선택합니다. 키는 보안 WebUI 액세스를 위한 인증 토큰을 암호화하는 데 사용됩니다. KMS에서 새 비대칭 키를 생성하거나 계정이 액세스할 수 있는 기존 키를 선택할 수 있습니다.
**참고**  
호스팅 영역 및 DNS 쿼리에는 표준 Route 53 요금이 적용됩니다. 요금 정보는 Route 53 요금을 참조하세요.

#### EKS 추가 기능 설치 - WebUI를 사용하는 Jupyter K8s
<a name="webui-install"></a>

##### 구성 파일
<a name="configure-file"></a>

생성`addon-config.yaml`:

```
jupyter-k8s:
  workspacePodWatching:
    enable: true

jupyter-k8s-aws-hyperpod:
  clusterWebUI:
    enabled: true
    domain: "<DOMAIN_NAME>"
    awsCertificateArn: "<ACM_CERTIFICATE_ARN>"
    kmsEncryptionContext:
      enabled: true
    traefik:
      shouldInstall: true
    auth:
      kmsKeyId: "<KMS_KEY_ARN>"
```

**다음 자리 표시자를 바꿉니다.**
+ <DOMAIN\_NAME>: 도메인 이름(예: `jupyter.example.com`)
+ <ACM\_CERTIFICATE\_ARN>: ACM 인증서 ARN(예: `arn:aws:acm:us-west-2:111122223333:certificate/12345678-1234-1234-1234-123456789012`,
+ <KMS\_KEY\_ARN>: KMS 키 ARN(예: `arn:aws:kms:us-west-2:111122223333:key/12345678-1234-1234-1234-123456789012`

##### 를 통한 설치 AWS CLI
<a name="install-via-cli"></a>

```
aws eks create-addon \
  --cluster-name <CLUSTER_NAME> \
  --addon-name amazon-sagemaker-spaces \
  --configuration-values file://addon-config.yaml \
  --resolve-conflicts OVERWRITE \
  --region <AWS_REGION>
```

**기존 추가 기능을 업데이트하려면:**

```
aws eks update-addon \
  --cluster-name <CLUSTER_NAME> \
  --addon-name amazon-sagemaker-spaces \
  --configuration-values file://addon-config.yaml \
  --resolve-conflicts OVERWRITE \
  --region <AWS_REGION>
```

##### 를 통한 설치 AWS Management Console
<a name="install-via-console"></a>

1. **EKS 콘솔**로 이동 → 클러스터 선택

1. **추가 기능** 탭 클릭 → **새 기능 추가**

1. **SageMaker Spaces** 추가 기능 선택

1. 위의 YAML 구성을 **선택적 구성 설정에** 붙여넣습니다.

1. **다음을** 클릭한 후 추가 기능 설정을 검토합니다.

1. **생성**을 클릭합니다

##### 설치 확인
<a name="install-verify"></a>

```
# Check addon status
aws eks describe-addon \
  --cluster-name <CLUSTER_NAME> \
  --addon-name amazon-sagemaker-spaces \
  --region <AWS_REGION>
```

##### ALB 속성 사용자 지정
<a name="customize-alb"></a>

기본적으로 추가 기능은 웹 UI와 함께 사용할 퍼블릭 로드 밸런서를 생성합니다. EKS 추가 기능 속성을 사용하여 로드 밸런서 속성을 사용자 지정할 수 있습니다.

내부 ALB를 생성하려면 체계를 로 설정합니다`internal`.

```
jupyter-k8s-aws-hyperpod:
  clusterWebUI:
    enabled: true
    domain: "<DOMAIN_NAME>"
    awsCertificateArn: "<ACM_CERTIFICATE_ARN>"
    alb:
      scheme: "internal"  # Default is "internet-facing"
```

`alb.annotations` 필드를 사용하여 ALB 설정을 사용자 지정할 수도 있습니다.

```
jupyter-k8s-aws-hyperpod:
  clusterWebUI:
    enabled: true
    domain: "<DOMAIN_NAME>"
    awsCertificateArn: "<ACM_CERTIFICATE_ARN>"
    alb:
      scheme: "internal"
      annotations:
        alb.ingress.kubernetes.io/security-groups: "<SECURITY_GROUP_ID>"
        alb.ingress.kubernetes.io/subnets: "<SUBNET_ID_1>,<SUBNET_ID_2>"
        alb.ingress.kubernetes.io/load-balancer-attributes: "idle_timeout.timeout_seconds=60"
```

**일반적인 ALB 주석:**
+ `alb.ingress.kubernetes.io/security-groups`: ALB에 대한 보안 그룹 지정
+ `alb.ingress.kubernetes.io/subnets`: ALB의 서브넷 지정
+ `alb.ingress.kubernetes.io/load-balancer-attributes`: ALB 속성 설정(유휴 제한 시간, 액세스 로그 등)

사용 가능한 모든 주석은 [AWS Load Balancer Controller 설명서를](https://kubernetes-sigs.github.io/aws-load-balancer-controller/latest/guide/ingress/annotations/) 참조하세요.

### 추가 기능의 업그레이드/버전 관리
<a name="upgrade-add-on"></a>

```
aws eks update-addon \
  --cluster-name <CLUSTER_NAME> \
  --addon-name amazon-sagemaker-spaces \
  --configuration-values file://addon-config.yaml \
  --resolve-conflicts OVERWRITE \
  --region <AWS_REGION>
```