

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

# 를 사용하여 RStudio로 Amazon SageMaker AI 도메인 생성 AWS CLI
<a name="rstudio-create-cli"></a>

**중요**  
Amazon SageMaker Studio 또는 Amazon SageMaker Studio Classic에서 Amazon SageMaker 리소스를 만들도록 허용하는 사용자 지정 IAM 정책은 해당 리소스에 태그를 추가할 수 있는 권한도 부여해야 합니다. Studio와 Studio Classic은 만드는 리소스에 태그를 자동으로 지정하기 때문에 리소스에 태그를 추가할 권한이 필요합니다. IAM 정책이 Studio 및 Studio Classic에서 리소스를 만들도록 허용하지만 태그 지정은 허용하지 않는 경우 리소스 만들기를 시도할 때 'AccessDenied' 오류가 발생할 수 있습니다. 자세한 내용은 [SageMaker AI 리소스 태그 지정을 위한 권한 제공](security_iam_id-based-policy-examples.md#grant-tagging-permissions) 섹션을 참조하세요.  
SageMaker 리소스를 만들 수 있는 권한을 부여하는 [AWS Amazon SageMaker AI에 대한 관리형 정책](security-iam-awsmanpol.md)에는 해당 리소스를 만드는 동안 태그를 추가할 수 있는 권한이 이미 포함되어 있습니다.

다음 주제에서는 AWS CLI를 사용하여 RStudio가 활성화된 상태에서 Amazon SageMaker AI 도메인에 온보딩하는 방법을 설명합니다. 를 사용하여 온보딩하려면 섹션을 AWS Management Console참조하세요[Amazon SageMaker AI 도메인 개요](gs-studio-onboard.md).

## 사전 조건
<a name="rstudio-create-cli-prerequisites"></a>
+  [AWS CLI 버전 2](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html) 설치 및 구성 
+  IAM 보안 인증 정보로 [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-config) 구성 

## `DomainExecution` 역할 생성
<a name="rstudio-create-cli-domainexecution"></a>

RStudio 앱을 시작하려면 `DomainExecution` 먼저 역할을 제공해야 합니다. 이 역할은 RStudio를 Amazon SageMaker AI 도메인 생성의 일부로 시작해야 하는지를 결정하는 데 사용됩니다. 또한, 이 역할은 Amazon SageMaker AI에서 RStudio 라이선스에 액세스하고 RStudio 로그를 푸시하는 데 사용됩니다.  

**참고**  
`DomainExecution` 역할에는 최소한 RStudio 라이선스에 액세스할 수 있는 AWS License Manager 권한과 사용자 계정에서 로그를 푸시할 수 있는 CloudWatch 권한이 있어야 합니다.

다음 절차는 AWS CLI를 활용하여 `DomainExecution` 역할을 생성하는 방법을 보여줍니다.

1.  다음 콘텐츠가 포함된 `assume-role-policy.json`이라는 파일을 생성합니다.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Action": "sts:AssumeRole",
               "Effect": "Allow",
               "Principal": {
                   "Service": [
                       "sagemaker.amazonaws.com"
                   ]
               }
           }
       ]
   }
   ```

------

1.  `DomainExecution` 역할을 생성합니다. `<REGION>`은 도메인을 시작할 AWS 리전이어야 합니다.

   ```
   aws iam create-role --region <REGION> --role-name DomainExecution --assume-role-policy-document file://assume-role-policy.json
   ```

1. 다음 콘텐츠가 포함된 `domain-setting-policy.json`이라는 파일을 생성합니다. 이 정책은 RStudioServerPro 앱이 필요한 리소스에 액세스할 수 있도록 허용하고, Amazon SageMaker AI가 기존 RStudioServerPro 앱이 `Deleted` 또는 `Failed` 상태일 때 RStudioServerPro 앱을 자동으로 시작하도록 허용합니다.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "VisualEditor0",
               "Effect": "Allow",
               "Action": [
                   "license-manager:ExtendLicenseConsumption",
                   "license-manager:ListReceivedLicenses",
                   "license-manager:GetLicense",
                   "license-manager:CheckoutLicense",
                   "license-manager:CheckInLicense",
                   "logs:CreateLogDelivery",
                   "logs:CreateLogGroup",
                   "logs:CreateLogStream",
                   "logs:DeleteLogDelivery",
                   "logs:Describe*",
                   "logs:GetLogDelivery",
                   "logs:GetLogEvents",
                   "logs:ListLogDeliveries",
                   "logs:PutLogEvents",
                   "logs:PutResourcePolicy",
                   "logs:UpdateLogDelivery",
                   "sagemaker:CreateApp"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

1.  `DomainExecution` 역할에 연결된 도메인 설정 정책을 생성합니다. 다음 단계에서 해당 ARN을 입력해야 하므로 응답의 `PolicyArn`을 숙지합니다.

   ```
   aws iam create-policy --region <REGION> --policy-name domain-setting-policy --policy-document file://domain-setting-policy.json
   ```

1.  `domain-setting-policy`를 `DomainExecution` 역할로 연결합니다. 이전 단계에서 반환된 `PolicyArn`을 사용합니다.

   ```
   aws iam attach-role-policy --role-name DomainExecution --policy-arn <POLICY_ARN>
   ```

## RStudio 앱으로 Amazon SageMaker AI 도메인 생성
<a name="rstudio-create-cli-domain"></a>

지정된 `RStudioServerProDomainSettings` 파라미터와 함께 `create-domain` CLI 명령을 사용하여 Amazon SageMaker AI 도메인을 생성하면 RStudioServerPro 앱이 자동으로 실행됩니다. RStudioServerPro 앱을 실행할 때 Amazon SageMaker AI는 계정에서 유효한 RStudio 라이선스가 있는지 확인하고 라이선스를 찾을 수 없으면 도메인 생성에 실패합니다.

Amazon SageMaker AI 도메인 생성은 인증 방법 및 네트워크 유형에 따라 다릅니다. 인증 방법 하나와 네트워크 연결 유형 하나를 선택하여 이러한 옵션을 함께 사용해야 합니다. 새 도메인을 만들기 위한 요구 사항에 대한 자세한 내용은 [CreateDomain](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateDomain.html)을 참고하세요.

지원되는 인증 방법은 다음과 같습니다.
+  `IAM Auth` 
+  `SSO Auth` 

다음과 같은 네트워크 연결 유형이 지원됩니다.
+  `PublicInternet` 
+  `VPCOnly` 

### 인증 방법
<a name="rstudio-create-cli-domain-auth"></a>

 **IAM 인증 모드** 

다음은 RStudio를 활성화하고 `IAM Auth` 네트워크 유형을 사용하여 Amazon SageMaker AI 도메인을 생성하는 방법을 보여줍니다. 에 대한 자세한 내용은 [IAM이란 무엇입니까?](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html)를 AWS Identity and Access Management참조하십시오.
+ `DomainExecutionRoleArn`은 이전 단계에서 생성한 역할에 대한 ARN이어야 합니다.
+ `ExecutionRole`은 Amazon SageMaker AI 도메인에서 사용자에게 부여되는 역할의 ARN입니다.
+ `vpc-id`는 Amazon Virtual Private Cloud의 ID여야 합니다. `subnet-ids`는 공백으로 구분된 서브넷 ID 목록이어야 합니다. `vpc-id` 및 `subnet-ids`에 대한 자세한 내용은 [VPS 및 서브넷](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html)을 참고하세요.
+ `RStudioPackageManagerUrl` 및 `RStudioConnectUrl`은 선택 사항이며 각각 RStudio Package Manager 및 RStudio Connect 서버의 URL로 설정해야 합니다.
+ `app-network-access-type`은 `PublicInternetOnly` 또는 `VPCOnly` 중 하나여야 합니다.

```
aws sagemaker create-domain --region <REGION> --domain-name <DOMAIN_NAME> \
    --auth-mode IAM \
    --default-user-settings ExecutionRole=<DEFAULT_USER_EXECUTIONROLE> \
    --domain-settings RStudioServerProDomainSettings={RStudioPackageManagerUrl=<<PACKAGE_MANAGER_URL>,RStudioConnectUrl=<<CONNECT_URL>,DomainExecutionRoleArn=<DOMAINEXECUTION_ROLE_ARN>} \
    --vpc-id <VPC_ID> \
    --subnet-ids <SUBNET_IDS> \
    --app-network-access-type <NETWORK_ACCESS_TYPE>
