Click on the Configuration section within the environment to explore settings for Software, Instances, Capacity, Load balancer, Security, and Monitoring.
Check Instance types and Auto Scaling settings to ensure they match the operational requirements of your application.
Monitoring and Logging:
Navigate to the Monitoring tab to view key metrics like CPU usage, network traffic, and request counts. Monitoring these metrics helps identify operational issues and ensures the environment runs smoothly.
Event Logs:
Select the Events section to review recent events related to your environment, such as instance launches, health status changes, and configuration updates. Reviewing events can help you detect and resolve operational issues promptly.
Application Versions:
Under the Application versions tab, review the versions of the application deployed in the environment. Proper version management allows for easy rollbacks if operational issues occur with new versions.
In the Configuration section, explore the Security settings, including Key pairs for SSH access and IAM Instance Profile used by instances. Ensure that the IAM roles follow the principle of least privilege.
Network Configuration:
In the Configuration section, check the VPC and subnets used by the environment. The environment should run within a secure VPC with subnets and security groups configured to restrict access.
Load Balancer Security:
If your environment uses a load balancer (under the Load balancer configuration), ensure it is configured to use HTTPS with valid SSL/TLS certificates to secure data in transit.
Environment Variables:
Review the Software section within Configuration to check for Environment properties. Sensitive data, such as API keys or credentials, should not be stored directly in environment variables. Instead, use AWS Secrets Manager or Parameter Store to securely manage sensitive information.
In the Configuration section, go to the Capacity settings to verify if Auto Scaling is enabled. Auto Scaling automatically adjusts the number of running instances based on demand, improving application availability and reliability.
Health Monitoring:
In the environment overview, check the Health status to ensure that Elastic Beanstalk is actively monitoring the application’s health. The Monitoring tab provides more detailed metrics, such as CPU usage and response times.
Application Versions:
In the Application versions tab, review how application versions are managed. Using version control allows you to roll back to a previous, stable version if a deployment fails.
Enhanced Health Monitoring:
If Enhanced health monitoring is enabled (check in the Configuration > Monitoring section), it provides more granular health status checks, helping to quickly identify and resolve issues.
In the Configuration section under Capacity, review the Instance type. Ensure that you have selected the most cost-effective instance type that meets the application's performance requirements.
Auto Scaling:
Under the Capacity settings, check the Auto Scaling configuration. Properly configured auto-scaling policies ensure that you are not running more instances than necessary, optimizing costs by adjusting capacity based on real-time demand.
Load Balancer and Network Costs:
In the Load balancer configuration, verify that only the required Availability Zones are used. Reducing the number of zones for non-critical applications can help lower costs.
Lifecycle Policies for Application Versions:
In the Application versions section, ensure that Lifecycle policies are in place to delete old, unused versions. This practice helps manage storage costs by retaining only necessary versions.
Under Configuration > Capacity, review the Scaling triggers for Auto Scaling. Ensure that the scaling policies are based on relevant metrics (e.g., CPU, memory) to maintain optimal application performance during peak and off-peak times.
Monitoring and Metrics:
In the Monitoring tab, review metrics such as CPUUtilization, Latency, and RequestCount. Monitoring these metrics helps you identify performance bottlenecks and optimize the environment accordingly.
Load Balancer Configuration:
In the Load balancer settings, verify that Connection draining and Idle timeout settings are optimized for your application’s workload. Proper load balancer configuration ensures that incoming traffic is efficiently distributed across instances.
Environment Tiers:
In the environment overview, verify that the environment is running in the appropriate tier (e.g., Web server environment or Worker environment) for the application's use case. Using the correct environment type helps optimize resource usage and performance.
Elastic Beanstalk integrates with CloudWatch for monitoring. Use CloudWatch to set up alarms based on metrics like CPU usage or error rates to optimize performance and ensure reliability.
AWS Config and Security Hub:
If AWS Config and Security Hub are enabled, review findings related to Elastic Beanstalk environments to ensure compliance with best practices, such as using IAM roles with least privilege and securing environment variables.