An explanation of what Amazon Web Services are if a 10-year-old has asked.
Clouds are starting to cover all, and the biggest cloud computing provider is Amazon’s AWS which is short for Amazon Web Services. Many well-known companies are using web services exactly from Amazon, maybe you have heard of Netflix, Airbnb and Imgur?
In the text below I’ll be explaining, quite plainly, what AWS offers and how you could take advantage of the numerous services that they have, and they do have many. If you are just stepping on the cloud and you are looking for a basic overview of it all, you are at the right place.
Let’s get “misty”.
Firstly, servers. Whatever you are doing with computers, you are doing it on your own or your company’s server(s). Of course, while you are in development, you could be using a private server. But once you deploy, you would like to run it on somebody else’s computer, because why would you waste your computing power for fuel, right? AWS will gladly offer you that fuel with their Virtual Server called EC2 or Elastic Compute Cloud. Elastic stands for the way you can stretch your purchase of instances with different CPU, storage, networking and memory. Or in other words — with an EC2 instance you will pay for traffic on demand. The instances are coming from Amazon Machine Images (AMI has Three Syllables — shoutout to Corey Quinn). These images are a template that sets up an operating system and defines the infrastructure of the user. After selecting an instance, you can instantly start deploying your cluster of servers. When it comes to creating the right instance — it’s a bit of luck and a lot of experience, but there are three popular ways you can go about this:
● Compute-optimized — if you are having a lot of traffic passing by your application or website, this is the way to go;
● Memory-optimized — quite self-explanatory, but these sort of instances offer you cost-efficient memory;
● Storage optimized — these instances will access SSD storage lighting fast.
The AWS` EC2 are flexible and you can get out of it a very well-structured and useful service. You can modify your OS, network and security settings. Of course, please bear in mind, that you are responsible for provisioning capacity, monitoring fleet health and performance of your virtual servers.
Or are you?
Now you can leave all of these responsibilities to smokin/tech. Check us out, because we have an “Automated Host Management” tool that will do the mundane cloud tasks for you, every day, all day.
Secondly, the database. Your application is probably using a database of some sort — PostgreSQL, MySQL, Oracle, MongoDB or something else. It doesn’t matter which, what matters is that AWS has a service for that called RDS (Relational Database Service). You can run your RDS on a separate EC2 just as you do on your computer, with some significant differences:
● Automatic software patching
● Easy scaling
● Automated backups
Have a look at all of the feature here.
So you are ready to deploy your stuff on your EC2. Well, there are many ways with which you can deploy your application but the most common and somewhat intuitive is AWS` EB(Elastic Beanstalk). With EB you will create environments in which you can manage your needs of EC2 and RDS. Also, you will deploy to that environment and check logs and ssh to the server. With EB you will deploy different platforms like Doker, Java, Ruby and many more. Check out the full list here. The Elastic Beanstalk will help you a lot when setting up your cloud because without it, you will have to configure each AWS service you will use separately. Oh, and a cool additional feature is AWS CodeDeploy, which lets you deploy after you push a commit to Git.
After your infrastructure and provisioning are all done and your application is up and running on your AWS cloud, it is time to route your domain traffic to it. Of course, AWS has a service for this — Route53. You can buy your domain straight off Route53 or you can delegate if you have already bought one from somewhere like GoDaddy. After your domain is on AWS you should add an A alias record to:
● the domain EB gave you ([your-application.elasticbeanstalk.com](http://your-application.elasticbeanstalk.com/));
● or your EC2’s Elastic IP;
● or your load balancer DNS name.
Your application is doing well and more traffic is incoming to your EC2 instance up to a point it is overwhelming. So for you to handle the requests, you can use the ELBs(Elastic Load Balancers). Load balancers work similarly to a traffic warden who will manage a busy crossroad. The ELBS use the round-robin algorithm which means that every received request will be sent to a different server in a sequential manner — the first request to one server, second to another and so on until the load balancers start from the beginning.
You can secure your application with an additional HTTPS for which, please note, you will have to get a certificate from ACM(AWS Certificate Manager) or somewhere else. Oh, and after that, you will have to add the certificate to your EC2 instance. Or if you have use EB to deploy, you should be having a load balancer. In this situation, you can apply the certificate to the ELBs.
On the topic of storing files, which surely is a key point in every project, you can check out AWS` S3(Simple Storage Service). It does fit its name, because it simply stores data, just like a Google Drive or another cloud. To store files on S3 you can use AWS SDK for your language. You can also look for other libraries because I’m sure there are more.
Hope you know a bit more about AWS — their offers are suitable for a start-up of one the same way as for a corporation of thousand. With AWS, you have access to a bountiful infrastructure that supports an enormous range of applications and websites. The whole business model of AWS is done in a manner that is least intrusive for the users. However this could lead to some hiccups — the freedom given to the AWS user is also a chain for him because AWS servers are plainly “naked” at the start, which means it will take effort to set up, provision and prepare for the actual application. But this is just the tip of the iceberg of everyday tasks that you will have to perform to ensure a working cloud server for your application — there is also monitoring, alerts, backups and provisioning again, because this part of the whole cloud deal could cost you more than it should.
But don’t think you are alone here, because you are not!
As I mentioned previously, you can check smokin/tech — we are a third-party provider that is gearing you up with an “Automated Host Management” tool that will build a turbocharged infrastructure in your own actual AWS account. Also, smokin/tech is providing you with cost-efficient provisioning, monitoring, alerting and backups — all of this on a fixed price, thru a nice-looking platform on your public cloud, so you can do more, with less effort. It is like a sysadmin`s Swiss army knife — one tool to rule them all (of your services). If you have a blog or a small business, have a look at our first product — stratus. we can help you significantly lower your public cloud spendings while optimizing your speed and security.
Oh, and one more thing. If you are new to AWS you are lucky! AWS is giving you a free one year trial. Yes, read it again: free one year trial! So basically you can reap a lot of benefits from 12-month free-charged computing resources and the best thing is that you can use our tool during these days of no pay. This translates into a turbocharges infrastructure, provisioning, monitoring and bullet-proof security for your site and application only for 5$ a month — not bad, right!