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 Web Services (AWS) storage services for the configuration store.
You need an 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 AWS storage services for the configuration store.
In this workflow, you will 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 AWS DynamoDB and Simple Storage Service (S3) are created for the configuration store.
- If this is the first time using a particular AMI, accept AWS terms.
- 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 VPC, be sure to do the following:
- Configure your subnet to Enable Auto-assign Public IP. See AWS VPC IP addressing documentation for details.
- Open port 6080 in the security group you will use with your instance.
- Connect to two of the instances, and authorize ArcGIS Server on these instances.
For instructions on connecting to an instance, see one of the following topics:
- Rather than create a GIS server site from ArcGIS Server Manager, open the ArcGIS Server Administrator Directory URL (http://<public DNS>:6080/arcgis/admin) for one of the instances and click createNewSite.
- Provide a user name and password for the ArcGIS Server primary site administrator in the Primary administrator's name and Password fields, respectively.
- 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 and can contain 50 or fewer alphanumeric characters.
For best performance, the AWS region you specify should be the same for all the instances included in your site.
- If you configured an IAM role, copy the following into Config store connection (JSON):
- 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": "" }, { "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": "" }, { "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": "" }, { "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": "" } ] }
- 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 }
- Leave the Cluster (JSON) field blank to use the default cluster.
- Click Create.
- Once the GIS server site is created, go back to the AWS Management console and verify that the S3 bucket and DynamoDB exist.
- Go to Services > Storage and Content Delivery > S3 and verify an S3 bucket with the name arcgis-config-store-<name you provided> exists.
- Go to Services > Database > Dynamo DB and verify that the following items exist: ArcGISConfigStore.<S3 bucket name> (which contains a Container item) and ArcGISConfigStores (which contains a NameSpace item).
- Open ArcGIS Server Manager for the second AWS instance. The URL is http://<public DNS>:6080/arcgis/manager.
- Join this instance to the ArcGIS Server site.
- Click Join Existing Site.
- Provide the URL of the ArcGIS Server site you created on the first instance.
- 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 AWS storage services.