亚马逊AWS官方博客

在中国区部署 SIMPHERA Architecture(自动驾驶仿真)

SIMPHERA 介绍

SIMPHERA,是 dSPACE 基于云的一种可扩展的软件解决方案,可使用户轻松快速地执行自动驾驶功能的计算密集型验证。包含了从创建、导入和集成,完成部署和调试,到集群测试和数据测试整个工作流程。

SIMPHERA 可部署在公有云,私有云,混合云及本地服务器上,可支持大规模集群测试,覆盖数以万计的测试场景。通过轻量化网页版操作界面无需软件的安装,随时随地完成测试部署和监控,方便跨地域团队同时进行仿真,并且提供开放的 API 接口支持 CI/CD 开发流程及自动化测试。

架构简介

SIMPHERA 部署于亚马逊云的参考架构(见下图),主要模块是基于 Amazon Elastic Kubernetes Service(Amazon EKS) 集群。集群包含两个自动伸缩组:第一组保留用于 SIMPHERA 服务和其他辅助第三方服务(如 Keycloak、nginx 等);第二组用于执行被测系统测试的执行器。

SIMPHERA 项目的数据存储在 Amazon RDS for PostgreSQL 实例中,包括了测试环境、测试信号、场景、车辆等信息列表数据。同时,Keycloak 将 SIMPHERA 用户存储在单独的 Amazon RDS for PostgreSQL 实例中。

License 服务部署在 Amazon EC2 实例上,执行者需要 License 才能执行测试和模拟,需要单独的 License 服务器用来获取许可证。

项目文件和测试结果存储在非公共 Amazon S3 存储桶中。 对于 License 服务器的初始设置,需要在管理服务器和许可证服务器之间交换多个文件。 这些文件通过非公共 S3 存储桶进行交换,可以从管理服务器和 License 服务器读取和写入该存储桶。

涉及服务

项目开源地址:https://github.com/dspace-group/simphera-reference-architecture-aws

目前该项目在亚马逊云的安装及配置主要基于 Global Region,以下是涉及的服务列表,以及在中国区进行安装需要调整的配置。

服务 描述 是否必须 配置是否调整?
Amazon Elastic Kubernetes Service 运行 SIMPHERA 的 EKS 集群
Amazon Virtual Private Cloud SIMPHERA VPC 虚拟网络
Elastic Load Balancing SIMPHERA 使用网络负载均衡 NLB
Amazon EC2 Auto Scaling SIMPHERA 自动扩展计算节点
Amazon RDS for PostgreSQL 项目及授权数据存储在 PostgreSQL 实例
Amazon Simple Storage Service 永久二进制工作文件存储于 S3 中
Amazon Elastic File System 临时二进制工作文件存储于 EFS 中
AWS Key Management Service (AWS KMS) 默认情况下启用 EKS 加密
Amazon Elastic Compute Cloud 可选,您可以在 EC2 实例上部署 dSPACE 许可证服务器
Amazon CloudWatch 将指标和容器日志记录到 CloudWatch。同时可以在 EKS 中部署 dSPACE 监控模块

 环境准备

  • 需准备一个亚马逊云科技中国区账号
  • 创建一个有以上列举服务权限的 IAM USER,并创建 Access Key 和 Secret Key
  • 创建一台 EC2,并进行用户的 AK、SK 配置
  • 创建一个非公开的 S3 桶,并配置创建 IAM policy 使 IAM USER 有权限访问该 S3 桶
  • 在 EC2 上下载并安装 Terraform(IT 基础架构自动化编排工具,可以用代码的方式构建、更改和管理基础设施)

项目安装

  • 基于 Secrets Manager 创建 PostgreSql Database Secret
    {  
      "postgresql_password": "xxxxx"(8位以上)  
    } 
    
  • 克隆 Simphera 项目源码到 EC2 并进行初始化配置
    $ git clone https://github.com/dspace-group/simphera-reference-architecture-aws
  • 基于源码开始调整 Terraform 配置(中国区需要基于下列图调整对应配置)
  • PostgreSql 地址替换
    • License Server 的 AMI ID 更换(请根据实际操作系统需求,在中国区查询具体 AMI ID)
    • S3 地址的 arn 前缀需更换为 aws-cn
    • EKS 对应配置更换
  • 项目初始化
    $ cd simphera-reference-architecture-aws  && terraform.tfvars.example terraform.tfvars  
    $ ./terraform init
    
  • 开始部署
    $ ./terraform apply
  • 部署成功,查看 EKS 集群
  • 至此,我们即可访问 EKS 集群,并且配置完对应的 License 后,就可使用 Simphera 进行自动驾驶的仿真测试了

总结

SIMPHERA 是一个业内先进的工业级的车辆和环境模型- AICM、自动化测试,支持仿真并行测试的基于云的分布式 Web 平台,用户在部署完成后都可以在云中或您公司的服务器集群上直接访问。

SIMPHERA 在亚马逊云科技 Global Region 的部署相对比较成熟。根据本文的介绍,可以帮助您快速的在亚马逊云科技中国区进行快速的部署,建立分布式团队并实现高效的流程,实现全球化的平台共享。

本篇作者

胡靖麟

西云数据解决方案架构师,10 年以上计算广告、微服务、大数据等领域的互联网研发、架构设计实践经验。