For a Lambda to access an AWS RDS database instance, it needs to be in the same VPC as the RDS instance. However, if you haven’t created and assigned a role with persmissions for the Lambda to access the VPC, you’ll see this error when creating your Lambda:
To fix this per steps in the tutorial here, create a role with permission ‘AWSLambdaVPCAccessExecutionRole’.
I’ve created an RDS Oracle instance and I want to connect to it from an EC2 instance. I created both in the same VPC.
By default, even though they’re in the same VPC, the EC2 will not be able to connect to the Oracle instance because you still need to configure the Security Group to allow inbound traffic.
Let’s summarize the setup like this – both are in VPC1:
EC2 : Security Group SG-111
RDS Oracle instance: Security Group SG-222
Edit SG-222 for the Oracle instance, and add an inbound rule. Instead of adding a CIDR block range, start typing SG-111… and it will list matching SGs with that id – click to select the id for Security Group associated to the EC2. You’ve now allowed inbound traffic to your RDS Oracle instance from the EC2.
AWS (as in any cloud provider) for spinning something up ondemand for a quick test. Need an Oracle database? Couple of clicks and you’re done.
With the RDS options on AWS be careful of the EC2 type if you’re trying to keep costs down. For example if you leave the DB Instance Size at ‘Standard’, you only get db.m4 and db.m5 instances which are definitely not your cheapest options:
If you select ‘Burstable’, the smallest instance size you can select is a db.t3.small:
If you’re usage for development is going to be low, and/or if you can stop the instance when you’re not using it (and only pay for storage), for example at 10% usage for a month you can get the cost down to around $8:
I’m looking for a low cost managed db in the cloud for a small project, so thought I’d take a look at setting up an Aurora Serverless db, as depending on usage (and my usage will be very low) it looks like it’s definitely the cheapest of all AWS RDS options.
From the Console, from RDS, I pressed the ‘Create Database’ button:
If you select Aurora, the Serverless option is way down the page here:
I kept all the defaults, but changes the capacity to the smallest options:
After taking note of generated credentials and pressing the last ‘Create Database’ button, the dialog said it would take a couple of minutes to provision, and it sure did. I wasn’t timing it but it was at least 10 minutes before it was ready. This was probably the longest I’ve every waiting to provision anything on AWS.
Once it was ready, I tried to use the online query editor, but looks like there’s an additional step to create a user:
This option is under Network and Security:
After applying the change with the immediate option, I created a test table: