logo
    • Home
    • Categories
    • About
  • en-languageEnglish
DevopsBy Pierre Colart

AWS: Deployment Infrastructure and Management in the Cloud

AWS CloudFormation

The simplification of repetitive provisioning tasks can be controlled in three ways:

  1. Through the AWS Management Console.
  2. By using the AWS CLI command line.
  3. By using the AWS SDK/API software development kit.

We can create templates in the form of JSON to provision simple EC2 instances. The goal is to create our own private server and preconfigure everything through these templates. Here's how it works:

  1. We create our template and add deployment parameters to it.
  2. We then deploy a stack that creates our databases, subnets, communication rules, etc.
  3. We can then use the concept of continuous development and automation. It's important to update these templates to optimize for bugs or architectural shortcomings. In case of errors, there's automatically a rollback feature.

To deploy the scripts, we send them directly to S3. We can then use them with CloudFormation, which allows us to deploy all of our scripts at the same time. A frequent use case is transforming development environments into production environments. By simply copying the templates, we can create various environments without too much difficulty. This also allows us to change the region environment in case of recovery. Without CloudFormation, this would be costly in time because we would have to reread the documentation, start from scratch with the risk of introducing errors, and maintain heavy and not really necessary documentation.

One trick is to use starter templates for certain services, which allows us to have a base for our files.

AWS CodeDeploy

CodeDeploy is a service that automates application deployments to various compute services such as EC2, Fargate, AWS Lambda, as well as on-premise running instances. While it's not a core service, here are its characteristics:

  1. It allows for automated deployment of instances (of an application whose application runs on an instance).
  2. It requires the installation of agents on instances.
  3. Deployment is reproducible on N instances.
  4. It's integrated with automatic scaling.
  5. It allows for on-premise or AWS cloud deployment.
  6. It's platform and language agnostic.
  7. It allows for limiting downtime (blue/green).
  8. It allows for centralized control.
  9. It's free.

AWS Systems Manager

AWS Systems Manager simplifies the management of resources and applications, shortens the time to detect and resolve operational issues, and facilitates the secure operation and management of your infrastructure at scale. It's a suite of services for system administrators, including OpsCenter, Explorer, Resource Groups, AppConfig, Dashboard Inventory, Automation, Run Command, Session Manager, Maintenance Window, Distributor, State Manager, and Parameter Store. This allows for management of on-premise and cloud resources (hybrid). When roles are assigned to users, we can configure views to have a central view for displaying operational data from multiple services.

This allows us to:

  1. Automate operational tasks for our AWS resources.
  2. Group resources by application, business unit, or environment.
  3. Display operational data for monitoring and troubleshooting purposes (create dashboards).
  4. Maintain consistent configuration of your instances.

It supports Windows and Linux with an installed agent.

AWS OpsWorks

AWS OpsWorks is a configuration management service that provides managed instances of Chef and Puppet. These services enable infrastructure management by code (codebook), which mainly involves configurations. Our code is then deposited in a repository (cookbook repository) for versioning. We also define OpsWorks stacks (application infrastructure) that allow us to define what we need in terms of provisioning. OpsWorks provides its own load balancer, but also EC2 instances, AMIs, bootstrap + EBS Volume, as well as RDS for our data instances. In short, we free ourselves from repetitive tasks to make operations faster. The other advantage is that this service works "on-premise".

AWS Simple Notification Service (SNS)

AWS Simple Notification Service (SNS) allows for creating publish-subscribe notifications for microservices and serverless applications. Thus, we can create a topic and allow the service to subscribe to this topic in order to receive messages. For example, we can automate with a lambda the sending of information by email to our employees every morning. The name of this service is qualified by its unique identifier: the ARN. When we create an SNS, we must create subscriptions:

  1. We select the ARN.
  2. We choose the protocol to be deployed.
  3. We choose the endpoint.

This allows for creating a powerful notification system.

Cloud Management

To decouple applications, we can use a reliable and highly scalable hosted queue to store messages that transit between applications or microservices.

Characteristics:

  • AWS managed web service
  • Allows receiving and storing messages
  • 2 types of participants: producer and consumer
  • Messages are processed via the SDK, then deleted
  • Can retain a message for 15 days
  • Two types of queues: FIFO or parallel
  • Ensures that the message is transmitted at least once
  • Cloud management

Cloudwatch

Cloudwatch is a service that enables observability of your AWS resources and applications on AWS and on-premise. It allows you to act in 4 different steps:

  1. Collect metrics
  2. Monitor
  3. Act: create measurements, lambda function, to create actions on an instance. We can also send emails and SMS for an alert.
  4. Analyze based on the alerts we collect

Cloudwatch provides actionable data and information (e.g. overloaded CPU) that you need to monitor your applications, react to performance variations across the system, optimize resource utilization, and have a unified appreciation of operational health. There are 2 modes:

  • Basic: retrieves metrics every 5 minutes (free)
  • Advanced: retrieves metrics every minute (paid)

Use cases:

  • Infrastructure monitoring and troubleshooting
  • Improved mean time to resolution
  • Proactive optimization of resources
  • Application monitoring
  • Log analysis (related to CloudTrail)

Advantages:

  • The easiest way to collect metrics in AWS and on-premise
  • Improves operational performance and resource optimization
  • Get insights and gain operational visibility
  • Retrieve actionable insights in logs
  • Observability on a single platform across applications and infrastructure

Trusted Advisor