```

 **IAM Identity Center를 사용한 인증** 

다음은 RStudio가 활성화되고 `SSO Auth` 네트워크 유형이 활성화된 Amazon SageMaker AI 도메인을 생성하는 방법을 보여줍니다. 도메인이 시작되는 리전에 대해를 활성화해야 AWS IAM Identity Center 합니다. IAM Identity Center에 대한 자세한 내용은 [란 무엇입니까 AWS IAM Identity Center?](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)를 참조하세요.
+ `DomainExecutionRoleArn`은 이전 단계에서 생성한 역할에 대한 ARN이어야 합니다.
+ `ExecutionRole`은 Amazon SageMaker AI 도메인에서 사용자에게 부여되는 역할의 ARN입니다.
+ `vpc-id`는 Amazon Virtual Private Cloud의 ID여야 합니다. `subnet-ids`는 공백으로 구분된 서브넷 ID 목록이어야 합니다. `vpc-id` 및 `subnet-ids`에 대한 자세한 내용은 [VPS 및 서브넷](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html)을 참고하세요.
+ `RStudioPackageManagerUrl` 및 `RStudioConnectUrl`은 선택 사항이며 각각 RStudio Package Manager 및 RStudio Connect 서버의 URL로 설정해야 합니다.
+ `app-network-access-type`은 `PublicInternetOnly` 또는 `VPCOnly` 중 하나여야 합니다.

```
aws sagemaker create-domain --region <REGION> --domain-name <DOMAIN_NAME> \
    --auth-mode SSO \
    --default-user-settings ExecutionRole=<DEFAULT_USER_EXECUTIONROLE> \
    --domain-settings RStudioServerProDomainSettings={RStudioPackageManagerUrl=<<PACKAGE_MANAGER_URL>,RStudioConnectUrl=<<CONNECT_URL>,DomainExecutionRoleArn=<DOMAINEXECUTION_ROLE_ARN>} \
    --vpc-id <VPC_ID> \
    --subnet-ids <SUBNET_IDS> \
    --app-network-access-type <NETWORK_ACCESS_TYPE>
