FINRAOS / herd-mdl

Herd-MDL, a turnkey managed data lake in the cloud. See https://finraos.github.io/herd-mdl/ for more information.
Apache License 2.0
16 stars 14 forks source link

CloudFormation - failed to create: [PrerequisitesSecondaryStack] #82

Closed mrperson2015 closed 5 years ago

mrperson2015 commented 5 years ago

Describe the bug While following the steps for "Basic Install" I get the following error. Embedded stack arn:aws:cloudformation:us-east-1:############:stack/herd-mdl-MdlStack-XOBVK3U2F2DE/########-####-####-####-############ was not successfully created: The following resource(s) failed to create: [PrerequisitesSecondaryStack]. I am using a personal account as root access.

To Reproduce Steps to reproduce the behavior:

  1. Download release artefact: installMDL.yml (installMDL_20190201.yml.txt) to your local file system, this will install version 1.4.0.
  2. Login to AWS console and navigate to the Cloudformation service.
  3. Create a new stack using the option: "Upload a template to Amazon S3" - Refer to AWS documentation on how to select a local template.
  4. Select the same installMDL.yml file from your local file system (which was downloaded in step 1).
  5. On the next page
    • Enter a unique value for the 'stack name' parameter.
    • Changed DeployComponents to Herd -- Note: A stack name can contain only alphanumeric characters (case-sensitive) and hyphens. It must start with an alphabetic character and can't be longer than 128 characters. Further reading: Specifying Stack Name and Parameters
    • Leave all other parameters to their default values and click 'Next'.
  6. On the next page, click 'Next'. Further reading on tags: AWS documentation
  7. Review the information on the next page and click on the 'Create' button, this will initiate stack creation. ERROR HERE Embedded stack arn:aws:cloudformation:us-east-1:############:stack/herd-mdl-MdlStack-XOBVK3U2F2DE/########-####-####-####-############ was not successfully created: The following resource(s) failed to create: [PrerequisitesSecondaryStack].
  8. Wait for 'CREATE_COMPLETE' on the stack and all its nested stacks. (never reached)

Expected behavior I expect the CloudFormation template to complete successfully with a 'CREATE_COMPLETE' message.

Details and/or logs

Screenshots image

Additional context Just realized that I changed the DeployComponent to Herd. I modified the steps above.

rongwang0930 commented 5 years ago

Cameron, can you provide a screenshot of events detail for the specific failed nested stack under SecondaryStack ?

mrperson2015 commented 5 years ago

I totally spaced that I changed the DeployComponent to Herd. I updated the original message w/ that info.

mrperson2015 commented 5 years ago

I attempted another deploy using the same steps as the original message. I couldnt see much of anything in CloudWatch. Upon digging in further through the CloudFormation events (i am new to CF), I found the following

MetastorMysqlDB | Cannot create a db.m3.medium Multi-AZ instance because at least 2 subnets must exist in availability zones with sufficient capacity for VPC and storage type : gp2 for db.m3.medium, so 1 more must be created in other availability zones; choose from these availability zones: us-east-1e, us-east-1c, us-east-1d. (Service: AmazonRDS; Status Code: 400; Error Code: InvalidVPCNetworkStateFault; Request ID: f02f13f1-9784-47de-8646-e7d020a28917)

image

I will attempt to determine the cause of this error.

nateiam commented 5 years ago

@mrperson2015 did you supply your own VPC/subnet info or use the default value of CreateVPC=true

@rongwang0930 @kusid -- depending on above can we identify the next step to troubleshoot?

mrperson2015 commented 5 years ago

I didnt supply my own vpc. The only default value I changed was the DeployComponent. I just tried it again with no changes (all default values). Same error.

mrperson2015 commented 5 years ago

wrong button :S didnt mean to close

kusid commented 5 years ago

You might be reaching AWS's limits for instance availability for your account. Here's what you could try:

  1. Look for the parameter: MetastorDBClass in the CloudFormation template you downloaded and change its default value to db.m5.large. Those are newer generation instances and I'm guessing those have a better chance of being available.
  2. Contact AWS support and ask for increased limits for your account.

If neither of the aforementioned possible solutions work you - please let us know and we will do our best to provide you further assistance on this.

mrperson2015 commented 5 years ago

I went with option 1 as it was the easiest. Worked like a charm! everything deployed correctly. Thank you!!!