Blog

All Blog Posts for AWS


  • Icinga 2 - monitor AWS EC2 instances dynamically

    Icinga 2 - monitor AWS EC2 instances dynamically

    Now days it is a challenge to monitor instances which are created/deleted on the fly (instances in auto scaling group for example), so how we could accomplish this with Icinga 2? Well, in this blog we will provide some hints, how to have such configuration without writing complicated AWS CLI/API calls or lambda functions, but configuring mainly icinga.

    READ MORE
  • Performance tuning of a fully automated AWS environment started only on schedule

    Performance tuning of a fully automated AWS environment started only on schedule

    We’ve been contacted to conduct a tuning for performance for a huge AWS environment. It is used to host the server side of a mobile application for a TV show that gives the ability to its viewers to vote on various questions during the show. Since the show is scheduled only once per week, it’s a perfect use case for a cloud on-demand environment, that is only being raised during the show, then after it ends, all VMS are shutdown or destroyed. In this way costs are cut to the their minimum, no need to keep expensive private physical servers at all times in a private data center for this.  You can imagine the load from the full set of viewers who are most of the times between 200 000 and 300 000 and they need to vote in parallel during one minute for a certain question. This could be a serious challenge for the system.

    READ MORE
  • High availability (Multi-master) Kubernetes cluster hosted on AWS

    High availability (Multi-master) Kubernetes cluster hosted on AWS

        This is a first post of a mini-series dedicated to running Kubernetes hosted on AWS. First post will be about the considerations we have made when proposing production ready and Enterprise grade Kubernetes environment to our clients. I will go more technical, with the tools and AWS services we are using, in the next blog post, here I will try to cover what problems we are solving.     High availability is a characteristic we want our system to have. We aim to ensure an agreed level of operational performance (uptime) for a higher than normal period. These are the principles we follow when doing the system design:  - Elimination of single points of failure. This means adding redundancy to the system so that failure of a component does not mean failure of the entire system.  - Reliable crossover. In redundant systems, the crossover point itself tends to become a single point of failure. Reliable systems must provide for reliable crossover.  - Detection of failures as they occur. If the two principles above are observed, then a user may never see a failure. But the maintenance activity must.        Below graph shows the Kubernetes Master components used for setting up a cluster. Will go thorough them one by one :

    READ MORE