Skip To Content

使用 Cloud Builder 在 Amazon Web Services 上构建 ArcGIS Server 站点

注:

ArcGIS 10.6.1 为 ArcGIS Server Cloud Builder on Amazon Web Services 的最终版本。请改用 ArcGIS Enterprise Cloud Builder Command Line Interface for Amazon Web Services 部署 ArcGIS Server 站点。

ArcGIS Server Cloud Builder on Amazon Web Services 是可下载的桌面应用程序,用于帮助您在 Amazon Web Services (AWS) 上创建独立 ArcGIS Server 站点。下面列出的步骤展示了如何使用 Cloud Builder 创建站点。

配置 ArcGIS Server Cloud Builder on Amazon Web Services

您需要按照以下步骤使用 ArcGIS Server Cloud Builder on Amazon Web Services

  • Amazon 帐户
  • Esri Amazon 机器映像 (AMI)

    注:

    首次使用 AMI 前,您必须接受 AWS Marketplace 中的条款

  • Amazon 身份和访问管理 (IAM) 服务策略和用户
  • IAM 用户的访问密钥保密访问密钥
  • ArcGIS Server Cloud Builder on Amazon Web Services 应用程序
  • ArcGIS Server 许可文件
  1. 下载、安装和启动 ArcGIS Server Cloud Builder on Amazon Web Services

    登录到 My Esri 时可访问 Cloud Builder 下载链接。其中还列出了其他 Esri 软件下载链接。需要先购买 ArcGIS Server(基础版)或 ArcGIS Enterprise,然后才能看到该下载链接。

  2. 登录 AWS 管理控制台,并创建包括以下资源权限的 IAM 组策略:

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "iam:GetUser",
                    "iam:ListServerCertificates",
                    "iam:UploadServerCertificate"
                ],
                "Resource": "*"
            },
            {
                "Effect": "Allow",
                "Action": "s3:*",
                "Resource": [
                    "arn:aws:s3:::arcgis101-sites-*",
                    "arn:aws:s3:::arcgis101sp1-sites-*",
                    "arn:aws:s3:::arcgis101sp2-sites-*",
                    "arn:aws:s3:::arcgis102-sites-*",
                    "arn:aws:s3:::arcgis1021-sites-*",
                    "arn:aws:s3:::arcgis1031-sites-*"
                ]
            },
            {
                "Effect": "Allow",
                "Action": [
                    "ec2:AttachInternetGateway",
                    "ec2:AuthorizeSecurityGroupIngress",
                    "ec2:CreateImage",
                    "ec2:CreateInternetGateway",
                    "ec2:CreateKeyPair",
                    "ec2:CreateRoute",
                    "ec2:CreateSecurityGroup",
                    "ec2:CreateSubnet",
                    "ec2:CreateTags",
                    "ec2:CreateVpc",
                    "ec2:DeleteSecurityGroup",
                    "ec2:DeleteSnapshot",
                    "ec2:DeregisterImage",
                    "ec2:DescribeAvailabilityZones",
                    "ec2:DescribeImages",
                    "ec2:DescribeInstances",
                    "ec2:DescribeKeyPairs",
                    "ec2:DescribeRegions",
                    "ec2:DescribeRouteTables",
                    "ec2:DescribeSecurityGroups",
                    "ec2:DescribeSubnets",
                    "ec2:DescribeVolumes",
                    "ec2:DescribeVpcs",
                    "ec2:ModifyImageAttribute",
                    "ec2:ModifyInstanceAttribute",
                    "ec2:RunInstances",
                    "ec2:StartInstances",
                    "ec2:StopInstances",
                    "ec2:TerminateInstances"
                ],
                "Resource": "*"
            },
            {
                "Effect": "Allow",
                "Action": [
                    "elasticloadbalancing:ConfigureHealthCheck",
                    "elasticloadbalancing:CreateLoadBalancer",
                    "elasticloadbalancing:CreateLoadBalancerListeners",
                    "elasticloadbalancing:DeleteLoadBalancer",
                    "elasticloadbalancing:DeleteLoadBalancerListeners",
                    "elasticloadbalancing:DeregisterInstancesFromLoadBalancer",
                    "elasticloadbalancing:DescribeInstanceHealth",
                    "elasticloadbalancing:DescribeLoadBalancers",
                    "elasticloadbalancing:RegisterInstancesWithLoadBalancer"
                ],
                "Resource": "*"
            },
            {
                "Effect": "Allow",
                "Action": [
                    "cloudwatch:PutMetricAlarm",
                    "cloudwatch:DescribeAlarms",
                    "cloudwatch:DeleteAlarms"
                ],
                "Resource": "*"
            },
            {
                "Effect": "Allow",
                "Action": [
                    "autoscaling:CreateAutoScalingGroup",
                    "autoscaling:CreateLaunchConfiguration",
                    "autoscaling:DeleteAutoScalingGroup",
                    "autoscaling:DeleteLaunchConfiguration",
                    "autoscaling:DeletePolicy",
                    "autoscaling:DescribeAutoScalingGroups",
                    "autoscaling:DescribeAutoScalingInstances",
                    "autoscaling:DescribeLaunchConfigurations",
                    "autoscaling:DescribePolicies",
                    "autoscaling:DescribeScalingActivities",
                    "autoscaling:PutScalingPolicy",
                    "autoscaling:UpdateAutoScalingGroup"
                ],
                "Resource": "*"
            },
            {
                "Effect": "Allow",
                "Action": [
                    "rds:AddTagsToResource",
                    "rds:AuthorizeDBSecurityGroupIngress",
                    "rds:CreateDBInstance",
                    "rds:CreateDBSecurityGroup",
                    "rds:CreateDBSnapshot",
                    "rds:CreateDBSubnetGroup",
                    "rds:CreateOptionGroup",
                    "rds:DeleteDBInstance",
                    "rds:DeleteDBSecurityGroup",
                    "rds:DeleteDBSnapshot",
                    "rds:DeleteOptionGroup",
                    "rds:DescribeDBInstances",
                    "rds:DescribeDBSnapshots",
                    "rds:DescribeDBSecurityGroups",
                    "rds:DescribeOptionGroups",
    		"rds:DescribeDBSubnetGroups",
                    "rds:ModifyDBInstance",
                    "rds:ModifyOptionGroup",
                    "rds:RestoreDBInstanceFromDBSnapshot"
                ],
                "Resource": "*"
            }
        ]
    }

  3. 创建 IAM 用户,并向用户附加此策略。
  4. 创建 IAM 用户时,请下载其访问密钥保密访问密钥

    警告:

    只有在创建用户时才能下载访问密钥保密访问密钥

  5. 使用属于 IAM 用户的访问密钥保密访问密钥登录。