Trusted Advisor est un service qui permet de surveiller et de faire des économies grâce aux conseils du service. Il permet une optimisation des coûts en identifiant la mauvaise gestion et la non-application des bonnes pratiques. Il permet d'augmenter les performances en adaptant mieux les ressources en fonction de nos besoins. Il surveille également les critères de sécurité pour nous, ainsi que la tolérance des pannes de nos services. Il permet de connaître les limites de service concernant notre zone de disponibilité afin de les adapter pour les réduire et augmenter.

4 plans :

Plan Coût Fonctionnalités
Basic Gratuit Accès aux 5 conseils principaux, limites de service et rapport de confiance
Developer 29 $ par mois Accès aux conseils principaux, aux conseils pour les performances, aux conseils de sécurité et aux limites de service
Business 100 $ par mois Accès à tous les conseils et à l'historique des analyses
Enterprise Sur demande Accès à toutes les fonctionnalités, y compris des rapports personnalisés et un support technique dédié

Ces plans permettent aux utilisateurs de Trusted Advisor de choisir les fonctionnalités en fonction de leurs besoins et de leur budget.

Fonctionnalités :

Voici les fonctionnalités que notre plateforme propose pour améliorer la gestion de votre infrastructure AWS :

  1. Identifier les load balancers non utilisés pour un routage plus rationnalisé.
  2. Détecter les Elastic Network Interfaces (ENI) et les Elastic IPs non associés pour éviter des coûts inutiles. Notez que dès qu'une adresse IP est réservée, elle réserve des ressources.
  3. Surveiller l'utilisation anormalement élevée d'une instance EC2 afin de détecter les ralentissements qui peuvent impacter les utilisateurs.
  4. Vérifier l'activation de la multi-factor authentication (MFA) pour renforcer la sécurité.
  5. Gérer la stratégie de mot de passe pour éviter les vulnérabilités.
  6. Alerter en cas de non-conformité avec la reprise en cas de panne, par zone de disponibilité et autre.
  7. Récupérer des informations sur une durée de 7 jours et les envoyer par email (facturation, transaction, sécurité).
  8. Vérifier que les sauvegardes sont bien actives pour prévenir toute perte de données.

Afficher toutes les données dans la console et les mettre à jour toutes les 24 heures. Il y a 3 états possibles :

  • Aucune action nécessaire
  • Action nécessaire
  • Action obligatoire

AWS CloudTrail

AWS CloudTrail permet de suivre l'activité des utilisateurs et l'utilisation des API via différents moyens tels que la console, les lignes de commande ou le SDK. Tous ces appels API laissent des traces (logs) contenant des informations telles que l'identité, la date et l'heure ainsi que l'adresse IP source. CloudTrail permet d'identifier rapidement et de fournir des informations en cas d'audit. Les logs sont stockés directement dans S3 et sont récupérés par différents services pour les traiter. Ils sont alimentés toutes les 5 minutes et le stockage est illimité.

Il est possible d'y accéder via CloudWatch pour créer des tableaux de bord et réaliser des notifications via SNS. AWS CloudTrail permet d'enregistrer les événements relatifs à votre compte AWS et d'enregistrer ses informations depuis plusieurs régions. Il est également possible de surveiller l'intégrité des fichiers logs (modification ou suppression), de chiffrer vos fichiers CloudTrail, d'accélérer les procédures d'enquête suite aux incidents et d'envoyer des réponses rapides aux demandes des responsables de l'audit.

Il est également possible d'interagir avec CloudWatch Logs et Events ou Lambda via S3 Events et de créer un journal de suivi pour conserver un enregistrement de ces événements avec AWS CloudTrail Insight. Insight permet de créer des métriques d'événement, de déclencher des alertes, de créer des flux de travail d'événement et de créer un journal de suivi pour une organisation.

AWS Config

AWS Config permet d'avoir une liste exhaustive des ressources que vous utilisez, que ce soit multi-compte ou multi-région, une liste précise des vulnérabilités potentielles sur ces ressources, des interdépendances entre ces ressources ainsi qu'un historique complet des changements opérés sur ces ressources. AWS Config permet également de valider la conformité envers les lois en vigueur (RGPD, données sensibles, etc.) et de mettre à disposition toutes les informations requises en cas d'audit.

Les fonctionnalités d'AWS Config incluent un inventaire avec la liste des modifications, la sauvegarde de l'historique des configurations (JSON), des snapshots instantanés d'un clic (delta) à un instant T, des notifications en cas de changements, l'intégration avec CloudTrail pour analyser la sécurité et la conception de règles de conformité. Les services couverts incluent AWS Certificate Manager, CloudTrail, EBS, EC2, EC2 System Manager, ELB, IAM, Amazon Redshift, RDS, S3, VPC et AWS Health Dashboard.

AWS Health dashboard

Le tableau de bord AWS Health Dashboard contient tous les services pour toutes les régions, mais il est possible de créer un tableau de bord personnel pour lister uniquement les services utilisés, les services uniquement dans nos services, les incidents en cours, les changements planifiés et autres notifications (mises à jour). L'objectif est d'analyser les incidents pour déterminer s'ils sont causés par l'une de nos actions ou s'il s'agit d'un problème d'infrastructure AWS.

Pierre Colart

Passionate developer and architect who wants to share their world and discoveries in order to make things simpler for everyone.

See profil

Latest posts

Sequences, Time Series and Prediction

© 2023 Switch case. Made with by Pierre Colart