使用 C# 容器实例将 IronSecureDoc 部署到 AWS

This article was translated from English: Does it need improvement?
Translated
View the article in English

Amazon Elastic Container Service (Amazon ECS) 是一种高度可扩展、快速的容器管理服务,可轻松运行、停止和管理容器。 您可以通过在 AWS Fargate 上启动服务或任务,将容器托管在由 Amazon ECS 管理的无服务器基础设施上。 有关 Fargate 的更多信息,请参阅适用于 Amazon ECS 的 AWS Fargate

步骤 1:登录 AWS 账户

登录 AWS 门户。

如果您还没有 AWS 账户,请注册一个新的 AWS 账户

步骤 2:创建虚拟私有云

您可以使用 Amazon Virtual Private Cloud (Amazon VPC) 将 AWS 资源启动到您定义的虚拟网络中。 我们强烈建议您在 VPC 中启动容器实例。

如果您已有默认 VPC,则可以跳过此部分,直接进入下一个任务:创建安全组。要确定您是否已有默认 VPC,请参阅《Amazon EC2 用户指南》中的"Amazon EC2 控制台支持的平台"部分。否则,您可以按照以下步骤在您的账户中创建非默认 VPC。

有关如何创建 VPC 的信息,请参阅 Amazon VPC 用户指南中的"创建 VPC"部分,并使用下表确定要选择的选项。

选项Value
创建资源仅限 VPC
姓名您可以选择性地为您的 VPC 指定一个名称。
IPv4 CIDR块IPv4 CIDR 手动输入
CIDR块大小必须介于/16和/28之间。
IPv6 CIDR块无 IPv6 CIDR 块
租约默认

有关 Amazon VPC 的更多信息,请参阅什么是 Amazon VPC? 请参阅亚马逊 VPC 用户指南。

步骤 3:创建安全组

安全组充当关联容器实例的防火墙,控制容器实例级别的入站和出站流量。 您可以向安全组添加规则,使您能够使用 SSH 从您的 IP 地址连接到您的容器实例。 您还可以添加规则,允许从任何位置进行入站和出站 HTTP 和 HTTPS 访问。 添加规则以打开任务所需的端口。 容器实例需要外部网络访问才能与 Amazon ECS 服务终端节点通信。

有关如何创建安全组的信息,请参阅 Amazon EC2 用户指南中的"创建安全组"部分,并使用下表确定要选择的选项。

选项价值
地区您创建密钥对时所在的同一区域
姓名一个容易记住的名称,例如 ecs-instances-default-cluster
VPC默认 VPC(标记为"(default)")
笔记
如果您的账户支持 Amazon EC2 Classic,请选择您在上一个任务中创建的 VPC。

步骤 4:创建 ECS 集群

在 AWS 门户主页上,在搜索框中搜索"ECS",然后选择"弹性容器服务"。 或者打开https://console.aws.amazon.com/ecs/v2的控制台。

Search ECS

选择"创建集群"。

Create cluster

输入"集群名称"。 在"基础设施"部分,仅选择"AWS Fargate(无服务器)"。

Create cluster values

其他值保持默认值,然后选择"创建"

步骤 5:创建任务定义

集群创建完成后,选择任务定义。

Create task definition

选择"创建新任务定义",然后选择"创建新任务定义"。

Create new task definition

任务定义配置部分,输入任务定义系列的值。

Task definition configuration section

"基础架构要求"部分,输入以下启动类型CPU内存任务角色任务执行角色的值。

  • 启动类型:仅限AWS Fargate
  • CPU: 1 vCPU
  • 内存: 2 GB
  • 任务角色: ecsTaskExecutionRole
  • 任务执行角色: ecsTaskExecutionRole

Infrastructure requirements

"容器 - 1"部分,输入名称镜像 URI容器端口端口名称环境变量的以下值。

  • 名称: mycontainer
  • 图片 URI:使用ironsoftwareofficial/ironsecuredoc获取最新版本,或指定标签ironsoftwareofficial/ironsecuredoc:2024.7.1
  • 容器端口: 8080 端口名称: 8080
  • 添加环境变量:
    • 环境:<代码>生产</代码
    • HTTP_PORTS:<代码>8080</代码
    • IronSecureDoc_LicenseKey:<代码>您的许可证密钥</代码

