Skip to main content

Posts

Serverless Kubernetes with AWS EKS

Serverless Kubernetes with Amazon EKS Serverless Kubernetes with Amazon EKS The term Serverless does not mean that there are no servers involved at all. As many people are still confused with the fairly new term… Serverless Kubernetes with Amazon EKS The term Serverless does not mean that there are no servers involved at all. As many people are still confused with the fairly new term, we would like to clarify that first; Serverless is a cloud execution model in which the cloud provider runs the server, and dynamically manages the allocation of machine resources and low-level operations. The serverless model abstracts away the complexity of running distributed systems on the cloud and provides easy to use application interfaces. Serverless offerings on AWS include AWS Lambda, DynamoDB, S3 and Fargate. In this tutorial, we are going to deploy a Serverless Kubernetes cluster on Amazon Elastic Kubernetes Service(EKS) using Cloud Development Kit(CDK) and we will leverage AWS Fargate...

Create Your Own Wake-up Call Service with AWS Pinpoint, Lambda and CDK

Create Your Own Wake-Up Call Service With AWS Pinpoint, Lambda and CDK Create Your Own Wake-Up Call Service With AWS Pinpoint, Lambda and CDK Wake-up call service is exactly what you would imagine, someone will call you to wake you up and make sure that you are awake. It is still… Create Your Own Wake-Up Call Service With AWS Pinpoint, Lambda and CDK Wake-up call service is exactly what you would imagine, someone will call you to wake you up and make sure that you are awake. It is still a common practice in hotels where hotel employees will wake you up via phone call. In this tutorial, we are going to build our own version using AWS Pinpoint, Lambda and CDK. If you haven’t heard the term CDK, it means Cloud Development Kit. It is a modern Infrastructure as a Code tool from AWS, it allows us to use common programming languages to provision cloud resources. We will be using AWS Pinpoint to make outbound phone calls, Lambda function to execute Pinpoint API call to initiate an outbo...

Highly Available Wordpress Deployment on AWS

Highly Available and Scalable Wordpress Installation on AWS Highly Available and Scalable Wordpress Installation on AWS The initial version of Wordpress was released in May 2003 and it has been nearly 17 years. Wordpress is still going strong after all these… Highly Available and Scalable Wordpress Installation on AWS The initial version of Wordpress was released in May 2003 and it has been nearly 17 years. Wordpress is still going strong after all these years, according to report WordPress powers over 1/3rd of the top 10 million sites . We can safely assume that Wordpress is not going away anytime soon. Many cloud companies are now targeting Wordpress users directly with Wordpress specific hosting. Although that might sounds optimal for the average Wordpress user, these offerings have limitations and shortcomings. Most of them provide poor hardware support and scaling a Wordpress instance can become a really hard task. We would like to treat Wordpress as a web application that ...

Manage Batch Jobs with AWS Batch

Manage Batch Jobs with AWS Batch Manage Batch Jobs with AWS Batch AWS Batch allows us to run batch workloads without managing any compute resources. Although newer services such as ECS might be more… Manage Batch Jobs with AWS Batch AWS Batch AWS Batch allows us to run batch workloads without managing any compute resources. Although newer services such as ECS might be more appealing, we are going to take a deeper look at what AWS Batch provides and along the way we will deploy a sample Batch example using AWS CDK. In case you haven’t heard CDK, we would recommend checking our series of tutorials related to CDK. AWS Batch dynamically provisions the optimal quantity and type of computing resources (e.g., CPU or memory optimized instances) based on the volume and specific resource requirements of the batch jobs submitted. Spot instances can also be leveraged to save some money. After your job is finished, Batch can terminate the instances according to your needs. Let’s deploy a sim...

Managed ETL using AWS Glue and Spark

Managed ETL using AWS Glue and Spark Managed ETL using AWS Glue and Spark ETL, Extract, Transform and Load workloads are becoming popular lately. Increasing number of companies are looking for solutions to get… Managed ETL using AWS Glue and Spark ETL, Extract, Transform and Load workloads are becoming popular lately. An increasing number of companies are looking for solutions to solve their ETL problems. Moving data from one datastore to another can become a really expensive solution if the right tools are not chosen. AWS Glue provides easy to use tools for getting ETL workloads done. AWS Glue runs your ETL jobs in an Apache Spark Serverless environment, so you are not managing any Spark clusters by yourself. In order to experience the basic functionality of Glue, we will showcase how to use Glue with MongoDB as a data source. We will be moving data from MongoDB collections to S3 for analytic purposes. Later on, we can query the data in S3 using Athena, interactive query ser...

DNS Failover with Route53

DNS Failover with Route53 DNS Failover with Route53 Route 53‘s DNS Failover feature gives you the power to monitor your website and automatically route your visitors to a backup site if it… DNS Failover with Route53 Route 53 ‘s DNS Failover feature gives you the power to monitor your website and automatically route your visitors to a backup site if the main target is not healthy. To showcase this feature, we are going to deploy an application, which we built in this blog post , to two different AWS regions. We are also going to set active-passive failover in Route53, then we will remove the application from one region and we’ll observe how DNS queries will react to the changes. AWS describes the failover scenarios in 3 different categories Active-passive : Route 53 actively returns a primary resource. In case of failure, Route 53 returns the backup resource. Configured using a failover policy. Active-active : Route 53 actively returns more than one resource. In case of failure...

URL Shortener with DocumentDb(MongoDB Compatible), Lambda and CDK

Create and Deploy Simple URL Shortener with AWS CDK and DocumentDB Create and Deploy Simple URL Shortener with AWS CDK and DocumentDB In this tutorial we will walk you through creating and deploying a simple URL shortener application using AWS CDK, DocumentDB, Lambda and… Create a Simple URL Shortener with AWS CDK and DocumentDB In this tutorial, we will walk you through creating and deploying a simple URL shortener application using AWS CDK , DocumentDB , Lambda and API Gateway . DocumentDB is a document database which is fully compatible with MongoDB 3.6 API . DocumentDB takes lots of inspiration from other AWS Database Services, in which storage and compute layers are separated. This allows fairly simple scalability and high-performance throughput. CDK is a new way to manage AWS resources using common programming languages. Let’s get started. In case you haven’t installed AWS CDK yet, here is how to do it. npm install -g aws-cdk Let’s build the application logic first This ...

Concurrency With Boto3

Concurrency with Boto3 Concurrency with Boto3 Asyncio provides set of tools for concurrent programming in Python. In a very simple sense it does this by having an event loop execute a… Concurrency in Boto3 Asyncio provides a set of tools for concurrent programming in Python . In a very simple sense, it does this by having an event loop execute a collection of tasks, with a key difference being that each task chooses when to yield control back to the event loop. Asyncio is a good fit for IO-bound and high-level structured network code. Boto3 (AWS Python SDK) falls into this category. A lot of existing libraries are not ready to be used with asyncio out of the box. They may block, or depend on concurrency features not available through the module. It’s still possible to use those libraries in an application based on asyncio by using an executor from concurrent.futures to run the code either in a separate thread or a separate process. The run_in_executor() method of the event...