Database Posts

Using IAM Authentication to Access Amazon RDS MySQL Databases from Python AWS Lambda Functions

Amazon RDS Iam Authentication

Where do you keep your DB credentials in your AWS Lambda functions that you use to access your Amazon RDS databases? Hardcoded? No! Environment variables? Well, you might be using AWS Secrets Manager, right? It would be great! But did you know that you can also use the IAM role of your AWS Lambda function and its temporary credentials to do this?

Yes, there are different ways to manage your database credentials in your AWS Lambda functions. In this post, I will talk about one of the most secure methods, using IAM authentication of Amazon RDS, with an example of an AWS Lambda function developed in Python. I will use an Amazon RDS - MySQL DB instance, but IAM authentication is also supported on PostgreSQL DB instances as well. Read more at Using IAM Authentication to Access Amazon RDS MySQL Databases from Python AWS Lambda Functions post.

Why Choose Amazon Aurora Over Regular RDS?

Aurora vs Regular RDS

Amazon RDS is the managed relational database solution of AWS. You leave the setup and maintenance of your database to AWS and focus on using it with the help of RDS. You can launch and maintain community edition MySQL, PostgreSQL databases as well as commercial Oracle and SQL Server databases on Amazon RDS. However, in a few years ago, AWS developed its own cloud-native, enterprise-level database engine called Amazon Aurora.

Aurora provides MySQL and PostgreSQL compatibility. In this post, I will discuss some of its unique features and why you should choose it instead of community edition MySQL and PostgreSQL databases.

Recently, AWS also launched the serverless and multi-master versions of Aurora, and any of these features can alone be the reason to choose it. However, in this post, we will focus on single-master Aurora deployment and its advantages over RDS. Read more at Why Choose Amazon Aurora Over Regular RDS? post.

Creating a Serverless API Using SAM CLI and Ruby for AWS Lambda to Access Amazon RDS MySQL

Using Ruby for AWS Lambda and Creating a Serverless API to Access Amazon RDS MySQL

Having a Ruby on Rails background, I got excited to try Ruby to code my AWS Lambda functions when its support for AWS Lambda was announced at Re:Invent 2018. Finally, to try Ruby on AWS Lambda, I developed a simple API using AWS Serverless Application Model (SAM) to access an Amazon RDS MySQL database. I wanted to compare it with my experiences of doing this with Python and Node.js.

Although it may seem simple, installing mysql2 gem as a dependency proved itself to be challenging than others, because it has native extensions and depends on the environment you use bundler. As always, Docker simplifies our job by providing a similar environment that our AWS Lambda function runs inside.

In this post, I will make an introduction to AWS SAM CLI and using Ruby for AWS Lambda functions. Let’s begin! Read more at Creating a Serverless API Using SAM CLI and Ruby for AWS Lambda to Access Amazon RDS MySQL post.

Accessing a MongoDB instance from AWS Lambda using Python

Accessing MongoDB from AWS Lambda using Python

In recent days, I made some trials for connecting to MongoDB databases from AWS Lambda functions using Python. In today’s post I will share my experiences with you and take some notes about these trials for future reference. We will install MongoDB on an EC2 instance and develop simple Python functions to access it. Let’s start! Read more at Accessing a MongoDB instance from AWS Lambda using Python post.

Running AWS Lambda Functions in a VPC and Accessing RDS

Running AWS Lambda in VPC and Accessing RDS

AWS Lambda allows us running code without maintaining servers and paying only for the resources allocated during the code run. In most cases, we do not need to run our Lambda function in a VPC and it is recommended not to run in a VPC in these situations as a best practice. Some of examples to these are sending emails using Amazon SES or accessing a DynamoDB table.

However, to access an RDS database in your Lambda function you have to run your function in the same VPC or in a VPC that has a peering connection to the VPC of your RDS instance. In this blog post I would like to discuss about running AWS Lambda functions in a VPC and accessing a RDS MySQL database. Read more at Running AWS Lambda Functions in a VPC and Accessing RDS post.

Online Courses

AWS CodePipeline Step by Step course logo AWS CodePipeline Step by Step course logo

AWS CodePipeline Step by Step

Learn how to create CI/CD pipelines using AWS CodePipeline, CodeCommit, CodeBuild, CodeDeploy, and CloudFormation. Automate your deployments to Amazon EC2 and S3.

Click the link below to enroll with a special discount for Black Friday 2020 until December 1, 2020.

Enroll Now on Udemy!

Alternatively, use BLACK-FRIDAY-2020 coupon code during the checkout.

AWS CloudFormation Step by Step: Beginner to Intermediate course logo AWS CloudFormation Step by Step: Beginner to Intermediate course logo

AWS CloudFormation Step by Step: Beginner to Intermediate

Learn how to manage your infrastructure as code on AWS. Start creating CloudFormation stacks and writing your own templates using YAML as a beginner step by step.

This course will also be a basis for its advanced level version in the upcoming months.

Click the link below to enroll with a special discount for Black Friday 2020 until December 1, 2020.

Enroll Now on Udemy!

Alternatively, use BLACK-FRIDAY-2020 coupon code during the checkout.

RSS

Subscribe to this blog's RSS feed

Categories