AWS & TSSR
  • 🌇Infra-AWS
    • 🌄Projet Infrasphere
  • Page
    • Le réseau sous PKT et en physique
    • V.V Questionnaire sur l'Active Directory
    • V.V ECF TSSR Pratique
  • Mes ressources
    • 🛝In depth
      • 🏹AWS _ Déploiement, provisionnement et automatisation
    • ☁️AWS - Cloud Practitioner
      • 📚P.1 Training for Cloud Practitioner Exam'
      • 📚P.2 Training for Cloud Practitioner Exam'
    • 🌉Setting Up Bastion Host with 2 VPCs on AWS
Powered by GitBook
On this page
  1. Infra-AWS

Projet Infrasphere

Projet pro : REAC TSSR avec AWS

Introduction

Dans le cadre de la formation TSSR, je dois réaliser un dossier professionnel en indiquant chaque compétences à des tâches, effectuées dans le cadre du stage ou de la formation.

Intéressé par le Cloud et le DevOps, j’ai décidé d'orienter mon dossier pro avec des tâches sur le Cloud, en particulier AWS. Je n'oublie pas d'implémenter des outils utilisés on premise comme HAProxy pour le Load Balancer.

L’objectif est de définir dans un premier temps les fonctionnalités essentielles et quelles tâches à soumettre. Il faut prévoir une évolution si j’arrive à valider les fonctionnalités essentielles.

Ce document servira de fil rouge à la rédaction du dossier pro.

Suivi du projet

REAC

Service(s) AWS

Notes / Tâches à effectuer

Evolution

Assurer le support utilisateur en centre de services

Amazon Connect

Version gratuite bas de gamme attention aux coût des appli synchronisés

Non prioritaire

Terminé (hors projet)

Exploiter des serveurs Windows et un domaine

Active Directory

EC2

Non prioritaire

Exploiter des serveurs Linux

EC2

Nginx

1

En cours

Exploiter un réseau IP

VPC - Loadbalancer

SecG ; ACL ; VPN

SSL

bastion

2

En cours

Maintenir des serveurs dans une infrastructure

virtualisée

EC2 + Monitoring

Vertical/Horizontal scaling Log Rôle IAM=> EC2 Nginx

3

En cours

Automatiser des tâches à l’aide de scripts

Ensemble des ressources du projet seront déployées

IAM => création users / group / rôles

Instances EC2 ? 4 x2

0 Terraform & ansible ???

En cours

Maintenir et sécuriser les accès à Internet et les

interconnexions des réseaux

VPC

VPN

Cloudwatch / trail

Firewall - portforwarding (port personnalisé) WAF

AWS Certificate Manager

1 (Bastion) 4 (VPN)

En cours

Mettre en place, assurer et tester les sauvegardes et

les restaurations des éléments de l’infrastructure

S3 + S3 Glacier

Backup restore (AWS Backup)

(Snapshot)

Lifecycle management

3 2 2 1 0

5

Pas commencé

Exploiter et maintenir les services de déploiement des

postes de travail.

AWS Workspace

PCoIP Liens IAM et DVI

pour sécuriser l’espace de travail

6

Non prioritaire

Prendre en compte les Availability Zones pour la redondance

Version actuelle de mon schéma logique

Version antérieure de mon schéma logique

Version initiale de mon schéma logique

Automatiser des tâches à l’aide de script

Installation et configuration AWS CLI

Télécharger le CLI soit via un fichier msi, soit en ligne de commande (ok avec Linux / Windows). Langage en bash

On s’assure de l’installation :

Pour faire communiquer nos services AWS, on va rentrer des identifiants particuliers d’un utilisateur de notre organisation. En effet, nous allons créer une clé de connexion entre notre utilisateur vers notre CLI.

Nous n'utilisons pas le compte root mais un compte aux droits admin (créé préalablement sur l’interface IAM d’AWS).

Exemple de commande : pour lister les EC2 AMI Images

aws --output table ec2 describe-images --filters "Name=description,Values=*Amazon Linux 2*" "Name=owner-alias,Values=amazon"

output format (texte, table, json, yaml)

top lvl command => aws services

subcommand, Actual command (on peut trouver create, delete, enable, disable, modify, request, stop, terminate)

options (peut contenir –region ; –output ; –profile ou –dry-run pour lancer une commande sans l’exécuter (très bien pour le testing))

La commande aws help ouvre l’aide classique. On peut aussi utiliser aws s3 help spécifique pour le S3 et, plus loin, aws s3 website help.

Création du VPC 1 :

aws ec2 create-vpc \

--cidr-block 10.0.0.0/24 \

--tag-specification ResourceType=vpc,Tags=[{Key=Name,Value=MyVpc}]

Création du VPC 2 :

aws ec2 create-vpc \

--cidr-block 10.0.1.0/24 \

--tag-specification ResourceType=vpc,Tags=[{Key=Name,Value=MyVpc}]

Création subnet 1a :

root@L-FR-5CG13310XP:~# aws ec2 create-subnet \

--vpc-id vpc-024b85f09852e2329 \

--cidr-block 10.0.0.0/28

-- availability-zone eu-west-3a

--tag-specifications 'ResourceType=subnet,Tags=[{Key=Name,Value=XXXXX}]'

Même chose pour les autres subnets où on modifiera le CIDR et/ou le vpc id et/ou la AZ.

Dans un sous-réseau AWS, il y a un total de 5 IP réservées. En plus du réseau et la broadcast : 10.0.0.1: Reserved by AWS for the VPC router.

