AWS Partner Network (APN) Blog
DXC Technology’s Plug-and-Play API-Based AWS Object Storage Accelerator Solution
By Charles Christopher, Cloud Solution Architect – DXC Technology
By Rakesh Kootheri, Cloud Solution Lead – DXC Technology
By Dhiraj Thakur, Solutions Architect – AWS
Enterprise applications are developed to deal with large volumes of structured and unstructured data. Organizations in domains like insurance, automotive, healthcare, and banking have many applications which manage and store images, videos, documents, and text data. The management and storage of such data in a secure, scalable, durable, and highly available way can be challenging.
In this post, we’ll walk you through an Amazon S3-based object storage accelerator solution that can be integrated with modern applications irrespective of technologies used.
Amazon Simple Storage Service (Amazon S3) is ideal when you want to store documents, images, and videos and render with faster performance. The object storage accelerator built by DXC Technology is a serverless solution that automatically creates code repository, CI/CD pipeline, and S3 storage APIs with security best practices in a two-step deployment process.
The solution is technology-agnostic which means any customer project can consume these services after deployment. It supports most of Amazon S3’s key functionalities with zero learning and knowledge of S3 integration. This also encompasses auto deployment using AWS Serverless Application Model (SAM) on any environment.
DXC Technology is an AWS Premier Tier Services Partner and Managed Cloud Service Provider (MSP) with over 3,000 AWS Certifications, which positions DXC to help customers who use Amazon Web Services (AWS) to harness the power of innovation and drive their business transformation.
DXC’s object storage accelerator is a REST API-based solution that can be consumed from any technologies such as Java, .NET, Python, Node.js, and Go. The solution supports the following functionalities:
- Creating buckets in Amazon S3 to store object(s)
- Deleting buckets in S3
- Enabling versioning
- Pushing object(s) into S3
- Deleting object(s) from S3
- Listing object(s) from S3
- Decrypting base64 payload object(s) and convert object and store into S3 object
- Encrypting the object(s) to base64 and returning to fetch request
- Creating key for storing the object(s) in S3
- Creating deployment unit (infrastructure as code) to deploy in different environments and provisioning AWS services
- AWS CodeCommit and AWS CodePipeline for further enhancement
- API security
Figure 1 – Solution architecture.
The APIs are developed using Node.js and deployed as an AWS Lambda function. In terms of API authentication, auth tokens in Amazon Cognito and X-API keys in Amazon API Gateway are used. AWS CodePipeline is used for CI/CD, and the entire deployment is automated using AWS SAM.
Deploying the Solution
This section covers the step-by step-deployment of the solution.
- AWS account
- AWS Identity and Access Management (IAM) user
- Access key and secret key for the IAM user created
- AWS Command Line Interface (CLI) installed and configured for the generated access and secret key
- AWS SAM CLI installed on client machine for SAM-based deployment
- Downloaded solution code from the DXC repository
Figure 2 – Code structure.
Deployment Step #1
The solution is deployed through AWS CloudFormation using the following steps:
- Create CodeCommit repository in AWS account.
- Upload the compressed solution code in S3 and update the CodeCommit SAM config file according to the target AWS account.
- Deploy the CodeCommit repository by executing SAM deploy command:
sam deploy --template-file <Code commit Template File>
This step automatically creates a CodeCommit repository with the application code shared in Amazon S3.
Figure 3 – AWS CodeCommit repository created.
Deployment Step #2
- Create the CodePipeline and solution deployment.
- Update the pipeline SAM config file according to target AWS account and execute the code pipeline deployment:
sam deploy --template-file <Code pipeline Template File>
This step automatically creates a CodePipeline with all deployment steps.
Figure 4 – AWS CodePipeline.
Initially, the CodePipeline will be executed automatically and creates all APIs.
Figure 5 – Object storage API.
Three CloudFormation stacks will be created, as shown in the screenshot below. Later for any code change, CodePipeline will execute and update the storage API stack automatically.
Figure 6 – AWS CloudFormation stacks.
DXC’s object storage accelerator solution is a complete DevOps package that automatically deploys all components and provides ready-to-use APIs for object storage and management that can be securely integrated with any application for object-based storage from a user interface.
This acts as a plug-and-play solution for any enterprise application where secure, scalable, durable, and highly available object-based storage is required.
The major benefits of the solutions are:
- Ready-to-use API-based object storage solution that can be integrated with enterprise applications.
- API security implemented using Amazon Cognito and API key.
- Simple and automated deployment using AWS CloudFormation.
- Integrated DevOps pipeline and AWS CodeCommit repository to accommodate further enhancement quickly.
DXC Technology’s object storage accelerator solution can be used for any application, irrespective of technology. It can be deployed in a two-step process with minimal knowledge, and strategically helps enterprises to solve object-based storage challenges.
The solution can be used as standardized object storage solution level, enabling savings in both development effort and cost.
DXC Technology – AWS Partner Spotlight
DXC Technology is an AWS Premier Tier Services Partner and MSP that understands the complexities of migrating workloads to AWS in large-scale environments, and the skills needed for success.