```

### 연결 유형
<a name="rstudio-create-cli-domain-connection"></a>

 **공용 인터넷/다이렉트 인터넷 네트워크 유형** 

다음은 RStudio를 활성화하고 `PublicInternet` 네트워크 유형을 사용하여 Amazon SageMaker AI 도메인을 생성하는 방법을 보여줍니다.
+ `DomainExecutionRoleArn`은 이전 단계에서 생성한 역할에 대한 ARN이어야 합니다.
+ `ExecutionRole`은 Amazon SageMaker AI 도메인에서 사용자에게 부여되는 역할의 ARN입니다.
+ `vpc-id`는 Amazon Virtual Private Cloud의 ID여야 합니다. `subnet-ids`는 공백으로 구분된 서브넷 ID 목록이어야 합니다. `vpc-id` 및 `subnet-ids`에 대한 자세한 내용은 [VPS 및 서브넷](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html)을 참고하세요.
+ `RStudioPackageManagerUrl` 및 `RStudioConnectUrl`은 선택 사항이며 각각 RStudio Package Manager 및 RStudio Connect 서버의 URL로 설정해야 합니다.
+ `auth-mode`은 `SSO` 또는 `IAM` 중 하나여야 합니다.

```
aws sagemaker create-domain --region <REGION> --domain-name <DOMAIN_NAME> \
    --auth-mode <AUTH_MODE> \
    --default-user-settings ExecutionRole=<DEFAULT_USER_EXECUTIONROLE> \
    --domain-settings RStudioServerProDomainSettings={RStudioPackageManagerUrl=<<PACKAGE_MANAGER_URL>,RStudioConnectUrl=<<CONNECT_URL>,DomainExecutionRoleArn=<DOMAINEXECUTION_ROLE_ARN>} \
    --vpc-id <VPC_ID> \
    --subnet-ids <SUBNET_IDS> \
    --app-network-access-type PublicInternetOnly
