

지원 종료 공지: 2026 AWS 년 5월 20일에에 대한 지원이 종료됩니다 AWS SimSpace Weaver. 2026년 5월 20일 이후에는 SimSpace Weaver 콘솔 또는 SimSpace Weaver 리소스에 더 이상 액세스할 수 없습니다. 자세한 내용은 [AWS SimSpace Weaver 지원 종료를 참조하세요](https://docs.aws.amazon.com/simspaceweaver/latest/userguide/simspaceweaver-end-of-support.html).

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

# 사용자 지정 컨테이너
<a name="working-with_custom-containers"></a>

AWS SimSpace Weaver 앱은 컨테이너화된 Amazon Linux 2 (AL2) 환경에서 실행됩니다. 에서 AWS 클라우드는 Amazon Elastic Container Registry(Amazon ECR)에서 제공하는 `amazonlinux:2` 이미지로 빌드된 Docker 컨테이너에서 시뮬레이션을 SimSpace Weaver 실행합니다. 사용자 지정 도커 이미지를 생성하여 Amazon ECR에 저장한 다음, 당사에서 제공하는 기본 도커 이미지 대신 이 이미지를 시뮬레이션에 사용할 수 있습니다.

사용자 지정 컨테이너를 사용하여 소프트웨어 종속성을 관리하고 표준 도커 이미지에 없는 추가 소프트웨어 구성 요소를 포함할 수 있습니다. 예를 들어 앱에서 사용하는 공개적으로 사용 가능한 소프트웨어 라이브러리를 컨테이너에 추가하고 앱 zip 파일에는 사용자 지정 코드만 넣을 수 있습니다.

**중요**  
Amazon ECR 퍼블릭 갤러리 또는 프라이빗 Amazon ECR 레지스트리의 Amazon ECR 리포지토리에 호스팅된 AL2 도커 이미지만 지원합니다. Amazon ECR 외부에서 호스팅되는 도커 이미지는 지원되지 않습니다. Amazon ECR에 대한 자세한 내용은 *[Amazon Elastic Container Registry 설명서](https://docs.aws.amazon.com/ecr)*를 참조하세요.

**Topics**
+ [사용자 지정 컨테이너 생성](working-with_custom-containers_create.md)
+ [사용자 지정 컨테이너를 사용하도록 프로젝트 수정](working-with_custom-containers_modify-project.md)
+ [사용자 지정 컨테이너에 대한 FAQ](working-with_custom-containers_faq.md)
+ [사용자 지정 컨테이너 문제 해결](working-with_custom-containers_troubleshooting.md)

# 사용자 지정 컨테이너 생성
<a name="working-with_custom-containers_create"></a>

이 지침에서는 Docker 및 Amazon Elastic Container Registry(Amazon ECR)를 사용하는 방법을 알고 있다고 가정합니다. Amazon ECR에 대한 자세한 내용은 *[Amazon ECR 사용 설명서](https://docs.aws.amazon.com/AmazonECR/latest/userguide)*를 참조하세요.

**사전 조건**
+ 이러한 작업을 수행하는 데 사용하는 IAM 자격 증명(사용 또는 역할)에는 Amazon ECR을 사용할 수 있는 올바른 권한이 있습니다.
+ 도커는 로컬 시스템에 설치됨

**사용자 지정 컨테이너 생성**

1. `Dockerfile`을 생성합니다.

    AWS SimSpace Weaver 앱을 실행`Dockerfile`하기 위한는 Amazon ECR의 Amazon Linux 2 이미지로 시작합니다.

   ```
   # parent image required to run AWS SimSpace Weaver apps
   FROM public.ecr.aws/amazonlinux/amazonlinux:2
   ```

1. `Dockerfile`을 구축합니다.

1. 컨테이너 이미지를 Amazon ECR로 업로드합니다.
   + [AWS Management Console을 사용합니다.](https://docs.aws.amazon.com/AmazonECR/latest/userguide/getting-started-console.html)
   + [AWS Command Line Interface를 사용합니다.](https://docs.aws.amazon.com/AmazonECR/latest/userguide/getting-started-cli.html)
**참고**  
Amazon ECR에 컨테이너 이미지를 업로드하려고 할 때 `AccessDeniedException` 오류가 발생하는 경우, IAM 자격 증명(사용자 또는 역할)에 Amazon ECR을 사용하는 데 필요한 권한이 없는 것일 수 있습니다. `AmazonEC2ContainerRegistryPowerUser` AWS 관리형 정책을 IAM 자격 증명에 연결하고 다시 시도할 수 있습니다. 정책 연결 방법에 대한 자세한 내용은 *AWS Identity and Access Management 사용 설명서*의 [IAM 자격 증명 권한 추가 및 제거](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)를 참조하세요.

# 사용자 지정 컨테이너를 사용하도록 프로젝트 수정
<a name="working-with_custom-containers_modify-project"></a>

이 지침에서는를 사용하는 방법을 이미 알고 있으며 앱 스토리지 AWS SimSpace Weaver 및 개발 워크플로를 AWS 클라우드 보다 효율적으로 만들고 싶다고 가정합니다.

**사전 조건**
+ Amazon Elastic Container Registry(Amazon ECR)에 사용자 지정 컨테이너가 있습니다. 사용자 지정 컨테이너 생성에 대한 자세한 내용은 [사용자 지정 컨테이너 생성](working-with_custom-containers_create.md) 섹션을 참조하세요.

**사용자 지정 컨테이너를 사용하도록 프로젝트 수정**

1. 프로젝트의 시뮬레이션 앱 역할에 Amazon ECR을 사용할 수 있는 권한을 추가합니다.

   1. 다음 권한이 있는 IAM 정책이 아직 없다면 정책을 생성합니다. 정책 이름 `simspaceweaver-ecr`을 사용하는 것이 좋습니다. IAM 정책 생성 방법에 대한 자세한 내용은 *AWS Identity and Access Management 사용 설명서*의 [IAM 정책 생성](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)을 참조하세요.

      ```
      {
          "Version": "2012-10-17",		 	 	 
          "Statement": [
              {
                  "Sid": "Statement",
                  "Effect": "Allow",
                  "Action": [
                      "ecr:BatchGetImage",
                      "ecr:GetDownloadUrlForLayer",
                      "ecr:GetAuthorizationToken"
                  ],
                  "Resource": "*"
              }
          ]
      }
      ```

   1. 프로젝트의 시뮬레이션 앱 역할 이름을 찾으려면 다음을 수행합니다.

      1. 텍스트 편집기에서 CloudFormation 템플릿을 엽니다.

         ```
         sdk-folder\PackagingTools\sample-stack-template.yaml
         ```

      1. `WeaverAppRole`에서 `RoleName` 속성을 찾습니다. 해당 값은 프로젝트의 시뮬레이션 앱 역할 이름입니다.  
**Example**  

         ```
         AWSTemplateFormatVersion: "2010-09-09"
         Resources:
           WeaverAppRole:
             Type: 'AWS::IAM::Role'
             Properties:
               RoleName: 'weaver-MySimulation-app-role'
               AssumeRolePolicyDocument:
                 Version: "2012-10-17"		 	 	 
                 Statement:
                 - Effect: Allow
                   Principal:
                     Service:
                       - 'simspaceweaver.amazonaws.com'
         ```

   1. `simspaceweaver-ecr` 정책을 프로젝트의 시뮬레이션 앱 역할에 연결합니다. 정책 연결 방법에 대한 자세한 내용은 *AWS Identity and Access Management 사용 설명서*의 [IAM 자격 증명 권한 추가 및 제거](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)를 참조하세요.

   1. 다음 명령으로 이동하여 `sdk-folder` 실행하여 샘플 SimSpace Weaver 스택을 업데이트합니다.

      ```
      python setup.py --cloudformation
      ```

1. 프로젝트의 시뮬레이션 스키마에 컨테이너 이미지를 지정합니다.
   + `default_image`에서 선택적 `simulation_properties` 속성을 추가하여 모든 도메인의 기본 사용자 지정 컨테이너 이미지를 지정할 수 있습니다.
   + 사용자 지정 컨테이너 이미지로 사용하려는 도메인에 대해 `image` 속성을 `app_config`에 추가합니다. Amazon ECR 리포지토리 URI를 값으로 지정합니다. 도메인마다 다른 이미지를 지정할 수 있습니다.
     + 도메인에 `image`이 지정되지 않고 `default_image`가 지정된 경우 해당 도메인의 앱이 기본 이미지를 사용합니다.
     + `image`가 도메인에 지정되지 않고가 지정되지 않은 경우 해당 도메인의 앱`default_image`은 표준 SimSpace Weaver 컨테이너에서 실행됩니다.  
**Example 사용자 지정 컨테이너 설정이 포함된 스키마 스니펫**  

   ```
   sdk_version: "1.17.0"
   simulation_properties:
     log_destination_service: "logs"
     log_destination_resource_name: "MySimulationLogs"
     default_entity_index_key_type: "Vector3<f32>"
     default_image: "111122223333.dkr.ecr.us-west-2.amazonaws.com/my-ecr-repository:latest" # image to use if no image specified for a domain
   domains:
     MyCustomDomain:
       launch_apps_via_start_app_call: {}
       app_config:
         package: "s3://weaver-myproject-111122223333-us-west-2/MyViewApp.zip" 
         launch_command: ["MyViewApp"]  
         required_resource_units:
           compute: 1
         endpoint_config:
           ingress_ports:
             - 7000
         image: "111122223333.dkr.ecr.us-west-2.amazonaws.com/my-ecr-repository:latest" # custom container image to use for this domain 
     MySpatialDomain:
       launch_apps_by_partitioning_strategy:
         partitioning_strategy: "MyGridPartitioning"
         grid_partition:
           x: 2
           y: 2
       app_config:
         package: "s3://weaver-myproject-111122223333-us-west-2/MySpatialApp.zip" 
         launch_command: ["MySpatialApp"] 
         required_resource_units:
           compute: 1
         image: "111122223333.dkr.ecr.us-west-2.amazonaws.com/my-ecr-repository:latest" # custom container image to use for this domain
   ```

1. 평소와 같이 프로젝트를 빌드하고 업로드합니다.

# 사용자 지정 컨테이너에 대한 FAQ
<a name="working-with_custom-containers_faq"></a>

## Q1. 컨테이너 내용을 변경하려면 어떻게 해야 하나요?
<a name="working-with_custom-containers_faq_q1"></a>
+ **실행 중인 시뮬레이션의 경우** - 실행 중인 시뮬레이션의 컨테이너는 변경할 수 없습니다. 새 컨테이너를 빌드하고 해당 컨테이너를 사용하는 새 시뮬레이션을 시작해야 합니다.
+ **새 시뮬레이션의 경우** - 새 컨테이너를 구축하고 Amazon Elastic Container Registry(Amazon ECR)에 업로드한 다음 해당 컨테이너를 사용하는 새 시뮬레이션을 시작합니다.

## Q2. 시뮬레이션에 사용할 컨테이너 이미지를 변경하려면 어떻게 해야 하나요?
<a name="working-with_custom-containers_faq_q2"></a>
+ **실행 중인 시뮬레이션의 경우** - 실행 중인 시뮬레이션의 컨테이너는 변경할 수 없습니다. 새 컨테이너를 사용하는 새 시뮬레이션을 시작해야 합니다.
+ **새 시뮬레이션의 경우** - 프로젝트의 시뮬레이션 스키마에 새 컨테이너 이미지를 지정합니다. 자세한 내용은 [사용자 지정 컨테이너를 사용하도록 프로젝트 수정](working-with_custom-containers_modify-project.md) 단원을 참조하십시오.

# 사용자 지정 컨테이너 문제 해결
<a name="working-with_custom-containers_troubleshooting"></a>

**Topics**
+ [Amazon Elastic Container Registry(Amazon ECR)에 이미지를 업로드하는 경우의 AccessDeniedException](working-with_custom-containers_troubleshooting_access-denied.md)
+ [사용자 지정 컨테이너를 사용하는 시뮬레이션이 시작되지 않음](working-with_custom-containers_troubleshooting_no-start.md)

# Amazon Elastic Container Registry(Amazon ECR)에 이미지를 업로드하는 경우의 AccessDeniedException
<a name="working-with_custom-containers_troubleshooting_access-denied"></a>

Amazon ECR에 컨테이너 이미지를 업로드하려고 할 때 `AccessDeniedException` 오류가 발생하는 경우, IAM 자격 증명(사용자 또는 역할)에 Amazon ECR을 사용하는 데 필요한 권한이 없는 것일 수 있습니다. `AmazonEC2ContainerRegistryPowerUser` AWS 관리형 정책을 IAM 자격 증명에 연결하고 다시 시도할 수 있습니다. 정책 연결 방법에 대한 자세한 내용은 *AWS Identity and Access Management 사용 설명서*의 [IAM 자격 증명 권한 추가 및 제거](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)를 참조하세요.

# 사용자 지정 컨테이너를 사용하는 시뮬레이션이 시작되지 않음
<a name="working-with_custom-containers_troubleshooting_no-start"></a>

**문제 해결 팁**
+ 시뮬레이션에 로깅이 활성화된 경우 오류 로그를 확인하세요.
+ 사용자 지정 컨테이너 없이 시뮬레이션을 테스트합니다.
+ 시뮬레이션을 로컬에서 테스트합니다. 자세한 내용은 [의 로컬 개발 SimSpace Weaver](working-with_local-development.md) 단원을 참조하십시오.