I have an EB environment with t2.xxxxx
instances, I wish to change to t3 (or any other instance in the future)
Running eb config
opens up my config file.
I change the InstanceType
from t2.small
to t3.small
and the InstanceTypes
from t2.small, t2.medium
to t3.small, t3.medium
.
I have checked that ENA is enabled using AWS cli:
aws ec2 describe-instances --instance-ids i-xxxx --query "Reservations[].Instances[].EnaSupport"
aws ec2 describe-images --image-id ami-xxxx --query "Images[].EnaSupport"
which both return [ true ]
Error:
Printing Status:
Environment update is starting.
Updating environment xxxx's configuration settings.
Created Auto Scaling launch configuration named: xxxx
Auto Scaling group update progress: Rolling update initiated. Terminating 1 obsolete instance(s) in batches of 1, while keeping at least 1 instance(s) in service. Waiting on resource signals with a timeout of PT30M when new instances are added to the autoscaling group.
Auto Scaling group update progress: Temporarily setting autoscaling group MinSize and DesiredCapacity to 2.
Auto Scaling group update progress: New instance(s) added to autoscaling group - Waiting on 1 resource signal(s) with a timeout of PT30M.
Still waiting for the following 1 instances to become healthy: [i-xxxx].
ERROR: TimeoutError - The EB CLI timed out after 10 minute(s). The operation might still be running. To keep viewing events, run 'eb events -f'. To set timeout duration, use '--timeout MINUTES'.
edit
using eb events -f
I can see further logs
ERROR Service:AmazonCloudFormation, Message:Stack named 'awseb-x-xxxx-xxxx' aborted operation. Current state: 'UPDATE_ROLLBACK_IN_PROGRESS' Reason: null
INFO Auto Scaling group update progress: Failed to receive 1 resource signal(s) for the current batch. Each resource signal timeout is counted as a FAILURE.
ERROR Updating Auto Scaling group named: awseb-e-xxxx-xxxx-AWSEBAutoScalingGroup-xxxx failed Reason: Received 0 SUCCESS signal(s) out of 1. Unable to satisfy 100% MinSuccessfulInstancesPercent requirement
ERROR Failed to deploy configuration.
INFO Created Auto Scaling launch configuration named: awseb-e-xxxx-xxxx-AWSEBAutoScalingLaunchConfiguration-xxxx
INFO Auto Scaling group update progress: Rolling update initiated. Terminating 1 obsolete instance(s) in batches of 1, while keeping at least 1 instance(s) in service. Waiting on resource signals with a timeout of PT30M when new instances are added to the autoscaling group.
edit
See redacted version of config below:
ApplicationName: xxxx
DateUpdated: 2022-02-24 12:31:13+00:00
EnvironmentName: xxxx-dev
PlatformArn: arn:aws:elasticbeanstalk:xxxx::platform/Python 3.8 running on 64bit
Amazon Linux 2/3.3.9
settings:
aws:autoscaling:launchconfiguration:
BlockDeviceMappings: null
DisableIMDSv1: xxxx
EC2KeyName: xxxx
IamInstanceProfile: xxxx
ImageId: xxxx
InstanceType: t2.small
MonitoringInterval: 5 minute
SSHSourceRestriction: xxxx
SecurityGroups: xxxx
aws:ec2:instances:
EnableSpot: 'false'
InstanceTypes: t2.small, t2.medium
SpotFleetOnDemandAboveBasePercentage: '70'
SpotFleetOnDemandBase: '0'
SpotMaxPrice: null
SupportedArchitectures: x86_64
aws:elasticbeanstalk:command:
DeploymentPolicy: Rolling
aws:elasticbeanstalk:container:python:
NumProcesses: '1'
NumThreads: '15'
WSGIPath: application
aws:elasticbeanstalk:control:
DefaultSSHPort: '22'
LaunchTimeout: '0'
LaunchType: Migration
RollbackLaunchOnFailure: 'false'
aws:elasticbeanstalk:environment:
EnvironmentType: LoadBalanced
LoadBalancerIsShared: 'false'
LoadBalancerType: application
so to resolve the issue, based on the input from:
.elasticbeanstalk
folder in my current directory.eb init
(setup as desired)eb create
(setup as desired)eb config
(setup as I wished in the question)worked first time.