시뮬레이션 구성 - AWS RoboMaker

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

시뮬레이션 구성

다음 섹션에서는 시뮬레이션 작업을 구성하는 방법을 설명합니다. 자세한 내용은 애플리케이션 구성를 설명하는 개념을 참조하세요.

Amazon VPC 액세스를 위한 시뮬레이션 작업 구성

Amazon Virtual Private Cloud(VPC)에서 리소스를 생성한 경우 공용 인터넷을 통해 리소스를 읽을 수 없습니다. 리소스의 예로는 Amazon Redshift 데이터 웨어하우스 또는 Amazon ElastiCache 클러스터가 있습니다. Amazon Elastic Compute Cloud 인스턴스에 대한 서비스도 해당될 수 있습니다. 기본적으로 Amazon VPC의 리소스는 AWS RoboMaker 시뮬레이션 작업에서 액세스할 수 없습니다.

참고

AWS RoboMaker는 외부 연결이 없는 격리된 네트워크에서 시뮬레이션 작업을 실행합니다. 하지만 작업에서 Amazon VPC의 리소스에 액세스하도록 허용하려면 Amazon VPC 서브넷 ID 및 보안 그룹 ID가 포함된 VPC 관련 데이터를 제공해야 합니다. AWS RoboMaker에서는 이 데이터를 사용하여 ENI(탄력적 네트워크 인터페이스)를 설정합니다. ENI를 사용하면 작업을 비공개 Amazon VPC의 다른 리소스에 안전하게 연결할 수 있습니다.

AWS RoboMaker는 전용 테넌시 VPC 내 리소스에 연결하지 않습니다. 자세한 내용은 전용 VPC를 참조하십시오.

작업을 생성할 때 VpcConfig 파라미터를 사용하여 AWS RoboMaker 시뮬레이션 작업에 Amazon VPC 데이터를 추가합니다(CreateSimulationJob 참조). 다음은 퍼블릭 IP가 할당된 AWS CLI 예시입니다.

aws robomaker create-simulation-job \ --output-location s3Bucket=my-bucket,s3Prefix=my-output-folder \ --max-job-duration-in-seconds 3600 \ --iam-role my-role-arn \ --failure-behavior Continue \ --robot-applications application='my-robot-application-arn,launchConfig={command=["roslaunch", "hello_world_robot", "rotate.launch"]}' \ --simulation-applications application='my-simulation-application-arn,launchConfig={command=["roslaunch", "hello_world_simulation", "empty_world.launch"]}' \ --vpc-config assignPublicIp=true,subnets=comma-separated-vpc-subnet-ids,securityGroups=comma-separated-security-group-ids
참고

시뮬레이션 작업이 VPC 내에서 실행되도록 구성되면 ENI 페널티가 발생합니다. 네트워크 리소스에 연결하려고 하면 주소 확인이 지연될 수 있습니다.

시뮬레이션 작업에 대한 인터넷 액세스

AWS RoboMaker는 사용자가 제공한 VPC 데이터를 사용하여 ENI를 설정합니다. ENI를 사용하면 작업 중에 VPC 리소스에 액세스할 수 있습니다. 각 ENI에는 지정한 서브넷 내의 범위에서 프라이빗 IP 주소가 할당됩니다. 퍼블릭 IP 주소는 기본적으로 ENI에 할당되지 않습니다.

작업 중에 인터넷에 액세스해야 하는 경우(VPC 엔드포인트가 없는 AWS 서비스를 찾기 위해) 비공개 서브넷을 사용 하는 경우 VPC 내부에 NAT를 설정할 수 있습니다. Amazon VPC NAT 게이트웨이를 사용하여 AWS RoboMaker에 퍼블릭 IP를 할당하도록 요청할 수 있습니다. 자세한 정보는 Amazon VPC 사용 설명서NAT 게이트웨이 섹션을 참조하세요.

참고

인터넷 접속은 퍼블릭 IP 주소를 필요로 하므로 VPC에 직접 연결된 인터넷 게이트웨이는 사용할 수 없습니다. 기본적으로 ENI에는 프라이빗 IP 주소가 있습니다.

퍼블릭 서브넷을 사용하는 경우 인터넷 액세스를 구성하려면 ENI에 퍼블릭 IP를 할당하도록 assignPublicIp=true를 설정합니다.

시뮬레이션 작업에 공개 AWS API에 대한 액세스만 필요하고 개인 정보 보호를 강화하려면 AWS RoboMaker 및 인터페이스 VPC 엔드포인트(AWS PrivateLink) 항목을 참조하세요. 이 정보를 사용하여 인터페이스 VPC 엔드포인트를 생성하고 CreateSimulationJob API를 사용하여 VPC를 추가할 수 있습니다.

SimulationJob 컴퓨팅 구성

