Deployment of non-production Amundsen on AWS ECS using aws-cli¶
The following is a set of instructions to run Amundsen on AWS Elastic Container Service. The current configuration is very basic but it is working. It is a migration of the docker-amundsen.yml to run on AWS ECS.
Install ECS CLI¶
The first step is to install ECS CLI, please follow the instructions from AWS documentation
Get your access and secret keys from IAM¶
# in ~/<your-path-to-cloned-repo>/amundsenfrontendlibrary/docs/instalation-aws-ecs
$ export AWS_ACCESS_KEY_ID=xxxxxxxx
$ export AWS_SECRET_ACCESS_KEY=xxxxxx
$ export AWS_PROFILE=profilename
For the purpose of this instruction we used the tutorial on AWS documentation
Enter the cloned directory:
cd amundsen/docs/installation-aws-ecs
STEP 1: Create a cluster configuration:¶
# in ~/<your-path-to-cloned-repo>/amundsenfrontendlibrary/docs/instalation-aws-ecs
$ ecs-cli configure --cluster amundsen --region us-west-2 --default-launch-type EC2 --config-name amundsen
STEP 2: Create a profile using your access key and secret key:¶
# in ~/<your-path-to-cloned-repo>/amundsen/docs/installation-aws-ecs
$ ecs-cli configure profile --access-key $AWS_ACCESS_KEY_ID --secret-key $AWS_SECRET_ACCESS_KEY --profile-name amundsen
STEP 3: Create the Cluster Use profile name from \~/.aws/credentials¶
# in ~/<your-path-to-cloned-repo>/amundsen/docs/installation-aws-ecs
$ ecs-cli up --keypair JoaoCorreia --extra-user-data userData.sh --capability-iam --size 1 --instance-type t2.large --cluster-config amundsen --verbose --force --aws-profile $AWS_PROFILE
STEP 4: Deploy the Compose File to a Cluster¶
# in ~/<your-path-to-cloned-repo>/amundsen/docs/installation-aws-ecs
$ ecs-cli compose --cluster-config amundsen --file docker-ecs-amundsen.yml up --create-log-groups
You can use the ECS CLI to see what tasks are running.
$ ecs-cli ps
STEP 5 Open the EC2 Instance¶
Edit the Security Group to allow traffic to your IP, you should be able to see the frontend, elasticsearch and neo4j by visiting the URLs:
TODO¶
- Configuration sent to services not working properly (amunsen.db vs graph.db)
- Create a persistent volume for graph/metadata storage. See this
- Refactor the VPC and default security group permissions