Using CloudFormation for AWS deployments
With a Server license, you can provision TORO Integrate to sit on top of your organization's own on-premise servers or run on top of a public cloud provider such as AWS, Azure, or the Google Cloud Platform. In this document, we will discuss how to deploy TORO Integrate on AWS using CloudFormation.
Flexible deployment models
A CloudFormation template defines a stack of AWS servers and services, and provides a mechanism to reference recipes that can automate network and application configuration. TORO has made a flexible and customizable AWS CloudFormation template available for public use which allows enterprise customers to configure a three-tier, scalable network architecture for TORO Integrate without much effort, and that which benefits from AWS’s extensive range of services. This template was designed, built, and tested by the same experts managing the TORO Cloud infrastructure on AWS.
Why AWS? Why CloudFormation?
Amazon Web Services (AWS) is the world’s leading cloud infrastructure solutions provider, providing a flexible and economical alternative to organisations deploying bare metal servers in a private data center whilst offering a breadth of services and quality of service demanded by some of the world’s largest brands. AWS CloudFormation dramatically simplifies the deployment of applications, servers, and services on AWS.
The CloudFormation template provided by TORO is designed to work with organizations running on the Enterprise Edition of TORO Integrate. It will make use of as many AWS-managed resources and services as possible to minimize the amount of server and infrastructure management required. This deployment method is useful for organizations looking to migrate to the cloud and gain all the benefits of deploying an infrastructure in AWS – customizable, flexible, manageable, and easy to deploy.
The AWS CloudFormation template provided by TORO uses the following AWS services:
|AWS CloudFormation||Deployment service||For simplifying the provisioning and managing of related AWS resources, as well as for updating them in an orderly manner.||Deploys resources to AWS, all of which have been inspected and passed TORO’s standards and security policies.|
|AWS Elastic Container Service (ECS)||Container management service||Docker container orchestration and management on EC2 instances.||Automatic scaling of production containers managed by ECS. Automatic health checks also verifies redundancy.|
|AWS Elastic Cloud Computing (EC2)||Virtual servers in the cloud||Elastic and on demand compute capacity.||By default, the template will provision micro server instances that are available under AWS’s free billing tier. The server specifications can be changed during or after deployment to any EC2 server size to suit the sizing of the target application.|
|AWS Virtual Private Cloud (VPC)||Virtual network||Complete control over your own virtual network.||Resources are managed and isolated according to their corresponding role or group which makes it easier to determine their permissions and access. This setup has been one of the best practices in the industry.|
|AWS Relational Database Service (RDS)||SQL database||A managed and scalable SQL database.||By default, the template will provision a MySQL instance on RDS. The database is automatically replicated to another instance in a separate Availability Zone. RDS will automatically backup the database and switch to the fail-over replica in case of an outage in the primary database.|
|AWS CloudWatch||Monitoring and logging||Collect and track metrics, collect and monitor log files, set alarms, and automatically react to changes in AWS resources.||Every resource has a corresponding monitoring agent and an alerting scheme.|
|AWS OpsWorks||Auto scaling and EC2 manager||Auto-scale instances on demand. Easily manage the resources in your infrastructure.||All instances in the VPC are managed by OpsWorks. With this, system administrators don’t need to manually provision instances and worry about its OS, upgrades, and the applications installed in all VMs. With OpsWorks, you can manage one or 1000 servers without affecting the workflow.|
|AWS Elastic File System (EFS)||Central file storage||Elastic file storage that can be accessed from multiple EC2 instances at the same time.||AWS EFS enables the Docker containers to have their data retained even when a container is transferred to another EC2 instance. We don’t need to worry about performance as it is in Max I/O performance mode.|
|AWS Simple Notification Service (SNS)||Notification service||Managed messaging service.||With AWS SNS, separating notifications into different priority tiers can easily be managed. We can configure whether an EC2 instance failure for a system check will trigger a notification to the proper team or just send the notification to an Enterprise Service Bus (ESB), like TORO Integrate, to digest the content and execute the proper remedy.|
|AWS Route 53||DNS||Managed Domain Name System web service which connects user requests to the infrastructure running on AWS.||Route 53 organizes all your domain names. It also provides a private domain functionality for your internal resources and tools.|
|AWS Certificate Manager||SSL Certificate Manager||Provision, manage, and deploy SSL certificates within AWS resources.||Through the AWS Certificate Manager, it can be determined if an SSL certificate needs to be renewed. It can also generate a custom SSL certificate for an Elastic Load Balancer (ELB) or CloudFront distribution.|
The AWS CloudFormation template for TORO Integrate addresses the key challenges of deploying a scalable enterprise application in the cloud. Users will benefit from:
- AWS’s managed infrastructure by minimizing downtime with automatic failover and recovery
- Monitoring services that minimize time and costs spent on troubleshooting issues
- The expertise of TORO’s in-house team of system administrators to ensure that an organization’s deployment of TORO Integrate is deployed on tested and proven technologies whilst applying the industry’s best practices.
The diagram below illustrates the topology configured in the AWS CloudFormation template, which implements a highly-available three-tier network architecture:
Is there an additional cost for the template?
No, the template is free.
Can we use the template with any edition?
By default, no. The template deploys an instance of SolrCloud. Only the Enterprise Edition supports SolrCloud.
What is the estimated cost of this AWS deployment?
It depends on which type of instances you’ve chosen for your EC2 instances and RDS instances. Data transfers and storage costs may also vary depending on the size of the data. Use the AWS simple monthly calculator to compute for an estimate.
If I remove or add services or EC2 instances, how will it affect the infrastructure?
Once the CloudFormation template has been fully deployed, you can then use OpsWorks to add EC2 instances. As for removing a service, you may edit the template and it will warn you if a resource has a dependency and cannot be deleted.
Do I need to configure anything before or after deploying this infrastructure?
No. Everything is production-ready.