Hi, I do #devops at https://unee-t.com/ which uses Meteor for the frontend.
I did notice Docker, Meteor, and AWS ECS but the tutorial seems to be dead. Hence I thought I would quickly share and invite critique of the way I am currently doing it.
https://github.com/unee-t/frontend/blob/master/.travis.yml is used for
- https://github.com/unee-t/frontend/blob/master/buildspec.yml is used for building the https://github.com/unee-t/frontend/blob/master/Dockerfile and putting the image upon https://cloud.docker.com/u/uneet/repository/docker/uneet/frontend
- Deployment is happening via AWS CodePipeline.
It’s a little tricky because our Meteor seems to require the CloudFront to be invalidated (not sure what’s the story with cache busting). And that’s done via https://github.com/unee-t/invalidate
Setting up the CodePipeline is done by hand in 3 accounts (dev, demo, prod) and it’s easy to tick and choose some wrong option. i.e. this is pain.
You may have noticed that our TravisCI file is/was doing deployments, but that’s deprecated because
- ecs-cli is kindof deprecated
- ulexus/meteor:build is deprecated
- permissions becomes a little saner. i.e. powerful permissions are not stored as env variables on travis, they are kept within the AWS ecosystem
In future I might move to a CDK based script style deployment and ditch CodePipeline. https://github.com/aws-samples/aws-cdk-examples/tree/master/typescript/ecs