If you don't use their proprietary offerings, you lose most of the benefit of going to the cloud over being on prem.
If all you're doing is hosting a bunch of VMs on the cloud, what's the point?
Yes, be mindful as a developer I do take a few common sense steps...
1. ElastiCache uses the Memcached protocol so you're really not tying yourself to anything.
2. Lambda - think the "ports and adapters" pattern. Treat your Lambda function as a controller and keep all of your business logic separate.
3. Logging - all of our logging that goes to CloudWatch goes through Serilog. We can switch out the sink easily enough to anything.
4. Simple Queueing System - don't have calls to SQS all over your code, have it in one central module (in our case a Nuget package).
5. Autoscaling - have a shutdown method and wrap the calls that check when your instance is being shut down as events.
6. AWS KMS - We use Hashicorp's Vault and use AWS as a "backend".
7. Cognito - authentication. It's just Middleware for .Net Core that creates a principal before every request. It would be quite easy to add another piece of middleware.
If all you're doing is hosting a bunch of VMs on the cloud, what's the point?
Yes, be mindful as a developer I do take a few common sense steps...
1. ElastiCache uses the Memcached protocol so you're really not tying yourself to anything.
2. Lambda - think the "ports and adapters" pattern. Treat your Lambda function as a controller and keep all of your business logic separate.
3. Logging - all of our logging that goes to CloudWatch goes through Serilog. We can switch out the sink easily enough to anything.
4. Simple Queueing System - don't have calls to SQS all over your code, have it in one central module (in our case a Nuget package).
5. Autoscaling - have a shutdown method and wrap the calls that check when your instance is being shut down as events.
6. AWS KMS - We use Hashicorp's Vault and use AWS as a "backend".
7. Cognito - authentication. It's just Middleware for .Net Core that creates a principal before every request. It would be quite easy to add another piece of middleware.