(aws_elasticloadbalancingv2_targets): Add a DNS Address Target
- Dominant language
- TypeScript
- Stars
- 12.9k
- Forks
- 4.6k
- Avg merge
- 2d 3h
- Merged PRs (30d)
- 83
Description
### Describe the feature
Allows users to specify a DNS address for a Target Group as a wrapper around Ip Targets. This feature would set up some infrastructure behind the scenes to manage registration and deregistration of new valid and old invalid IP addresses.
### Use Case
There are cases where I need to put RDS and Redshift clusters behind a Network Load Balancer. I'm always annoyed when I need to manually set up custom logic to fetch the IP addresses to then pass into the target group. I'd like to not have to do that.
### Proposed Solution
Add a `DnsTarget` for ELBv2 Target Groups and set up the following infrastructure behind the scenes
1. An EventBridge Event that fires at an adjustable rate
2. A DynamoDB Table that stores IpAddress info
3. A Lambda Function fetches info from the DDB table and performs a lookup on the address
4. The Lambda Function calculates the differences in the Addresses and updates the Target group with the current IP Addresses
### Other Information
_No response_
### Acknowledgements
- [X] I may be able to implement this feature request
- [ ] This feature might incur a breaking change
### CDK version used
2.65.0
### Environment details (OS name and version, etc.)
N/A
Contributor guide
Research direction
Start by reviewing the aws_elasticloadbalancingv2_targets target-group APIs and the proposed EventBridge, DynamoDB, and Lambda components. Confirm how DNS targets should be configured and how address changes are registered and deregistered. Done means a DnsTarget wrapper can track valid IP addresses for RDS or Redshift endpoints and keep the target group current.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- aws, typescript
- Domain
- cloud, infrastructure
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100