Skip To Content

Configure a highly available ArcGIS Server with a shared configuration store on Amazon storage services

To have a truly highly available ArcGIS Server site, you need to store your ArcGIS Server configuration store in a highly available, shared location. You can use Amazon storage services for the configuration store.

You need an Amazon Web Services (AWS) account and either the Access Key and Secret Key for the account or a predefined IAM role to complete the following workflow to configure a highly available ArcGIS Server site that uses Amazon storage services for the configuration store.

In this workflow, you'll launch three instances; two will be used for the ArcGIS Server site, the third will be used for a file share on which the ArcGIS Server directories will reside. Additionally, an Amazon DynamoDB and Simple Storage Service (S3) are created for the configuration store.

  1. If this is the first time using a particular AMI, accept AWS terms.
  2. Log in to the AWS Management console and launch three instances from an ArcGIS AMI.

    See Launch an EC2 instance running ArcGIS Server for more information.

    If you launch the instances in Amazon Virtual Private Cloud (VPC), be sure to do the following:

    1. Configure your subnet to autoassign public IP addresses. See AWS VPC IP addressing documentation for details.
    2. Open port 6443 in the security group you'll use with your instance.
  3. Connect to two of the instances, and authorize ArcGIS Server on these instances.
  4. Rather than create an ArcGIS Server site from ArcGIS Server Manager, open the ArcGIS Server Administrator Directory URL (https://<public DNS>:6443/arcgis/admin) for the first AWS instance and click createNewSite.
  5. Provide a user name and password for the ArcGIS Server primary site administrator in the Primary administrator's name and Password fields, respectively.
  6. Copy one of the following into the Config store connection (JSON) field and replace variable information with information specific to your account and implementation.
    • If you configured an IAM role, copy the following into Config store connection (JSON):

      {
      	    "type": "AMAZON",
           "connectionString": "NAMESPACE=<Name of your Bucket>;REGION=<AWS region e.g us-west-2>;"
      	}

    • If you did not configure an IAM role, copy the following into Config store connection (JSON):

      {
      	    "type": "AMAZON",
           "connectionString": "NAMESPACE=<Name of your Bucket>;REGION=<AWS region e.g us-west-2>",
      	    "connectionSecret"="ACCESS_KEY_ID=<Your AccessKey>;SECRET_KEY=<Your Secret Key>;"
      	}

    The namespace used for the bucket must be unique for this ArcGIS Server site. ArcGIS appends the text arcgis-config-store- to the name you provide; therefore, the maximum number of alphanumeric characters you can provide for the bucket name is

    <AWS maximum allowed characters> – 20
    .

    For best performance, the AWS region you specify should be the same for all the instances included in your site.

  7. Copy the following information into the Server directories (JSON) field, and replace variable information with information specific to your implementation:

    {
    	  "directories": [
    	           {
    	             "name": "arcgisoutput",
    	             "physicalPath": "<arcgisoutput directory>",
    	             "directoryType": "OUTPUT",
    	             "cleanupMode": "TIME_ELAPSED_SINCE_LAST_MODIFIED",
    	             "maxFileAge": 10,
    	             "description": "Stores various information generated by services, such as map images.",
    	             "useLocalDir": "false",
    	             "localDirectoryPath": "",
    	             "virtualPath": "/rest/directories/arcgisoutput"
    	           },
    	           {
    	             "name": "arcgisjobs",
    	             "physicalPath": "<arcgisjobs directory>",
    	             "directoryType": "JOBS",
    	             "cleanupMode": "TIME_ELAPSED_SINCE_LAST_MODIFIED",
    	             "maxFileAge": 360,
    	             "description": "Stores results and other information from geoprocessing services.",
    	             "useLocalDir": "false",
    	             "localDirectoryPath": "",
    	             "virtualPath": "/rest/directories/arcgisjobs"
    	           },
    	           {
    	             "name": "arcgiscache",
    	             "physicalPath": "<arcgiscache directory>",
    	             "directoryType": "CACHE",
    	             "cleanupMode": "NONE",
    	             "maxFileAge": 0,
    	             "description": "Stores tile caches used by map, globe, and image services for rapid performance.",
    	             "useLocalDir": "false",
    	             "localDirectoryPath": "",
    	             "virtualPath": "/rest/directories/arcgiscache"
    	           },
    	           {
    	             "name": "arcgissystem",
    	             "physicalPath": "<arcgissystem directory>",
    	             "directoryType": "SYSTEM",
    	             "cleanupMode": "NONE",
    	             "maxFileAge": 0,
    	             "description": "Stores directories and files used internally by ArcGIS Server.",
    	             "useLocalDir": "false",
    	             "localDirectoryPath": "",
    	             "virtualPath": "arcgissystem"
    	           }
    	     ]
    	}

    Tip:
    For example values for each type of physicalPath, see the Example Usage section of Create Site in the REST API help.

  8. Optionally copy the following into the Log Settings (JSON) field and replace values as needed for your instance. If you do not specify logging information, ArcGIS uses default log level (warning), directory (C:\\arcgisserver\\logs\\ for Windows instances; /arcgis/server/usr/logs for Ubuntu instances), maximum number of log files stored (10), and maximum number of days a log file is stored (90).

    Note:

    JSON considers the backslash character (\) an escape character; therefore, anytime you provide text that includes a backslash—such as in Windows directory paths—you must use two backslashes.

    {
    		"logLevel": "<DEBUG | VERBOSE | FINE | INFO | WARNING | SEVERE>",
    		"logDir": "<directory>",
    		"maxErrorReportsCount": 10,
    		"maxLogFileAge": 90
    	}

    In the following example, up to 25 debug log files will be created in a logs folder on the ArcGIS Server machine, and log files will be retained for 30 days.

    {
    		"logLevel": "DEBUG",
    		"logDir": "C:\\arcgisserver\\logs\\",
    		"maxErrorReportsCount": 25,
    		"maxLogFileAge": 30
    	}

  9. Leave the Cluster (JSON) field blank to use the default cluster.
  10. Click Create.
  11. Once the ArcGIS Server site is created, go back to the AWS Management console and verify that the S3 bucket and DynamoDB exist.
    1. Go to Services > Storage and Content Delivery > S3 and verify that an S3 bucket with the name arcgis-config-store-<name you provided> exists.
    2. Go to Services > Database > Dynamo DB and verify that the following items exist: ArcGISConfigStore.<S3 bucket name> (that contains a Container item) and ArcGISConfigStores (that contains a NameSpace item).
  12. Open ArcGIS Server Manager for the second AWS instance. The URL is https://<public DNS>:6443/arcgis/manager.
  13. Join this second AWS instance to the ArcGIS Server site.
    1. Click Join Existing Site.
    2. Provide the URL of the ArcGIS Server site you created on the first instance.
    3. Provide the primary site administrator user name and password you created on the first instance.

You now have a highly available ArcGIS Server that contains two machines, a third machine that stores the shared ArcGIS Server directories, and a shared configuration store on Amazon storage services.