Our problem with micro-services using AWS ECS

We are into a startup and as a trending technology our predecessors used micro-services for our new website.

It is a good move if we see the benefits of micro-services like

  • scaling a website gets much easier
  • loosely coupled
  • easy for developing
  • deployment can focus on each service
  • can be used different technologies for each service
  • testing can be concentrated on one service

Here we are considered the problems we may face in future and developed the application thinking about the benefits of micro-services.

Point to be noted: We also have to think about – does these problems will be a big issue for us compared to the disadvantages of the micro-services?

NOTE: Our Website is a less traffic website and we are getting our clients one by one. It is not a heavily used website. Keep this in mind while reading this article.

We faced issues following issues with micro-services:

  • Complexity – more complex for deployment and maintenance
  • Cost – AWS ECS costs more for all the micro-service hosting for a less traffic website
  • Even though these are micro-services it has some dependency between them that we cannot avoid. Be ready to deal with this.
  • Sometimes one service (AWS Container) goes offline and starting over! So we get the No Service issue in the website.
  • Very difficult to go back to monolith application even clubbing 3-4 services together, as they use different software or software versions.

So be careful if you are planning to use micro-service architecture for a less used website or as a starting of your business. Take your time and think if micro-service architecture suits your business and your current situation.

The fact: It should not take that much cost for a website which has less traffic. Be ready to pay minimum amount for hosting with micro-services.

Set up:

  • Used AWS ECS (ec2 launch type) with services and task definitions defined
  • 11 Micro-services, 11 containers are spinning
  • Cost: Rs.12k ($160) per month

Workaround:

  • Consider using AWS Fargate type but not sure these issues get solved
  • Deploy all the services in one EC2 server without using ECS

Author: Abhilash

Hey! This is Abhilash - A Ruby developer for years, specialised on web development, working as a freelance Ruby Developer. I also worked on frameworks such as Angular, Sinatra, Laravel etc. Mainly working on Ruby On Rails platform since 2010. This blog is about Ruby, Ruby On Rails and other subjects that I have had a chance to work on. You can contact me here: abhilash.amballur@gmail.com LinkedIn: www.linkedin.com/in/abhilashak Abhilash AK

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: