The main purpose of this blog is, as the name suggests, is to share the main advantages of using AWS in RemitRix, but before we start talking advantages, we should probably explain what is AWS.
Amazon Web Services is a cloud computing platform that offers a variety of services including Infrastructure as a Service (IaaS), Platforms as a service (PaaS) and Software as a service (SaaS). The great thing about AWS, other than the obvious fact that everything is cloud based and therefore can be used by anyone, anywhere in the world, is that it has many different products and services, allowing the users maximum flexibility and ability to use, and pay, only for what they really need, in the exact way they need it.
For us, 3 services offered by AWS are the key to the decision to use the service: Amazon Elastic Compute Cloud (EC2) , Amazon Simple Storage Service (Amazon S3) and Amazon Relational Database Service (RDS):
- Put simply, “EC2 instances” are virtual computers (machines) which are priced by the hour. Amazon offers a wide selection of instance types, which differ in their CPU, storage, memory and networking. Each user can choose the instance that is best suited to her use case, and of course, use several instances for several different use cases. When she is not using the instance – she is not paying for it and hence another advantage of the service – its affordability
- Amazon Simple Storage Service (S3) is as simple as it sounds – cloud space where users can store their inputs, outputs, data, models and everything else they want to. The amounts of data that can be stored on S3 are massive, the price is cheap and everything is stored securely, allowing the user to easily choose which other users, if any, will have access to her entire bucket, or to any specific part of parts of it.
- Amazon’s RDS is the third service we enjoy in AWS. This is a web service that operate relational database in the cloud, from which we can easily use anyone of the most popular databases such as MySQL, Oracle or SQL Server. For us, Microsoft SQL Server 2017 was the chosen database, but really, since all these databases are fully managed by AWS (including backups, software patching, automatic failure detection and recovery), any of the options is as good as any other and the final decision is mainly depended on personal preferences. AWS management saves us the need to buy expensive servers and spend more time and money on managing them.
Ok, so now we know at least the gist of what is AWS (and make no mistakes, this is truly just the tip of the iceberg.. you can read much more about AWS here, here and here), and we’re also starting to understand what is so appealing about it: so far we’ve got accessible from anywhere, flexible and affordable.
Let’s delve into a bit more details as far as the advantages goes:
- Security – we work with personal data of hundreds of thousands of individuals, insured by our costumers. With this sort of data, our top priority is keeping the data private and secure. Of course, insurance regulators around the world understand the need for security as well, and rightfully demand that all companies with access to personal data will be compliance with strict security demands. AWS has us covered with several solutions to increase security and ensure privacy of data and code: Their IAM (Identity and Access Management) allows us to securely control access to the resources for the different users we have (employees or costumers). We can easily control who can use the resources (authentication) and what resources they can use and in what ways (authorization), so not only do we prevent anyone outside the company accessing our resources, but we can create sub-groups within the company’s employees to make sure each employee only has access to the resources he needs for his day-to-day work. In addition, we use AWS’s VPC to host our services on a private network which is not accessible from the internet, but can communicate with the resources in the same network, which adds yet another level of security: we have full control over virtual networking environment by access to IP address ranges, creating subnets and configuring routing and access control lists.
- Finally, AWS offers a MFA (Multi Factor Authentication) process when logging in to the console, so even if your computer is stolen or lost – no one can access your amazon account.
- Deployment and Performance – Right from the start of our use of AWS, we were excited about the short and easy deployment process. Using Amazon’s AMI, we were able to start a machine with all of our required tools, settings and packages within a few minutes from opening the service. Add to it how fast Amazon’s machines are, their guaranteed availability of resources and the performance power of S3 and you get a true hard-to-resist service.
- Flexibility – Flexibility and the ability to make changes on the fly is a key requirement for any young start-up. The business, the investors’ requirements, the costumers desires, our own developers ideas – everything is always changing and evolving. We can’t afford to have every change take a few months to implement. Working with AWS, we get to choose the operating system, programming language, web application platform and database we want to work with. And if we change our minds, or if we need an additional programming language or application – we can be pretty sure AWS has us covered. This flexibility eases the migration process for existing applications while preserving options for building new solutions and enables us to work with multiple clients with different requirements and demands easily.
- Pricing – as hinted above, AWS allows the user to pay only for what she used. It’s true for EC2 instances as well as for S3 storage, RDS and actually to all other services offered by AWS. In addition, amazon offers “free tier” machines on which we can perform tests and checks on amazon’s API for free, and start paying only when we start working on the full data sets. For a small startup such as ourselves, where money is everything, this is a big deal. Using AWS allowed us to save money on traditional hardware, which for the most part, goes utilized for 90% of its life–cycle. Lower costs for us means lower costs for our clients.
- Wisdom of the crowds – Millions of customers , including huge enterprises, startups and even government agencies are currently using AWS services, and trusting them with their data and products. This is not a coincidence. This is the result of what is a truly full and reliable solution for most companies’ needs and requirements. Further more, the fact the AWS is so commonly used makes the usage of it even more appealing: the developers community is big, and getting bigger, so hiring experts in easier than with other cloud platforms, finding solutions and suggestions online when you are facing a problem is as easy as pie and glitches or problems with no documentation are so rare you really don’t have to worry about them.
OK, but what’s in it for our costumers?
Well, first of all – peace of mind knowing that their data is protected and that it is extremely unlikely they suffer from a server shutdown or any other long term problems with our web application.
Second, working on the cloud means we don’t have to physically be close to our costumers to give them great services. Even though we are based in Israel, we can have costumers in USA, Japan and, of course, Europe. More over, the web based application allows the employees to access the product from wherever they are, be that at the company’s offices, at home, or on a business trip or conference, just as long as they have their security credentials.
And then there’s the money – when we pay less we can charge less, and we do. Our pricing takes into account that we only pay for what we need so we are happy to pass it forward and let our clients pay only for what they need.