When using AWS, what tools and services are essential for my app?
Amazon Web Services (AWS) is a cloud-based computing platform owned by Amazon.com. It provides services and tools for software developers that allow them to concentrate on coding without needing to worry about the required infrastructure that must be in place for them to do so. The types of services that AWS provides include compute services, storage services, database services, networking services, management services, analytics services, security services, and application services. The tools and services that AWS offers are vast, with over 200 currently to choose from. If you choose to use the AWS platform to develop your app, however, there are a few specific services that are utilized by just about every app that is developed. They include the following:
- Amazon EC2 (Amazon Elastic Compute Cloud)
- Amazon EBS (Elastic Block Storage)
- Amazon S3 (Amazon Simple Storage Service)
- Amazon RDS (Amazon Relational Database Service)
In this article, we will give an explanation of each service as well as what the potential cost of using the service might be.
Amazon Elastic Compute Cloud (EC2)
Amazon EC2 provides secure, resizable compute capacity in the cloud which basically amounts to users renting virtual machines. Each virtual machine, which is called an “instance,” is then loaded with the operating system of the user’s choice and can be used to run applications, to store and process data, and to host websites. Amazon EC2 can also be used to launch apps quickly and efficiently and to manage them across multiple servers.
Amazon EC2 provides a wide selection of instance types which include the following:
- Amazon EC2 A1 Instances. Powered by AWS’s custom-designed Graviton2 processors. They are optimized for scale-out workloads such as containerized microservices, web servers, gaming, and media processing.
- Amazon EC2 C5 Instances. Optimized for compute-heavy workloads. They are the ones to consider for high-performance computing, machine learning, and video encoding.
- Amazon EC2 M5 Instances: Designed for general purpose workloads such as web servicers, batch processing, and gaming.
- Amazon EC2 R5 Instances. Optimized for memory-intensive workloads such as in-memory database, distributed web scale in-memory caches, and real-time big data analytics.
- Amazon EC2 T3 Instances. Designed for burstable workloads such as web servers, development environments, and small databases.
For these instances, the user can choose from varying combinations of CPU, memory, storage, and networking capacity. This allows the user to pick the mix of resources that will best meet their needs. It also provides users with a range of security and networking options which allows them to configure their instances to meet their specific security and networking requirements. Amazon EC2 is designed to help businesses scale and grow by providing access to as much power as they need on demand and by charging for only the memory that is used. It also completely eliminates the need for expensive hardware that can take long amounts of time to set up and configure.
AWS offers a free tier of EC2 Linux and Windows micro instances for the first 12 months of service which includes 750 hours of service per month. EC2’s prices vary depending on the instances chosen and the time you spend using the instance. They charge by the hour or the second depending on the instance you run. There are no upfront payments or commitments required. To save money, AWS also offers spot instances. Spot instances use spare Amazon EC2 computing capacity at a huge discount. You can also sign up for their savings plan, which will provide a discount for using a consistent amount of usage over an extended period of time. To qualify for the savings plan, you do have to sign a commitment.
Amazon Elastic Block Storage (EBS)
Amazon EBS provides block-level storage for the data associated with the applications that are run by Amazon EC2. It is basically a virtual hard drive. Amazon EBS stores data that needs to be accessed quickly and frequently. This data can include databases, log files, application data, and media files and is persistent. This means that the data will remain there even if the computer or server it is being served from is powered down.
Amazon EBS tends to be more reliable than traditional hard drives and has a number of other advantages:
- It can also be accessed from anywhere since the information is stored on the cloud.
- It can be resized without taking the instance that is being used offline.
- It can be backed up and restored with just a few clicks.
- The data on an EBS system can be moved from one EC2 instance to another.
In order for Amazon EBS to be used with an instance, a user must determine the volume or capacity that is needed and attach it to an instance in Amazon EC2.
AWS offers a free tier of EBS which includes 30 GB of storage per month in addition to 2 million input/output operations per second (IOPS) and 1 GB of snapshot storage. Snapshot storage are point-in-time copies of your block data. If you go over the 30GB of free storage, the standard charge is $0.05/GB-month. EBS also offers different types of storage, all of which come with their own price.
Amazon Simple Storage System (S3)
Amazon S3 is a cloud storage platform that provides an easy way to store and retrieve files from the cloud. It can be accessed anywhere there is an internet connection and is ideal for storing large amounts of data such as photos, videos, music, and documents among other files. It is also cost effective because the user only pays on the actual amount of data being stored.
Data stored using S3 are placed into large “folders” called buckets. To use S3, you create a bucket, assign it a name, set its permissions and access controls, and then assign data to it. The user can control who has access to their data and set up automatic backups. The items placed in the bucket are encrypted, highly secure, and are available via the internet using HTTP.
When using S3, you pay to store items in your buckets, and the rate you’re charged has many variables to consider. Those variables include the size of the items you’re storing, for how long you are storing them. S3 also has different storage classes which are based on how often you need to access your data, and the rate varies depending on the class or classes you choose. AWS offers a pricing calculator that will help you get an estimate of the AWS services you intend to use.
Amazon Relational Database Service (RDS)
Amazon RDS is a cloud-based service that provides users with a relational database for their applications. In a relational database, data is organized into tables with columns and rows. The columns represent attributes of data and the rows contain records or instances with those attributes. This allows users to quickly and easily access data from multiple sources without needing to search through multiple tables or needing to install and manage a database. Amazon RDS also allows users to easily replicate and make backups of their data.
Amazon charges for RDS services based on the total data that is transferred from all sources for backups, replication, and access over the Internet. The price is also dependent on the instance types you have, your database engine, and the regions in which the data is stored. Using RDS can sometimes become a bit somewhat pricey. If you are on a budget or just wish to avoid the cost, you can look into using MySQL instead and determine whether it may suit your needs. MySQL is open-source and free, but it requires users to have a good understanding of database concepts and administration. MySQL will not always be a suitable alternative, however, and RDS does charge to run MySQL. Plus, switching from one relational database service to the other can be difficult, costly, and result in lost data, so you may want to wisely choose which service to use. It is often best to choose which one you believe will suit your needs and then stick with it.
Matraex is a premier app and software development company located in Boise, Idaho. We want to help you become informed in app development concepts so you can make informed decisions and be a consumer who is “in the know”. Feel free to leave us a question on our Google Business Profile, contact us with your questions, or leave a message in the chat feature on our website. We look forward to answering your questions.
Sign up to receive answers to your questions delivered directly to your inbox!