

# Architecture details
<a name="architecture-details"></a>

 This section describes the components and AWS services that make up this Guidance and the architecture details on how these components work together. 

## AWS services in this Guidance
<a name="aws-services-in-this-guidance"></a>


|  AWS service  |  Description  | 
| --- | --- | 
|  [Amazon S3](https://aws.amazon.com/s3/)  |  Core. Stores inventory and archives transferred from the Amazon Glacier service.  | 
|  [Amazon Glacier](https://docs.aws.amazon.com/amazonglacier/latest/dev/introduction.html)  |  Core. Maintains the vault being transferred to the Amazon S3 service.  | 
|  [Amazon DynamoDB](https://aws.amazon.com/dynamodb/)  |  Core. Stores workflow-related data, including hash validation values and progress metrics for Amazon Glacier archives.  | 
|  [AWS Glue](https://aws.amazon.com/glue/)  |  Core. Reorders and splits the Amazon Glacier vault inventory file into partitions for processing by multiple Lambda invocations. Parses file names from Inventory/OverrideNaming file.  | 
|  [AWS Lambda](https://aws.amazon.com/lambda/)  |  Core. Performs workflow compute, including archive transfer and validation.  | 
|  [Amazon SNS](https://aws.amazon.com/sns/)  |  Supporting. Decouples Lambda workflows by providing communication between the Guidance, the Amazon Glacier service, and Amazon SQS queues.  | 
|  [Amazon SQS](https://aws.amazon.com/sqs/)  |  Supporting. Decouples Lambda workflows.  | 
|  [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/)  |  Supporting. Stores the Guidance logs and metrics. Presents a custom dashboard to provide visibility of the archive copy operation progress.  | 
|  [Amazon EventBridge](https://aws.amazon.com/eventbridge/)  |  Supporting. Invokes supporting workflows that promote the smooth operation of the Guidance.  | 
|  [IAM](https://aws.amazon.com/iam/)  |  Supporting. Provides permissions for this Guidance's resources to perform actions.  | 
|  [AWS Systems Manager](https://aws.amazon.com/systems-manager/)  |  Supporting. Provides a Systems Manager [document](https://docs.aws.amazon.com/systems-manager/latest/userguide/documents.html) (SSM document) for Guidance's workflow invocations.  | 
|  [AWS Step Functions](https://aws.amazon.com/step-functions/)  |  Supporting. Orchestrates partitioning the inventory with AWS Glue. Also orchestrates Lambda invocations to request Amazon Glacier vault archive retrieval.  | 

# Third-party software support
<a name="third-party-software-support"></a>

 This Guidance uses the value stored in the **ArchiveDescription** for each Amazon Glacier vault archive (as listed in the Amazon Glacier inventory file) as the key name for the new S3 object that it creates. The Guidance supports copying Amazon Glacier vaults using either FastGlacier or CloudBerry software as follows. 
+  **FastGlacier (v1-v4)** – The Guidance extracts the value for `/ArchiveMetadata/Path` of `/m/p` from the XML metadata stored in the **ArchiveDescription** field in the Amazon Glacier inventory file. It then converts that value to a string that forms the S3 object key name. 
+  **CloudBerry (v5.9)** – The Guidance extracts the value for **Path** from the JSON metadata stored in the **ArchiveDescription** field in the Amazon Glacier inventory file. It then converts that value to a string that forms the S3 object key name. 