MDAA Installer
Note: This folder is used internally to generate the CloudFormation template published on the AWS Solutions page. If you are looking to deploy MDAA, please follow the instructions in the main README at the root of this repository. MDAA can be integrated into any CI/CD pipeline of your choice (Jenkins, GitLab CI, GitHub Actions, etc.). The use of CodeBuild here is just one example of how to run MDAA from a CI/CD tool.
This README describes the MDAA Installer and provides instructions for deployment using AWS CDK or CloudFormation.
Overview
The MDAA Installer creates a CodeBuild project that clones the MDAA repository from GitHub and deploys the selected sample configuration. After deploying the CloudFormation stack, you manually start the CodeBuild project to begin the MDAA deployment.
Parameters
| Parameter | Description | Default |
|---|---|---|
| RepositoryBranchName | GitHub branch to clone (e.g., release/v1.4.0) |
release/v{version} |
| SampleName | Sample configuration to deploy | basic_datalake |
| OrgName | Organization name for MDAA deployment (required) | - |
| MdaaVersion | Version of MDAA modules to deploy (e.g., latest, 1.3.0) |
latest |
| VpcId | VPC ID (required by CloudFormation; only used by basic_datascience_platform) |
- |
| SubnetId | Subnet ID (required by CloudFormation; only used by basic_datascience_platform) |
- |
Deployment Instructions
Option 1: CloudFormation Console (Recommended for Users)
- Synthesize the CloudFormation template:
- Upload
installer.yamlto CloudFormation console or deploy via CLI - After stack creation, go to the CodeBuild console (link provided in stack outputs)
- Click "Start build" to begin the MDAA deployment
Option 2: CDK Deploy (For Development/Testing)
cd installer
npm install
export AWS_REGION=<region>
# Bootstrap CDK (one-time setup per account/region)
cdk bootstrap aws://$(aws sts get-caller-identity --query Account --output text --no-paginate)/$AWS_REGION
cdk deploy \
--parameters OrgName=myorg \
--parameters SampleName=basic_datalake \
--require-approval never
For basic_datascience_platform, also include VPC and Subnet:
export AWS_REGION=<region>
cdk deploy \
--parameters OrgName=myorg \
--parameters SampleName=basic_datascience_platform \
--parameters VpcId=vpc-xxxxx \
--parameters SubnetId=subnet-xxxxx \
--require-approval never
CDK Context Options
| Context | Description | Default |
|---|---|---|
sampleConfigFolder |
Folder containing sample configs | starter_kits |
Example using older branch with sample_configs folder:
Stack Outputs
After deployment, the stack provides: - CodeBuildProjectUrl: Direct link to the CodeBuild project console - CodeBuildProjectName: Name of the CodeBuild project
Developing the Build Script
CodeBuild's buildspec runs a series of commands. In the emulation folder you will find:
- A CloudFormation template to deploy an EC2 instance that emulates the CodeBuild environment
Environment Variables
The CodeBuild project uses these environment variables:
- REPOSITORY_BRANCH_NAME: GitHub branch to clone
- SAMPLE_NAME: Sample configuration name
- SAMPLE_CONFIG_FOLDER: Folder containing sample configs
- ORG_NAME: Organization name
- MDAA_VERSION: Version of MDAA modules to deploy
- VPC_ID: VPC ID (for data science sample)
- SUBNET_ID: Subnet ID (for data science sample)
Uninstall
- Delete all CloudFormation stacks that start with the organization name, in reverse chronological order
- Clean up any protected resources (S3 buckets, KMS keys, etc.) that CloudFormation cannot delete automatically
- Delete the installer stack
End-to-End Testing
An automated test script validates the full installer flow: synth, lint, unit tests, deploy, CodeBuild run, and stack verification.
cd installer
./test-installer.sh --region <region> [--sample-config-folder sample_configs] [--skip-cleanup]
| Option | Description | Default |
|---|---|---|
--region |
AWS region to deploy into (required) | - |
--org-name |
Organization name for the test deployment | mdaa-inst-test |
--sample-config-folder |
Override the sample config folder name at synth time | starter_kits |
--skip-cleanup |
Leave the installer stack in place after the test | false |
The script auto-discovers a VPC and subnet in the target region for CloudFormation parameter validation. MDAA stacks deployed by CodeBuild are not automatically deleted; see the Uninstall section above.
Additional Notes
For more information on AWS CDK, refer to the AWS CDK Developer Guide.