10.0.0.2: Reserved by AWS. The IP address of the DNS server is the base of the VPC network range plus two. For VPCs with multiple CIDR blocks, the IP address of the DNS server is located in the primary CIDR. We also reserve the base of each subnet range plus two for all CIDR blocks in the VPC. For more information, see Amazon DNS server.

10.0.0.3: Reserved by AWS for future use.

Création d’une EC2, comporte plusieurs éléments :

$ aws ec2 run-instances --image-id ami-xxxxxxxx --count 1 --instance-type t2.micro --key-name MyKeyPair --security-group-ids sg-903004f8 --subnet-id subnet-6e7f829e

ou

aws ec2 run-instances --image-id ami-04681a1dbd79675a5 \

--count 1 \

--instance-type r5d.large \

--key-name newcluster \

--security-group-ids sg-007e43f80a1958f29 \

--subnet-id subnet-970ec2f0 \

--user-data file://my_script.sh \

--tag-specifications \

'ResourceType=instance,Tags=[{Key=backend,Value=inventory1}]'

Amazon Linux 2023 : ami-0facbf2a36e11b9dd

Amazon Linux 2022 : ami-0720246d895625a23

count pour indiquer le nombre

instance-type pour indiquer les configs de l’instance (on utilisera t2.micro)

aws ec2 create-security-group --group-name SecVPC1 --description "GroupSecVPC1" --vpc-id vpc-024B85f09852e2329

Le CIDR est celui d’un VPC

aws ec2 authorize-security-group-ingress \

--group-id sg-02ccf2fcd4a46c14c \

--protocol tcp \

--port 22 \

--cidr 10.0.0.0/24

Lancement d’une EC2 en prenant en compte les paramètres créés précédemment :

aws ec2 run-instances --image-id ami-0facbf2a36e11b9dd \

--count 1 \

--instance-type t2.micro \

--key-name key-pair1a \

--security-group-ids sg-02ccf2fcd4a46c14c \

--subnet-id subnet-020bcec891b3d77c2 \

--user-data file://monscript.sh

Sécurisation du serveur web :

AWS Certificate manager :

AWS WAF : Firewall idéal pour les serveurs web.

certificat ssl

Mettre en ligne le serveur web

Lancer instance EC2

Installer nginx (yum) Aller dans le fichier config /etc/nginx/nginx.conf

  • ajouter listen 80

  • ajouter listen 443 ssl

  • des difficultés pour créer le certificat, faire attention aux syntaxes de la configuration (commande utile : sudo nginx -t)

Bonne config :

include /etc/nginx/conf.d/*.conf;

server {

listen 80;

listen 443 ssl;

server_name vicexplore.cloud;

root /usr/share/nginx/html;

# Load configuration files for the default server block.

include /etc/nginx/default.d/*.conf;

error_page 404 /404.html;

location = /404.html {

}

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root /var/www/errors;

}

location / {

root /var/www/vicexplore.cloud;

index index.html;

}

ssl_certificate "/etc/letsencrypt/live/vicexplore.cloud/fullchain.pem";

ssl_certificate_key "/etc/letsencrypt/live/vicexplore.cloud/privkey.pem";

}

Il faut créer une page index.html avec un petit message du style :

GNU nano 5.8 index.html <html><body><h1>Victor continue d'explorer le Cloud ... avec AWS ! !</h1></body></html>

Si problème de “double écoute” des ports 80 et 443 :

sudo pkill -f nginx & wait $!

sudo pkill -f nginx & wait $! : Cette commande utilise pkill pour arrêter tous les processus Nginx en cours d'exécution. Le & wait $! permet d'attendre que la commande se termine avant de continuer.

Vraiment bien vérifier le fichier de destination index.html

Pour tester notre site, on écrit bien l’URL COMPLÈTE

#!/bin/bash

yum update -y

yum install nginx -y

echo "<html><body><h1>Vic explore le cloud !</h1></body></html>" >/var/www/vicexplore.cloud/index.html

systemctl start nginx

systemctl enable nginx

LOAD BALANCING

Utilisation de HAProxy

Configuration :

global

log /dev/log local5 debug

chroot /var/lib/haproxy

stats timeout 30s

user haproxy

group haproxy

daemon

defaults

log global

mode http

option httplog

option dontlognull

timeout connect 5000

timeout client 50000

timeout server 50000

errorfile 400 /etc/haproxy/errors/400.http

frontend myapp_front

bind *:80

default_backend myapp_back

backend myapp_back

balance roundrobin

server srv_nginx 13.38.104.99:80

server srv_apache 172.31.19.252:80

PreviousInfra-AWSNextPage

Last updated 1 year ago

Installation et config du CLI ( et )

Bastion ou

Ou tout simplement la .

run-instances

Image ID pour sélectionner la bonne AMI -

key-name pour autoriser la connexion SSH -

security-group pour autoriser la connexion -

Pour aller plus loin dans la config :

subnet-id pour indiquer le réseau -

Suivre le guide pour créer les certificats SSL

Pour tester des bugs de notre site avec les certifs obtenus par CERTBOT : utiliser

Vérifier que le fichier /etc/nginx/nginx.conf.default n’écoute pas le port 80 et provoque une double écoute (bonne ressource )

Il faut ajouter l’IP publique du serveur à l’hébergeur du domaine ()

Pour vérifier la bonne tenue SSL de notre serveur :

🌇
🌄
documentation officielle
DOC
Liste depuis la console
DOC
DOC
DOC
DOC
CERTBOT
DEBUG.NET
ICI
HOSTSINGER
SSLLABS
cours
ressource
SSM
ressource
CLI
A ajouter : le monitoring !