AWS - olicy-prod-c01
Installation
Repo Gitlab
https://gitlab.com/olicy/infra/aws/olicy-prod-c01-cf/-/tree/main
Architecture des fichiers
| Fichier | Commentaires |
|---|---|
| main.yaml | fichier principal pour installer l'infra |
| nested/network.yaml | création du vpc et subnet |
| nested/security.yaml | ouverture des flux |
| nested/alb.yaml | création du loadbalancer |
| nested/ecs-cluster.yaml | création du ECS |
| nested/rds.yaml | création de la base de données RDS Aurora |
| nested/s3.yaml | création du bucket S3, règle et lifecycle |
| nested/bastion-ssh.yaml | bastion SSH pour l'accès à la DB Aurora |
Déploiement de l'infra
- Créer le bucket S3 pour stocker les artefacts
aws s3api create-bucket --bucket olicy-prod-c01-eu --region eu-west-3 --create-bucket-configuration LocationConstraint=eu-west-3
- Créer le ou les certificats SSL
aws acm request-certificate --domain-name domain.fr --validation-method DNS --region eu-west-3
# Get DNS record
aws acm describe-certificate --certificate-arn arn:aws:acm:eu-west-3:851725221090:certificate/xxxx --region eu-west-3 --query "Certificate.DomainValidationOptions[0].ResourceRecord"
- Packager les fichiers de déploiement
Envoi les fichiers sur le bucket S3 olicy-prod-c01-eu
aws cloudformation package \
--template-file main.yaml \
--s3-bucket olicy-prod-c01-eu \
--output-template-file packaged.yml
- Déploiement de l'infra / Mise à jour
Après avoir envoyé les fichiers packagé
aws cloudformation deploy --template-file /Users/aaubert/Documents/Provisioning/Olicy/olicy-prod-c01/packaged.yml --stack-name olicy-prod-c01 --region eu-west-3 --capabilities CAPABILITY_NAMED_IAM --parameter-overrides \
CertificateArnGlasscom="arn:aws:acm:eu-west-3:851725221090:certificate/bb6d895c-f562-48af-8440-f2799dc5d71d" \
DBUsernameMaster=admin_olicy_prod_c01
Serveur DB Aurora
La serveur n'est pas exposé, pour ce connecter à la DB il faut lancer le bastion SSH.
Il faut décommenter "BastionStack" dans le fichier main.yaml puis lancer la commande déploiement.
Il est possible également de mettre une IP public au serveur et configurer une route vers gateway internet
_Go to the VPC console
Click on "Subnets" in the left navigation panel
Select subnet-06ee962c3157f609b
Click the "Route Table" tab
Click "Edit route table association"
Select the public route table rtb-0b0d7b9a0a598951d
Repeat for subnet-04a30b168f091c73d _
Bastion SSH
Pour déployer le bastion SSH
- Décommenter cette partie dans le fichier main.yaml
# BastionStack:
# Type: AWS::CloudFormation::Stack
# DeletionPolicy: Delete
# Properties:
# TemplateURL: nested/bastion-ssh.yaml
# Parameters:
# VpcId: !GetAtt NetworkStack.Outputs.VpcId
# PublicSubnet1: !GetAtt NetworkStack.Outputs.PublicSubnet1
# KeyPairName: "aaubert"
# DBSecurityGroupId: !GetAtt SecurityStack.Outputs.DBSecurityGroupId
- Packager et lancer le déploiement
aws cloudformation package \
--template-file main.yaml \
--s3-bucket olicy-prod-c01-eu \
--output-template-file packaged.yml
aws cloudformation deploy --template-file /Users/aaubert/Documents/Provisioning/Olicy/olicy-prod-c01/packaged.yml --stack-name olicy-prod-c01 --region eu-west-3 --capabilities CAPABILITY_NAMED_IAM --parameter-overrides \
CertificateArnGlasscom="arn:aws:acm:eu-west-3:851725221090:certificate/bb6d895c-f562-48af-8440-f2799dc5d71d" \
DBUsernameMaster=admin_olicy_prod_c01
- Connexion au bastion
Changer l'adresse IP
ssh ec2-user@xx.xx.xx.xx
Espace de nom (namespace)
Gotenberg
- Créer le namespace privé
Indiquer l'id du VPC
aws servicediscovery create-private-dns-namespace \
--name shared \
--vpc vpc-XXXX \
--description "Namespace partagé pour ECS" \
--region eu-west-3
- Déployer gotenberg
aws cloudformation create-stack \
--stack-name olicy-prod-c01-shared-service \
--template-body file://nested/service-shared.yaml \
--capabilities CAPABILITY_NAMED_IAM \
--region eu-west-3
- Mettre à jour la stack gotenberg
aws cloudformation update-stack \
--stack-name olicy-prod-c01-shared-service \
--template-body file://nested/service-shared.yaml \
--capabilities CAPABILITY_NAMED_IAM \
--region eu-west-3
Mise à jour / Modifications
Schéma
Shéma global

Network

gotenberg
