Nous réaliserons un infrastructure dans le cloud en utilisant les services EC2, RDS et S3 d'amazon.
NB : J'utilise Windows comme OS principal, et Ubuntu sous WSL pour les commande SSH.
Utilisez le docker-compose.yml pour créer le contenaire:
docker-compose up
version: '3.8'
services:
db:
image: postgres
container_name: postgres-db
restart: always
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: rtyfghrtyfgh
volumes:
- ./data:/var/lib/postgresql/data
ports:
- 5432:5432
pgadmin:
image: dpage/pgadmin4
container_name: Pg_admin
links:
- db
depends_on:
- db
environment:
PGADMIN_DEFAULT_EMAIL: [email protected]
PGADMIN_DEFAULT_PASSWORD: pwdpwd
volumes:
- ./pgadmin:/var/lib/pgadmin
ports:
- 8080:80
Une fois le contenaire lancé, copiez dessus le fichier clubdata.sql disponible ici avec la commande :
> docker cp clubdata.sql postgres-db:/clubdata.sql
Il vous faut à présent copier le fichier sql sur AWS RDS, cela crée la base de données "Exercises":
> psql -U postgres -f clubdata.sql -h <Point de terminaison RDS> -x -q
vous pouvez consulter les tables en utilisant le container de Pg_Admin:
lien : localhost:80
id : [email protected]
password : pwdpwd
2. Création de l'instance EC2: lien
Une fois l'instance est fonctionnelle, il faudra créer une paire de clé pem. Ensuite lancez ubuntu WSL et saisissez les commandes suivantes pour pouvoir accéder en SSH à l'instance EC2 créée.
~$ chmod 400 my_pair_keyf.pem
~$ ssh -i maclef.pem [email protected]
- Mettez à jour la distribution linux installée du EC2
- Lancez Docker
- installez git et clonez le répértoire contenant l'API sur ec2-user.
[ec2-user@ip-172-31-94-138 ~]$ sudo yum update -y
[ec2-user@ip-172-31-94-138 ~]$ sudo service docker start
[ec2-user@ip-172-31-94-138 ~]$ sudo yum install git -y
[ec2-user@ip-172-31-94-138 ~]$ git clone https://github.com/sialorama/ec2_api.git
Saisissez les commandes suivantes pour charger l'API:
[ec2-user@ip-172-31-94-138 ec2_api]$ sudo docker build -t api:latest .
[ec2-user@ip-172-31-94-138 ec2_api]$ sudo docker run -p 5000:5000 api