启动 AWS 实例

ArcGIS Server Cloud Builder on Amazon Web Services 将指导您完成创建 AWS 实例的步骤。

常规设置

  1. 单击站点选项卡,然后单击创建站点
  2. 输入站点的名称和描述。

    该名称将应用于该应用程序在 AWS 中为您创建的各种资源,以便您轻松识别这些资源。

  3. 使用软件下拉列表选择用于启动实例的 AMI。您可以使用 Esri Windows 或 Ubuntu Linux AMI,或使用先前配置的站点模板来包含您自己的软件、数据和服务。
  4. 浏览至用于授权站点的 ArcGIS Server 许可文件(扩展名为 .prvc)。如果在创建 .prvc 文件的过程中需要帮助,请参阅常见问题
  5. 单击下一步跳转到下一面板。

Amazon Web Services 设置

为您的站点定义 AWS 设置。

  1. 选择要用于站点的 AWS 区域。

    区域代表在世界某一区域中的 Amazon 数据中心联合体。站点不能跨区域分布,但可以在备选区域中维护第二个站点作为冗余。

  2. 选择在新的或现有的 Amazon EPC-VPC(虚拟私有云)中启动。
    • 可以使用在 Amazon Web Services 控制台中创建的 VPC。Cloud Builder 为指定的现有 VPC 检测现有子网。
      注:

      如果将现的 VPC 与 Ubuntu AMI 上的 ArcGIS Server 安装程序配合使用,则在继续操作之前,必须在 VPC 上设置以下动态主机配置协议选项。

      • domain-name-servers=AmazonProvidedDNS
      • domain-name={ec2.internal|<region>.compute.internal}

        如果您在 AWS us-east-1 区域中启动了实例,则必须将 domain-name 设置为 ec2.internal。如果您在其他任何区域内启动实例,则将 domain-name 设置为后缀为 .compute.internal 的区域名称。例如,如果您在 AWS 区域 sa-east-1 中启动实例,请设置 domain-name=sa-east-1.compute.internal

    • 如果没有可使用的现有 VPC,请选择用于创建新 VPC 的选项。Cloud Builder 在每个有效可用区中创建 VPC 和子网。
  3. 选择要用于此站点的密钥对。如果想登录站点中的任一实例,则需要使用密钥对。您可以使用一个现有的密钥对或创建一个新的密钥对。
    • 要使用现有的密钥对,请从下拉列表中选择一项。此列表仅包含您工作所在区域中的密钥对。
    • 如果您创建新密钥对,则 .pem 文件将放置在 ArcGISCloudBuilder. 下的 Windows Documents 文件夹中。例如,密钥对文件的路径可能类似于 C:\Users\username\Documents\ArcGISCloudBuilder\arcgis-TestSite.pem。您应将此文件移动至一个安全位置以供未来使用。
  4. 单击下一步跳转到下一面板。

