How to set up a network infrastructure with Amazon Web Services (AWS)
Credit to Nikolay Dikhtyar, a DevOps at Onix-Systems, for technical detail assistance with this blog
After years of growth and development, cloud computing has matured, and unlike on-premises deployment, ensures fast infrastructure setup. Building a physical infrastructure may take weeks, while creating a cloud infrastructure may require only several hours. Among other compelling advantages of cloud services are their scalability, reliability, high performance, and security.
The launch of a website in a separate cloud environment allows you to physically access a distant server and maintain full control over the website’s performance. Amazon Web Services (AWS) is a proven premier solution for cloud infrastructures that ensures automated software management services. Let’s take a close look at how cloud deployment with AWS can benefit your business.
Amazon Web Services provides several ways to rapidly launch a website. It can be a simple solution, where the website or app requires one powerful virtual server.
Another option is an extended solution that can sustain a significant workload (a network with several servers or a docker container):
- You can create a network infrastructure based on a required number of servers, where each server performs one key function (e.g., a web server, database server, additional functionality server and a monitoring server).
- You may choose to set up one powerful server with a docker environment and launch your website in that setting. A docker environment or docker container includes a piece of software in a file system that has everything it needs to run: code, runtime, system tools, and system libraries. This structure ensures that it always runs the same, regardless of the environment it is running in.
Every docker container serves as a separate virtual machine. Docker containers exchange data between each other through their sub network. So if you open a website to which there is access from the Internet, all website data will be stored in a database (stored on a physical machine and connected to a docker container) that can be accessed through the database service that is running inside the docker container.
Any requests made to the database from a website are processed through the docker container’s internal network. This ensures a high level of protection that secures the infrastructure from intrusion. All internal services are isolated physically from each other.
A powerful network infrastructure realization with several virtual machines
Network maintenance with the AWS
After all instances (virtual machines) have been launched, distant AWS servers are accessed with the help of a Secure Shell (SSH) with authentication and a private key (a separate file with code) that can also be encoded. So each time it is used, it will be necessary to enter an additional password for protection of the key.
All website services are monitored 24/7, so in case of any issue, a notification is generated and sent to selected recipients. You can use additional monitoring services (e.g., Icinga2, Zabbix) that will monitor specified objects; and you can install a monitoring service such as Monit that will monitor and restart services if they are not functioning.
- System recovery.
The development of a centralized scenario file such as Ansible playbook that contains description of a setup algorithm for infrastructure development with the full cycle of software setup is necessary for a quick system recovery after a crash. Also, it is possible to create a staging environment (virtual servers) for testing before the final launch of a website that is in production.
AWS enables getting a ready-to-use server in about 5-10 minutes (using a centralized installation scenario) with recovered databases and their archives stored in the network’s storage. To initiate the process, you need to provide a list of servers or specify one server that you require for your website and indicate the access key. AWS services are also helpful when you need to move your website from one virtual server to another, in case you need to change the configuration of an existing server or service.
Backup setup is performed for databases, data from a server and copy saving and also includes a procedure of automated removal of old archives.
A powerful infrastructure with applications containerizing
Benefits of setting up a website infrastructure on AWS
- No extra costs to purchase equipment.
Building an infrastructure with AWS is an economical way for companies that don’t want to spend funds purchasing and maintaining equipment, building a network with direct access to the Internet with further domain name registration and allocating external static IP addresses.
- Reaching out to customers in different parts of the world.
Using geo-location benefits vendors that target customers from several regions worldwide. If a service is located close to a customer, it takes minimum processing time.
- Consumers can monitor and manage their AWS services from different devices.
AWS services monitoring and managing can be performed from various devices connected to the Internet and with the latest browser versions.
The AWS console can be accessed from anywhere in the world. AWS provides a powerful web console to manage its services, including virtual machines (instances), such as the managing console AWS EC2. Also, Amazon Web Services offers many integrated utilities for various systems for management purposes. For example, AWSCLI is an application for AWS management on a computer console that helps create scripts for automation.
- Website owners don’t need to upgrade their devices to interact with a website.
Utilization of cloud services allows vendors to interact with a website without upgrading their own servers located in a server room. Server equipment can get damaged any time. AWS customers don’t experience this problem because they can select a server they need and everything else will be handled by AWS. If necessary, information structure can be reinitiated by a vendor with the use of a more powerful virtual server.
A simple deployment solution (all packages and additional extensions are installed on one host)
Advantages of Amazon Web Services
Infrastructure platforms on AWS have been successfully adopted by all kinds of businesses around the world. AWS enables rapid software adjustments based on customer demand and can keeping up with rapidly growing traffic on a website.
Here is a partial list of advantages offered by Amazon Web Services:
- Data protection is guaranteed through several layers of physical and operational security.
- Cost efficiency (paying only for the amount of storage you consume).
- Flexibility in selecting server needs (selecting programming models and platforms that match your business needs).
- Placing servers in different regions.
- With the help of Route 53 (which provides scalable DNS system), you can balance requests made by consumers and redirect them to the region which is closest to them.
- Access to the network S3 storage (Simple Storage Service with up to 5 TB in a single object) via the AWS resources.
- Development of a separate private sub network.
- Creating virtual machines with full access to the Internet without intermediaries.
- Each virtual machine is associated with its own list of security groups, providing an additional firewall that runs before the virtual machine.
Stay tuned with the latest technology trends and projects.
Subscribe to Onix blog to receive interesting content right in your inbox.