Recently I needed to call my lambda function when CRUD happen on my aurora db table. AWS Aurora supports accesing AWS services.
So If you want integrate such architecture , you can follow following step by step guide to make it work.
1) Create RDS & Lambda full access Role with principal as "rds.amazonaws.com". ( arn:aws:iam::<account_id>:role/RDS-Lambda-Access )
2) Edit aurora parameter group and assign ARN of 1)
3) Edit aurora Clustor and also from `Managed IAM Roles` assign role created in 1).
4) Rebooted aurora instance.
If Your lambda function didn't required to call third party services like firebase or payment gateways etc, you can configure it to use default aws vpc which don't have internet access.
But If you required to have internet access as well in VPC , you need to set up NAT (
network address translation gateway) , IGW (
internet gateway) , Route Tables with their subnets as attachments.
Note : Some of these services are chargeable .
Here is step by step guide to setup lambda for second case.
We going to have total 3 Subnets. 2 Private subnet and 1 public subnet.
In Lambda Function > Configuration > VPC > Subnets we going to have only two private subnets selected. public subnet won't be selected here.
1) Lets say your default vpc has private ip address as 192.168.0.0/16. or create new one.
2) Create Private Subnets :
Go to AWS VPC > Subnets > Create two private subnets with CIDR as 192.168.20.0/24 and 192.168.30.0/24
For Docker installation refer : https://docs.docker.com/installation/ubuntulinux/
Connect to Digital Ocean server :