ArcGIS Server 实例设置

指定构成 ArcGIS Server 的实例的设置。

警告:

实例类型、以及您选择的最小实例数和最大实例数会极大地影响 AWS 的收费金额。选择这些设置之前,请仔细评估站点使用情况以及相应的服务器功能。

  1. 选择要用于站点中的实例类型。

    可用实例会因您所使用的区域而略有不同。但微型实例不满足 ArcGIS Server 的最低内存要求,因此在所有区域中均不可用。

  2. 选择附加到站点中各个 ArcGIS Server 实例的 Amazon 弹性块存储 (EBS) 卷的大小。EBS 卷将显示为本地磁盘驱动器,您可以向此驱动器上传数据。您的 ArcGIS Server 配置存储和服务器目录也放在其中一个实例上的此驱动器中。
  3. 选择在终止站点时是否应删除根驱动器和附加的 EBS 卷。

    如果您选择保留驱动器,可允许未来将其附加到其他站点。但是,不再需要驱动器时,您必须记得要手动删除该驱动器。只要它们存在,就将产生驱动器费用。

  4. 接下来的两个步骤仅适用于 ArcGIS Server 企业级许可站点。

  5. 选择站点涉及的 AWS 实例数。

    实例数属性代表创建站点时将启动的最小实例数。

    许可:

    不得在超过 Esri 许可数量的 CPU 核上运行 ArcGIS Server,不论这些 CPU 核是在云中还是在公司内部。此外还应注意,您应对 AWS 实例和使用 Cloud Builder 启动的其他资源所产生的所有 Amazon Web 服务费用负责。

  6. 也可选中启用自动伸缩选项,根据指定的使用触发器自动启动或终止新的 AWS 实例。

    自动伸缩监控站点使用情况并根据 CPU 使用情况和持续时间添加或移除实例。当更多用户和应用程序访问您的站点时,将向其添加更多实例。当需求减少时,将移除实例。实例绝不会少于您指定的实例数数量,且绝不会超过您指定的最大实例数数量。

    Amazon 云监控服务旨在为实例提供 CPU 监控,并实现了对自动伸缩的触发。如果您选择启用自动伸缩,您将看到 CloudWatch 服务的额外费用。

    1. 设置可启动的最大实例数
    2. 指定将导致从站点中移除实例的 CPU 使用率和持续时间。
    3. 指定将导致向站点中添加实例的 CPU 使用率和持续时间。

    例如,如果保留默认设置,持续 5 分钟内站点的 CPU 使用率超过 80% 时,则会将新的 ArcGIS Server 计算机添加到该站点(除非已达到指定的最大实例数)。持续 5 分钟内 CPU 使用率低于 20% 时,将从站点中移除并终止 ArcGIS Server 计算机(除非已减少至指定的初始实例数量)。

  7. 单击下一步跳转到下一面板。

地理数据库设置

您可通过选中包含企业级地理数据库选择在站点中包含地理数据库。关系数据库管理系统选项会因启动站点所使用的 AMI 和 ArcGIS 许可的不同而有所不同。

  • 如果使用的是 ArcGIS Server(基础级别,工作组版)或 ArcGIS Enterprise(工作组版)许可,可创建包含 ArcGIS Server EC2 实例上的 Microsoft SQL Server Express 的站点。
  • 如果使用的是 ArcGIS Server(基础级别,企业版)或 ArcGIS Enterprise(企业版)许可和 Esri Ubuntu Linux AMI,则您创建的站点可包括以下内容之一:
    • ArcGIS Server EC2 实例上的 PostgreSQL
    • 自己专有 EC2 实例上的 PostgreSQL
    • Amazon RDS for PostgreSQL
  • 如果使用的是 ArcGIS GIS Server 企业版许可和 Esri Windows AMI,则您创建的站点可包括以下内容之一:
    • ArcGIS Server EC2 实例上的 Microsoft SQL Server Express
    • Amazon RDS for Microsoft SQL Server
    • Amazon RDS for PostgreSQL

运行在自己专有 EC2 实例上的关系数据库管理系统需要您指定实例类型、EBS 卷大小以及终止站点时是否删除卷。请注意,所有这些设置均会影响 Amazon 帐户的收费金额。

Amazon RDS for Microsoft SQL Server 和 Amazon RDS for PostgreSQL 始终运行自己专有实例,为此您必须指定实例类和分配的存储大小。此外,还必须选择子网组。

做出选择后,单击下一步跳转到下一面板。

安全性设置

您必须为 ArcGIS Server 创建主要站点管理员。您也可以指定 SSL 证书进行加密通信。

  1. 输入用于 ArcGIS Server 主要站点管理员帐户的用户名和密码。

    主站点管理员帐户不是一个操作系统帐户,它是您此时在 ArcGIS Server 中创建的内置帐户。可使用此帐户登录 ArcGIS Server Manager 并建立与服务器的连接,直到您可以在站点上进一步配置安全性。

    密码长度必须介于 8 到 16 个字符之间,且不能含有正斜线 (/) 或 at 符号 (@)。

    如果您选择在站点内的 Amazon RDS for SQL Server 中包含企业级地理数据库,则用于主要站点管理员的密码也将用于地理数据库所需的数据库用户。

  2. 选择创建站点时是否安装 SSL 证书。该证书支持与站点之间的加密通信。有关此选项的详细信息,请参阅使用云构建器设置 SSL
  3. 单击下一步跳转到摘要面板。

检查设置并创建站点

检查站点的设置。单击上一步在上一面板中进行更改,否则,单击完成创建站点。

站点创建可能需要一段时间。创建站点过程中会显示一系列消息,来解释应用程序正在执行的操作。

警告:

在站点创建完成之前必须保持登录到 Cloud Builder。

含指定资源的站点将在 EC2 上创建。其中包括一个或多个启用 Amazon 云监控的实例、若干 EBS 卷和一个弹性负载均衡器 (ELB)。这些资源将立即产生费用。要了解这些资源花费的详细信息,请参阅 http://aws.amazon.com/pricing/ec2

接下来的步骤

您将需要连接至服务器以加载和发布数据。默认情况下,不启用实例的远程访问。如果想登录任一 EC2 实例,请参阅以下帮助主题:

出于安全考虑,PostgreSQL 中包含地理数据库的站点也需要您更改密码。您也可以在 Windows 实例上更改管理员登录的密码