Came across some great AWS tips (care of Devops Weekly)
The list is below - go to this website for the full details:
- Application Development
- Store no application state on your servers.
- Store extra information in your logs.
- If you need to interact with AWS, use the SDK for your language.
- Have tools to view application logs.
- Operations
- Disable SSH access to all servers.
- Servers are ephemeral, you don't care about them. You only care about the service as a whole.
- Don't give servers static/elastic IPs.
- Automate everything.
- Everyone gets an IAM account. Never login to the master.
- Get your alerts to become notifications.
- Billing
- Set up granular billing alerts.
- Security
- Use EC2 roles, do not give applications an IAM account.
- Assign permissions to groups, not users.
- Set up automated security auditing.
- Use CloudTrail to keep an audit log.
- S3
- Use "-" instead of "." in bucket names for SSL.
- Avoid filesystem mounts (FUSE, etc).
- You don't have to use CloudFront in front of S3 (but it can help).
- Use random strings at the start of your keys.
- EC2/VPC
- Use tags!
- Use termination protection for non-auto-scaling instances. Thank me later.
- Use a VPC.
- Use reserved instances to save big $$$.
- Lock down your security groups.
- Don't keep unassociated Elastic IPs.
- ELB
- Terminate SSL on the load balancer.
- Pre-warm your ELBs if you're expecting heavy traffic.
- ElastiCache
- Use the configuration endpoints, instead of individual node endpoints.
- RDS
- Set up event subscriptions for failover.
- CloudWatch
- Use the CLI tools.
- Use the free metrics.
- Use custom metrics.
- Use detailed monitoring.
- Auto-Scaling
- Scale down on INSUFFICIENT_DATA as well as ALARM.
- Use ELB health check instead of EC2 health checks.
- Only use the availability zones (AZs) your ELB is configured for.
- Don't use multiple scaling triggers on the same group.
- IAM
- Use IAM roles.
- Users can have multiple API keys.
- IAM users can have multi-factor authentication, use it!
- Route53
- Use ALIAS records.
- Elastic MapReduce
- Specify a directory on S3 for Hive results.
- Miscellaneous Tips
- Scale horizontally.
- Your application may require changes to work on AWS.
- Always be redundant across availability zones (AZs).
- Be aware of AWS service limits before you deploy.
- Decide on a naming convention early, and stick to it.
- Decide on a key-management strategy from the start.
- Make sure AWS is right for your workload.