規劃 - AWS RoboMaker

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

規劃

以下幾節描述如何規劃任務。如需詳細資訊,請參閱描述的概念應用程式組態

設定適用於 Amazon VPC 存取的模擬任務

在 Amazon Virtual Private Cloud (Amazon VPC),無法經由公有網際網路進行讀取。示例資源可以是 Amazon Redshift 數據倉庫或亞馬遜 ElastiCache 集群。它們也可以是 Amazon Elastic Compute Cloud 執行個體上的服務 依預設,AWS RoboMaker模擬任務無法存取 Amazon VPC 中的資源。

注意

AWS RoboMaker在沒有外部連線的隔離網路上執行模擬工作。若要允許您的任務存取 Amazon VPC 中的資源,您必須提供虛擬私人雲端特定資料,其中包括 Amazon VPC 子網路 ID 和安全群組 ID。 AWS RoboMaker使用此資料來設定彈性網路介面 (ENI)。ENI 可協助您的工作安全地連線到私有 Amazon VPC 中的其他資源。

AWS RoboMaker 不會連線至專用租用 VPC 內的資源。如需詳細資訊,請參閱專用 VPC

您可以在建立任務時使用VpcConfig參數,將 Amazon VPC 資料新增至AWS RoboMaker模擬任務 (請參閱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 不會受指派任何公有 IP 地址。

如果您的工作需要網際網路存取 (可能是為了尋找沒有 VPC 端點的AWS服務),而且您正在使用有子網路,則可以在 VPC 內設定 NAT。您可以使用 Amazon VPC NAT 閘道並請求AWS RoboMaker分配公有 IP。如需詳細資訊,請參閱 Amazon VPC 使用者指南中的 NAT 閘道

注意

您無法使用直接連接到 VPC 的網際網路閘道,因為網際網路連線需要 ENI 具有公用 IP 位址。根據預設,您的 ENI 具有私有 IP 地址。

若要在使用用子網路時設定網際網路存取,assignPublicIp=true請設定為將公用 IP 指派給 ENI。

如果您的工作只需要存取公AWS用 API,而且您想要更多隱私權,請參閱AWS RoboMaker 和介面 VPC 端端點 (AWS PrivateLink)。有了這些資訊,您可以建立介面 VPC 端點,並使用CreateSimulationJob API 新增 VPC。

設定SimulationJob運算

若要在您的中使用 GPUSimulationJobs,您可以將ComputeType的設定SimulationJob為使用 GPU 運算。在中使用以圖形處理單元 (GPU) 為基礎的模擬工作時,您會發現下列優點AWS RoboMaker。

  • 基於 GPU 的模擬任務允許使用 OpenGL,CUDA,OpenCL 和 Vulkan 執行需要啟用 GPU 的傳感器插件和高保真渲染和性能的應用程序。

  • GPU 模擬任務可確保AWS RoboMaker GUI 工具具有高品質的 HD 解析度,因此您可以更詳細地查看物件。GUI 工具體驗是理想的,因為 GPU 可確保更高的每秒幀率。

  • 以 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,您可以為模擬工作中的應用程式配置自訂工具。使用自訂工具與模擬互動、做為診斷公用程式或用於其他用途。您還可以配置默認工具,例如rqtrviz提供AWS RoboMaker。如果您的模擬任務是自動化管道的一部分,您可以停用預設工具並減少使用資源。

您最多可以設定 10 個自訂工具。自訂工具會在主要 ROS 程序啟動後啟動。

自訂刀具組態包含下列出來的元素:

  • 工具名稱 — 刀具的名稱。

  • 命令 — 在殼層中叫用工具的指bash令。您必須包含工具可執行檔名稱。您可以在引數中使用包含自訂變數的環境變數。例如,若要使用目前的模擬工作 ID,您可以參考AWS_ROBOMAKER_SIMULATION_JOB_ID

  • 束行為 — 決定自訂工具結束時要採取的動作。如果您指定fail,則模擬工作會失敗。如果您指定restart,則會重新啟動工具。預設值為 restart

  • UI 串流 — 指定是否為工具配置串流工作階段。如果為 True,則AWS RoboMaker規劃連接,以便在工具在模擬中執行時可與工具互動。它必須具有圖形用戶界面。預設值為 false

  • 防護記錄行為 — 指定工具stdoutstderr是否串流至 CloudWatch 防護記錄。預設值為 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

  • mount

  • 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

  • 重新開機

  • request_key

  • set_mempolicy

  • setns

  • settimeofday

  • stime

  • swapon

  • swapoff

  • sysfs

  • _sysctl

  • umount

  • umount2

  • unshare

  • uselib

  • userfaultfd

  • ustat

  • vm86

  • vm86old