SimulationJobs에서 GPU를 사용하기 위해 GPU 컴퓨팅을 사용하도록 SimulationJobComputeType을 구성할 수 있습니다. AWS RoboMaker에서 그래픽 처리 장치(GPU) 기반 시뮬레이션 작업을 사용하면 다음과 같은 이점을 얻을 수 있습니다.

  • GPU 기반 시뮬레이션 작업을 통해 GPU 지원 센서 플러그인과 OpenGL, CUDA, OpenCL 및 Vulkan을 사용한 높은 충실도의 렌더링 및 성능이 필요한 애플리케이션을 실행할 수 있습니다.

  • GPU 기반 시뮬레이션 작업은 AWS RoboMaker GUI 도구의 고품질 HD 해상도를 지원하므로 물체를 더 자세히 볼 수 있습니다. GPU가 더 높은 초당 프레임 속도를 보장하므로 GUI 도구 경험이 이상적입니다.

  • GPU 기반 시뮬레이션은 시뮬레이션 작업 완료 시간을 단축합니다. GPU를 사용하면 실시간 요소 및 초당 프레임 수에 대한 성능 저하 없이 복잡한 시뮬레이션 장면을 실행할 수 있습니다.

  • GPU 기반 시뮬레이션 작업은 강화 학습 모델의 훈련을 개선합니다.

컴퓨팅

CreateSimulationJob 요청의 Compute 파라미터를 사용하여 SimulationJob에 필요한 컴퓨팅 종류를 구성할 수 있습니다.

ComputeType

ComputeType은 작업에 필요한 컴퓨팅 유형을 지정합니다. 유효한 값은 CPUGPU_AND_CPU입니다. 기본값은 CPU입니다. GPU_AND_CPU이 지정되어 있으면, 생성된 작업에서 CPU와 함께 GPU를 사용할 수 있습니다.

GpuUnitLimit

GpuUnitLimit 파라미터를 사용하여 작업에 할당해야 하는 GPU 유닛 수를 지정할 수 있습니다. GPU_AND_CPU ComputeType의 경우 1이어야 합니다. CPU ComputeType의 경우 0이어야 합니다.

GPU를 활용하기 위한 컨테이너 구축에 대한 자세한 내용은 GPU 애플리케이션을 실행하기 위한 이미지 생성 항목을 참조하세요.

사용자 지정 시뮬레이션 도구 구성

AWS RoboMaker를 사용하여 시뮬레이션 작업의 애플리케이션을 위한 사용자 지정 도구를 구성할 수 있습니다. 사용자 지정 도구를 사용하여 시뮬레이션과 상호 작용하거나, 진단 유틸리티로 사용하거나 다른 용도로 사용할 수 있습니다. AWS RoboMaker에서 제공하는 rqt 또는 rviz 같은 기본 도구를 구성할 수도 있습니다. 시뮬레이션 작업이 자동화된 파이프라인에 포함된 경우, 기본 도구를 비활성화하고 리소스를 더 적게 사용할 수 있습니다.

최대 10개의 사용자 지정 도구를 구성할 수 있습니다. 사용자 지정 도구는 기본 ROS 프로세스가 시작된 후에 시작됩니다.

사용자 지정 도구 구성에는 다음 요소가 포함됩니다.

  • 도구 이름 — 도구의 이름입니다.

  • 명령bash 셸에서 도구를 호출하는 명령입니다. 도구 실행 파일 이름을 포함해야 합니다. 인수에 사용자 지정 변수를 비롯한 환경 변수를 사용할 수 있습니다. 예를 들어, 현재 시뮬레이션 작업 ID를 사용하기 위해 AWS_ROBOMAKER_SIMULATION_JOB_ID를 참조할 수 있습니다.

  • 종료 동작 — 사용자 지정 도구가 종료될 경우 수행할 작업을 결정합니다. fail을 지정하면 시뮬레이션 작업이 실패합니다. restart을 지정하면 도구가 다시 시작됩니다. 기본값은 restart입니다.

  • UI 스트리밍 - 스트리밍 세션이 도구에 구성되어 있는지 여부를 지정합니다. True인 경우 AWS RoboMaker가 연결을 구성하여 시뮬레이션에서 실행 중인 도구와 상호 작용할 수 있습니다. 그래픽 사용자 인터페이스가 있어야 합니다. 기본값은 false입니다.

  • 로그 동작 - 도구 stdoutstderr를 CloudWatch Logs로 스트리밍할지 여부를 지정합니다. 기본값은 false입니다.

루트 액세스 및 시스템 기능

AWS RoboMaker에서는 시뮬레이션 작업에서 실행되는 애플리케이션에 대해 제한된 루트(sudo) 액세스를 제공합니다. 다음 목록에는 차단된 중요한 시스템 호출(전체가 아닌 일부 항목)이 포함되어 있습니다.

  • acct

  • add_key

  • bpf

  • clock_adjtime

  • clock_settime

  • 복제

  • create_module

  • delete_module

  • finit_module

  • get_kernel_syms

  • get_mempolicy

  • init_module

  • IOPERM

  • iopl

  • kcmp

  • kexec_file_load

  • kexec_load

  • keyctl

  • lookup_dcookie

  • mbind

  • 마운트에 의해

  • move_pages

  • name_to_handle_at

  • nfsservctl

  • open_by_handle_at

  • perf_event_open

  • personality

  • pivot_root

  • process_vm_readv

  • process_vm_writev

  • ptrace

  • query_module

  • quotactl

  • reboot

  • request_key

  • set_mempolicy

  • setns

  • settimeofday

  • stime

  • swapon

  • swapoff

  • sysfs

  • _sysctl

  • umount

  • umount2

  • unshare

  • uselib

  • userfaultfd

  • ustat

  • vm86

  • vm86old