Elastic Beanstalk (Django) deployment fails because of RDS InvalidParameterCombination - django

I have a django app running on AWS using elastic beanstalk. Has been running for quite a while without any problems.
Just now upon deploying via CLI (eb deploy) I'm running into the following error:
ERROR: ...Reason: The following resource(s) failed to update: [AWSEBRDSDatabase].
ERROR: Updating RDS database named: [...] failed. Invalid storage size for engine name postgres and storage type standard: 15 (Service: AmazonRDS; Status Code: 400; Error Code: InvalidParameterCombination; Request ID: [...])
The error message contains the value 15, and indeed, in the django application database configuration it says:
When I try to change that number to an arbitrary 25 GB and apply those changes, I run into yet another error:
... Cannot upgrade postgres from 9.5.10 to 9.5.4. ...
So there are two things I don't understand:
Why is the 15GB a problem all of a sudden?
Why would it attempt to "upgrade" from 9.5.10 to 9.5.4?
Explanations and solution suggestions much appreciated!
UPDATE
There seems to be a configuration mismatch in the database engine version.
Elastic Beanstalk config:
RDS instance details:

Related

How to update RDS instance type defined in CDK / Cloudformation

I have an RDS DatabaseCluster set up using CDK that's deployed and running with the default instance type. I want to upgrade the instance type to something larger and deploy it with (hopefully) no downtime. The RDS docs has a Scaling Your Amazon RDS Instance Vertically and Horizontally blog post but it only specifies steps to modify it using the console and not Cloudformation/CDK.
I tried modifying the instance type in the console and then made the changes in CDK and deployed but still got the following error:
The specified DB Instance is a member of a cluster. Modify the DB engine version for the DB Cluster using the ModifyDbCluster API (Service: AmazonRDS; Status Code: 400; Error Code: InvalidParameterCombination; Request ID: [RequestID]; Proxy: null)
How do I update the instance types for an RDS cluster defined using Cloudformation/CDK?

InvalidParameterCombination error deploying RDS database cluster

Have an RDS database cluster. The deployed version in AWS has the following attributes:
Engine: aurora-postgresql
EngineVersion: '10.11'
My cloudformation template specified 'EngineVersion 10.7', but I believe the minor version was updated automatically on the deployed cluster. When I tried to deploy my Cloudformation stack, i ran into this error(Something very similar, i don't have that error message available right now):
The specified new engine version is different current version: 10.11 (Service: AmazonRDS; Status Code: 400; Error Code: InvalidParameterCombination
I tried updating my CF template to match the deployed engine version, and now I get:
The specified new engine version is same as current version: 10.11 (Service: AmazonRDS; Status Code: 400; Error Code: InvalidParameterCombination
I can't figure out what the InvalidParameterCombination means.
How do I get out of this predicament?
One option i see to work around this issue, is to attach a retention policy (retain) to the cluster, update stack, remove the cluster from the template, update stack and finally import the DB Cluster into the template with the correct version.
Can be difficult with dependencies, for those !Ref calls one could hard code the arn or custer id as a mapping, replace the references with the static mapping and finally follow the steps above. At the end replace hardcoded IDs with newly imported DB cluster and !Ref.

Metabase deploy fails on AWS Beanstalk

I'm trying to deploy Metabase on AWS Beanstalk following the official documentation.
Unfortunately, I'm getting the following errors every time:
Stack named 'awseb-e-mbmm95mkdq-stack' aborted operation. Current state: 'CREATE_FAILED' Reason: The following resource(s) failed to create: [AWSEBRDSDBSecurityGroup].
Creating RDS database security group named: awseb-e-mbmm95mkdq-stack-awsebrdsdbsecuritygroup-lixrbjq6lh5x failed Reason: Either the resource does not exist, or you do not have the required permissions.
Any ideas how to fix it?
Here's how I was able to fix this issue. I created an RDS db instance from the RDS console, then created a snapshot of that instance. Enter Elastic Beanstalk console, then from Configuration modify Database and use the snapshot created. Remember also to add environment properties in the Configuration / Software console.

Can't deploy Spring Boot app on Amazon AWS

I am deploying simple Spring Boot app on Amazon Elastic Beanstalk.
It seems pretty simple.
I just created war-file and deployed it on Amazon.
However, I receives the following errors during creating the environment:
Creating Auto Scaling group named:
awseb-e-5zxuiqb7jh-stack-AWSEBAutoScalingGroup-1JVXAWPWCK3FK failed.
Reason: You have requested more instances (1) than your current
instance limit of 0 allows for the specified instance type. Please
visit http://aws.amazon.com/contact-us/ec2-request to request an
adjustment to this limit. Launching EC2 instance failed.
Stack named 'awseb-e-5zxuiqb7jh-stack' aborted operation. Current
state: 'CREATE_FAILED' Reason: The following resource(s) failed to
create: [AWSEBAutoScalingGroup].

What is causing my attempt to enable SSH for AWS-EB to fail?

I'm trying to enable SSH for my AWS Elastic Beanstalk application and have run eb ssh --setup (as a user with what seem to be suitable privileges, ElasticBeanstalkFullAccess; using AWS CLI 3.x); but my attempt fails with the following (GUIDs changed to protect the innocent):
INFO: Environment update is starting.
INFO: Updating environment sitetest-develop-env's configuration settings.
INFO: Created Auto Scaling launch configuration named: awseb-e-notrea1nUm-stack-AWSEBAutoScalingLaunchConfiguration-MAdUpa2bCrCx
ERROR: Updating Auto Scaling group failed Reason: Template error: DBInstance bxzumnil42x11w doesn't exist
ERROR: Service:AmazonCloudFormation, Message:Stack named 'awseb-e-notrea1nUm-stack' aborted operation. Current state: 'UPDATE_ROLLBACK_IN_PROGRESS' Reason: The following resource(s) failed to update: [AWSEBAutoScalingGroup].
ERROR: Failed to deploy configuration.
INFO: Created Auto Scaling launch configuration named: awseb-e-myjrm7xr9n-stack-AWSEBAutoScalingLaunchConfiguration-5uKixPQCM71K
INFO: Deleted Auto Scaling launch configuration named: awseb-e-notrea1nUm-stack-AWSEBAutoScalingLaunchConfiguration-MAdUpa2bCrCx
INFO: The environment was reverted to the previous configuration setting.
What is causing this to happen? Is there something I need to do in the AWS Console to prevent this error?
the relevant error message i see here is DBInstance bxzumnil42x11w doesn't exist.
You have probably opted into letting Elastic Beanstalk create an RDS server as part of the environment creation process. Now it seems the db is no longer there. Did you kill it manually?
In any case, I would recommend NOT to let EB manage your RDS. it's best practice to create one yourself and manually assign the following environment variables: RDS_HOSTNAME, RDS_PORT, RDS_DB_NAME, RDS_USERNAME, RDS_PASSWORD.
At this point I would recommend terminating this env and creating a new one, only this time don't check the checkbox named Create an RDS DB Instance with this environment.