对于 IronSecureDoc_LicenseKey,为了安全起见,不建议直接添加到 环境变量中。 建议从加密的 Amazon S3 存储桶中检索环境文件,请参阅将敏感数据传递给 Amazon ECS 容器

Container section

其他值保持默认值,然后选择"创建"

步骤 6:创建服务

返回集群页面 > 选择您的集群 (IronSecureDoc)。

Select your cluster

选择"服务"选项卡 > 然后选择"创建"。

Create service

"环境"部分,输入以下"计算选项""启动类型"的值。

  • 计算选项:选择Launch type
  • 发射类型:选择FARGATE

Service environment

部署配置部分,输入以下值作为应用程序类型系列修订版服务名称所需任务

  • 应用类型:选择Service
  • 任务定义:
    • 家庭:选择创建的任务定义ironsecuredoc
    • 修订:选择任务定义修订版1 (LATEST)
  • 服务名称: myservice
  • 期望完成的任务: 1

Service deployment configuration

请注意,对于网络连接,您可能需要创建VPC安全组(如果它们不存在)。

其他值保持默认值,然后选择"创建"

部署开始时,会显示一条通知,表明部署正在进行中。 服务部署完成后,会显示另一条通知。

查看您的服务 > 然后打开任务。

Open created task

在任务配置中,您可以使用公共 IP 运行 curl 命令来检查 API 是否正常工作,该命令应该返回pong

curl http://18.118.166.206:8080/v1/document-services/ping
curl http://18.118.166.206:8080/v1/document-services/ping
SHELL

Public IP

祝贺您! 只需配置几个设置,您就可以在 Amazon Elastic Container Service 中部署一个可公开访问的应用程序。

常见问题解答

我如何设置 AWS 以实现文档安全?

要设置 AWS 以实现文档安全,您可以通过 Amazon ECS 部署容器实例。这涉及创建虚拟私有云 (VPC)、设置安全组以及使用 AWS Fargate 实现无服务器基础架构。IronSecureDoc 可以集成以确保安全的文档管理。

在 AWS 中创建虚拟私有云 (VPC) 的目的是什么?

在 AWS 中创建 VPC 允许您在逻辑上隔离的虚拟网络中启动 AWS 资源。此设置提供对网络环境的控制,并且对于通过类似 IronSecureDoc 的服务管理文档安全至关重要。

为什么设置 ECS 部署的安全组很重要?

设置安全组对于控制到 ECS 容器实例的入站和出站流量至关重要。它充当虚拟防火墙,确保只有授权流量才能到达部署在 AWS 上的 IronSecureDoc 服务。

如何使用 AWS Fargate 部署容器实例?

要使用 AWS Fargate 部署容器实例,您必须首先创建一个 ECS 集群。然后,定义一个任务定义,指定 CPU、内存和容器设置等要求。最后,在 ECS 集群内创建一个服务以管理 IronSecureDoc 的部署。

任务定义在 Amazon ECS 中起什么作用?

在 Amazon ECS 中,任务定义充当应用程序的蓝图。它概述了运行容器的要求,例如启动类型、CPU、内存和容器定义。这对于部署像 IronSecureDoc 这样的应用程序至关重要。

如何在 AWS 中安全管理环境变量?

您可以通过从加密的 Amazon S3 存储桶检索敏感数据(例如 IronSecureDoc 许可证密钥)来在 AWS 中安全管理环境变量。此方法有助于保护敏感信息免受未经授权的访问。

如何验证 ECS 服务的成功部署?

您可以使用公共 IP 运行 curl 命令来验证 ECS 服务的部署。例如,执行 curl http://:8080/v1/document-services/ping 应返回“pong”,表明 IronSecureDoc 服务运行正常。

我需要为每次部署创建新的 VPC 和安全组吗?

如果不存在默认的 VPC 和安全组,则必须创建它们以确保 ECS 部署的适当网络和安全配置。此设置对于像 IronSecureDoc 这样的应用程序的安全运行至关重要。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。

准备开始了吗?
Version: 2024.10 刚刚发布