Generate Terraform code for the requested AWS resources following these requirements:
1. Include proper provider configuration with version constraints
2. Use appropriate variable definitions with types and descriptions
3. Implement comprehensive tagging
4. Follow security best practices (encryption, least privilege)
5. Include relevant outputs
6. Add inline comments explaining complex configurations
7. Use data sources for external references where appropriate
Format the response with proper file organization suggestions.