How sous-chefs/aws works
The aws cookbook lets Chef cookbook authors declare AWS infrastructure state through Chef resources; those resources reconcile the declarations against AWS services. The README lists the principal service capabilities, while sampled code confirms reconciliation details for DynamoDB tables, EC2 security groups and EBS volumes, and Route53 records. Authentication and EC2 client setup are a shared internal layer. Other resource-to-service links reflect the documented capabilities and service-specific resource names; their implementation was not sampled.
Main entry points: ec2.rb EC2 client and credentials · ebs_volume.rb EBS volumes · security_group.rb Security groups · route53_record.rb Route53 records
Components 27
Compute and networking
- Autoscaling
resources/autoscaling.rb - EBS volumes
resources/ebs_volume.rb - Elastic IPs
resources/elastic_ip.rb - Load balancer
resources/elastic_lb.rb - Termination protection
resources/instance_term_protection.rb - Secondary IPs
resources/secondary_ip.rb
Identity and security
- Instance roles
resources/instance_role.rb - Security groups
resources/security_group.rb - IAM users
resources/iam_user.rb - IAM groups
resources/iam_group.rb - IAM policies
resources/iam_policy.rb - IAM roles
resources/iam_role.rb - Resource tags
resources/resource_tag.rb
Data and messaging
- DynamoDB tables
resources/dynamodb_table.rb - DynamoDB reconciler
providers/dynamodb_table.rb - Kinesis streams
resources/kinesis_stream.rb - S3 buckets
resources/s3_bucket.rb - S3 files
resources/s3_file.rb - SSM parameters
resources/ssm_parameter_store.rb
Operations and DNS
- CloudFormation stack
resources/cloudformation_stack.rb - CloudWatch
resources/cloudwatch.rb - Instance monitoring
resources/instance_monitoring.rb - Route53 records
resources/route53_record.rb - Route53 zones
resources/route53_zone.rb
Other components
- Chef cookbook author
- EC2 client and credentials
libraries/ec2.rb - Amazon Web Services
Connections 48
- Chef cookbook author → CloudFormation stack: declares
- Chef cookbook author → CloudWatch: declares
- Chef cookbook author → Instance monitoring: declares
- Chef cookbook author → Route53 records: declares
- Chef cookbook author → Route53 zones: declares
- Chef cookbook author → Autoscaling: declares
- Chef cookbook author → EBS volumes: declares
- Chef cookbook author → Elastic IPs: declares
- Chef cookbook author → Load balancer: declares
- Chef cookbook author → Instance roles: declares
- Chef cookbook author → Termination protection: declares
- Chef cookbook author → Secondary IPs: declares
- Chef cookbook author → Security groups: declares
- Chef cookbook author → IAM users: declares
- Chef cookbook author → IAM groups: declares
- Chef cookbook author → IAM policies: declares
- Chef cookbook author → IAM roles: declares
- Chef cookbook author → Resource tags: declares
- Chef cookbook author → DynamoDB tables: declares
- Chef cookbook author → Kinesis streams: declares
- Chef cookbook author → S3 buckets: declares
- Chef cookbook author → S3 files: declares
- Chef cookbook author → SSM parameters: declares
- DynamoDB tables → DynamoDB reconciler: dispatches
- EBS volumes → EC2 client and credentials: uses client
- Security groups → EC2 client and credentials: uses client
- Route53 records → EC2 client and credentials: uses credentials
- EC2 client and credentials → Amazon Web Services: configures SDK access
- CloudFormation stack → Amazon Web Services: manages stacks
- CloudWatch → Amazon Web Services: manages metrics
- Instance monitoring → Amazon Web Services: configures monitoring
- Route53 records → Amazon Web Services: changes records
- Route53 zones → Amazon Web Services: manages zones
- Autoscaling → Amazon Web Services: manages scaling
- EBS volumes → Amazon Web Services: manages volumes
- Elastic IPs → Amazon Web Services: manages addresses
- Load balancer → Amazon Web Services: manages balancing
- Instance roles → Amazon Web Services: manages instance roles
- Termination protection → Amazon Web Services: sets protection
- Secondary IPs → Amazon Web Services: manages IPs
- Security groups → Amazon Web Services: reconciles rules
- IAM users → Amazon Web Services: manages users
- IAM groups → Amazon Web Services: manages groups
- IAM policies → Amazon Web Services: manages policies
- IAM roles → Amazon Web Services: manages roles
- Resource tags → Amazon Web Services: manages tags
- DynamoDB reconciler → Amazon Web Services: reconciles tables
- Kinesis streams → Amazon Web Services: manages streams