Skip to content

moz5691/flask-react-aws

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Deploying a Flask and React Microservice to AWS ECS

pipeline status

https://testdriven.io/courses/auth-flask-react/

  • aws commands
$ aws sts get-caller-identity
  • Create repository in AWS
$ aws ecr create-repository --repository-name <name> --region <region>
$ aws ecr create-repository --repository-name tdd-users --region us-east-1
$ aws ecr create-repository --repository-name tdd-client --region us-east-1
  • Build docker image
  $ docker build \
   -f services/users/Dockerfile \
   -t 794200276070.dkr.ecr.us-east-1.amazonaws.com/tdd-users:dev \
   ./services/users

  $ docker build \
  -f services/client/Dockerfile \
  -t 794200276070.dkr.ecr.us-east-1.amazonaws.com/tdd-client:dev \
  ./services/client

aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 794200276070.dkr.ecr.us-east-1.amazonaws.com

aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 794200276070.dkr.ecr.us-east-1.amazonaws.com

docker push 794200276070.dkr.ecr.us-east-1.amazonaws.com/tdd-users:dev docker push 794200276070.dkr.ecr.us-east-1.amazonaws.com/tdd-client:dev

docker-compose

$ export REACT_APP_USERS_SERVICE_URL=http://localhost:5001
$ docker-compose -f docker-compose.prod.yml up -d --build

Test

$ docker-compose down
$ export REACT_APP_USERS_SERVICE_URL=http://localhost:5001
$ docker-compose -f docker-compose.prod.yml up -d --build

$ docker-compose -f docker-compose.prod.yml exec users python manage.py recreate_db
$ docker-compose -f docker-compose.prod.yml exec users python manage.py seed_db

ECR build

$ docker build \
  -f services/users/Dockerfile.prod \
  -t 794200276070.dkr.ecr.us-east-1.amazonaws.com/tdd-users:prod \
  ./services/users

$ docker build \
  -f services/client/Dockerfile.prod \
  -t 794200276070.dkr.ecr.us-east-1.amazonaws.com/tdd-client:prod \
  --build-arg NODE_ENV=production \
  --build-arg REACT_APP_USERS_SERVICE_URL=${REACT_APP_USERS_SERVICE_URL} \
  ./services/client

$ docker push 794200276070.dkr.ecr.us-east-1.amazonaws.com/tdd-users:prod

$ docker push 794200276070.dkr.ecr.us-east-1.amazonaws.com/tdd-client:prod

test added

ECR build for Fargate

$ export REACT_APP_USERS_SERVICE_URL=http://LOAD_BALANCER_DNS_NAME

$ docker build \
  -f services/users/Dockerfile.prod \
  -t 794200276070.dkr.ecr.us-east-1.amazonaws.com/tdd-users-fargate:prod \
  ./services/users

$ docker build \
  -f services/client/Dockerfile.prod \
  -t 794200276070.dkr.ecr.us-east-1.amazonaws.com/tdd-client-fargate:prod \
  --build-arg NODE_ENV=production \
  --build-arg REACT_APP_USERS_SERVICE_URL=${REACT_APP_USERS_SERVICE_URL} \
  ./services/client

$ docker push 794200276070.dkr.ecr.us-east-1.amazonaws.com/tdd-users-fargate:prod

$ docker push 794200276070.dkr.ecr.us-east-1.amazonaws.com/tdd-client-fargate:prod

Query database

aws --region us-east-1 rds describe-db-instances \
  --db-instance-identifier flask-react-db-fargate \
  --query 'DBInstances[].{DBInstanceStatus:DBInstanceStatus}'



aws --region us-east-1 rds describe-db-instances \
  --db-instance-identifier flask-react-db-fargate \
  --query 'DBInstances[].{Address:Endpoint.Address}'

postgres://webapp:password@flask-react-db-fargate.cecs7qtovf8h.us-east-1.rds.amazonaws.com:5432/users_prod

About

Flask React fullstack app deployment in AWS

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published