Skip to main content

AWS - olicy-prod-c01

Installation

Au format AWS Cloudformation

Repo Gitlab

https://gitlab.com/olicy/infra/aws/olicy-prod-c01-cf/-/tree/main

Architecture des fichiers

FichierCommentaires
main.yamlfichier principal pour installer l'infra
nested/network.yamlcréation du vpc et subnet
nested/security.yamlouverture des flux
nested/alb.yamlcréation du loadbalancer
nested/ecs-cluster.yamlcréation du ECS
nested/rds.yamlcréation de la base de données RDS Aurora
nested/s3.yamlcréation du bucket S3, règle et lifecycle
nested/bastion-ssh.yamlbastion SSH pour l'accès à la DB Aurora

Déploiement de l'infra

  1. 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
  1. 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"
  1. 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
  1. 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

warning

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

  1. 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
  1. 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
  1. Connexion au bastion

Changer l'adresse IP

ssh ec2-user@xx.xx.xx.xx

Espace de nom (namespace)

Gotenberg

  1. 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
  1. 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
  1. 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

olicy-prod-c01

Network

network

gotenberg

gotenberg