```

 **VPN 전용 모드** 

다음은 RStudio를 활성화하고 `VPCOnly` 네트워크 유형을 사용하여 Amazon SageMaker AI 도메인을 실행하는 방법을 보여줍니다. `VPCOnly` 네트워크 액세스 유형 사용에 대한 자세한 내용은 [VPC의 Studio 노트북을 외부 리소스에 연결](studio-notebooks-and-internet-access.md)을 참고하세요.
+ `DomainExecutionRoleArn`은 이전 단계에서 생성한 역할에 대한 ARN이어야 합니다.
+ `ExecutionRole`은 Amazon SageMaker AI 도메인에서 사용자에게 부여되는 역할의 ARN입니다.
+ `vpc-id`는 Amazon Virtual Private Cloud의 ID여야 합니다. `subnet-ids`는 공백으로 구분된 서브넷 ID 목록이어야 합니다. 개인 서브넷은 Amazon SageMaker 또는 AWS License Manager 를 직접적으로 호출하기 위해 인터넷에 액세스할 수 있거나 Amazon SageMaker AI와 AWS License Manager모두에 대해 Amazon VPC 엔드포인트를 가지고 있어야 합니다. Amazon VPC 엔드포인트에 대한 자세한 내용은 [Amazon VPC 엔드포인트 인터페이스](https://docs.aws.amazon.com/vpc/latest/privatelink/vpce-interface.html)를 참고하세요. `vpc-id` 및 `subnet-ids`에 대한 자세한 내용은 [VPC 및 서브넷](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html)을 참고하세요.
+ `SecurityGroups`은 Amazon SageMaker AI 및 AWS License Manager 엔드포인트에 대한 아웃바운드 액세스를 허용해야 합니다.
+ `auth-mode`은 `SSO` 또는 `IAM` 중 하나여야 합니다.

**참고**  
Amazon Virtual Private Cloud 엔드포인트를 사용하는 경우, Amazon Virtual Private Cloud 엔드포인트에 연결된 보안 그룹은 `create-domain` CLI 호출의 `domain-setting` 파라미터의 일부로 전달하는 보안 그룹으로부터의 인바운드 트래픽을 허용해야 합니다.

RStudio를 사용하면 Amazon SageMaker AI가 사용자를 위해 보안 그룹을 관리합니다. 즉, Amazon SageMaker AI는 RSessions이 RStudioServerPro 앱에 액세스할 수 있도록 보안 그룹 규칙을 관리합니다. Amazon SageMaker AI는 사용자 프로필당 하나의 보안 그룹 규칙을 생성합니다.

```
aws sagemaker create-domain --region <REGION> --domain-name <DOMAIN_NAME> \
    --auth-mode <AUTH_MODE> \
    --default-user-settings SecurityGroups=<USER_SECURITY_GROUP>,ExecutionRole=<DEFAULT_USER_EXECUTIONROLE> \
    --domain-settings SecurityGroupIds=<DOMAIN_SECURITY_GROUP>,RStudioServerProDomainSettings={DomainExecutionRoleArn=<DOMAINEXECUTION_ROLE_ARN>} \
    --vpc-id <VPC_ID> \
    --subnet-ids "<SUBNET_IDS>" \
    --app-network-access-type VPCOnly --app-security-group-management Service
```

참고: RStudioServerPro 앱은 이름이 `domain-shared`으로 지정된 특수 사용자 프로필에 의해 실행됩니다. 따라서 다른 사용자 프로필에서 `list-app` API 직접 호출의 일부로 이 앱을 반환하지 않습니다.

사용자 수를 늘리려면 사용자 계정의 Amazon VPC 할당량을 늘려야 할 수도 있습니다. 자세한 내용은 [Amazon VPC할당량](https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html#vpc-limits-security-groups)을 참조하세요.

## 도메인 생성 확인
<a name="rstudio-create-cli-domain-verify"></a>

다음 명령을 사용하여 도메인이 `InService`의 `Status`로 생성되었는지 확인합니다. `domain-id`가 도메인 ARN에 추가됩니다. 예를 들어 `arn:aws:sagemaker:<REGION>:<ACCOUNT_ID>:domain/<DOMAIN_ID>`입니다.

```
aws sagemaker describe-domain --domain-id <DOMAIN_ID> --region <REGION>
```