Nowadays it is possible to develop an application from scratch extremely quickly, thanks to cloud services, and this is becomming increasingly widespread. We no longer need to worry about installing the servers in a datacenter, maintaining them, virtualizing, updating the hardware, setting all the wiring for the network, etc. Nor do we have to worry about all to the costs that this would normally entail.
We obtain this ‘basic’ level of ‘Infrastructure as a Service’ (IaaS) with services such as EC2 (computing resources) and VPC (network resources). With these we can quickly deploy a development environment. Such an environment can take into account the configuration needed for a given use case within the server, even if such configuration is unique or complex. If these requirements were more flexible, we could use services such as Elastic Beanstalk, Fargate or Lambda.
Returning to our use case, once we need to migrate our application to a productive environment, acheiving high availability and fault tolerance is easy (thanks to the features of AutoScaling, ELB, and subnets in different availability zones), compared to an on-site deployment.
On the other hand, if we require a relational database, AWS offers the RDS service (which provides databases such as Aurora, Oracle, SQL Server among others). This service allows for high availability and fault tolerance schemes, as well as automatic backups and easy integration with other services, in order to migrate data from our datacenter.
Data Insights has successfully implemented these services in different projects. One such project was carried out in collaboration with 2W_IT GbR. It was necessary to implement a risk control tool that runs in an EC2 instance, and then save the data in a MySQL in RDS. To access the tool, Route53 and ELB were used. For monitoring and alerting purposes the services of CloudWatch, SNS, and SES came to the rescue.
In addition to the above points, one important task was to save costs as much as possible. Using reserved instances in EC2 and RDS this was achieved. For this, there are different payment methods: All Upfront, Partial Upfront, and No Upfront. One can also choose between 1 and 3 years of coverage, depending on the forecast use of the service.
For EC2 we can now choose between several types of reserved instances such as Standard, Convertible, and Scheduled. The choice will depend on whether we want to change any attributes of our reserved instances (family, operating system, tenancy, payment method) or whether we want to schedule the use of the instance.
Taking into consideration all these points, as well as the customer forecast, we generated 26% worth of savings with respect to what would have been paid with the On Demand instance choice. This was achieved via a mix of standard and convertible schemes for the different environments. As well, this was accomplished without sacrificing performance, while still covering all the requirements of the tool. In the end, the deployment of the infrastructure was made in less than a week, giving the customer more time to focus on development of a production–ready tool.