Fermer

mai 22, 2024

Analyse avec AWS Athena / Blogs / Perficient

Analyse avec AWS Athena / Blogs / Perficient


CloudFront, le réseau de diffusion de contenu (CDN) d’Amazon, accélère les performances des sites Web en diffusant du contenu à partir d’emplacements périphériques géographiquement répartis. Mais comment comprendre comment les utilisateurs interagissent avec votre contenu et optimiser les performances de CloudFront ? La réponse réside dans les journaux d’accès CloudFront, et un outil puissant appelé AWS Athena peut vous aider à en extraire des informations précieuses. Dans cet article de blog, nous explorerons comment vous pouvez tirer parti d’Amazon Athena pour simplifier l’analyse des journaux pour votre service CloudFront CDN.

Pourquoi analyser les journaux CloudFront ?

CloudFront fournit des données, des vidéos, des applications et des API aux clients du monde entier avec une faible latence et des vitesses de transfert élevées. Cependant, la gestion et l’analyse des journaux générés par CloudFront peuvent s’avérer difficiles en raison de leur volume et de leur complexité.

Ces journaux contiennent des informations précieuses telles que les détails de la demande, les codes d’état des réponses et les mesures de latence, qui peuvent vous aider à obtenir des informations sur les performances de votre application, le comportement des utilisateurs et les incidents de sécurité. L’analyse manuelle de ces données ou l’utilisation de méthodes traditionnelles telles que les scripts d’analyse de journaux peuvent prendre du temps et être inefficaces.

En analysant ces journaux, vous obtenez une compréhension plus approfondie de :

  • Comportement des utilisateurs et modèles d’accès : Identifiez le contenu populaire, les modèles de trafic des utilisateurs et les domaines potentiels d’amélioration.
  • Popularité du contenu et utilisation des ressources : Identifiez les ressources les plus fréquemment consultées et optimisez les stratégies de mise en cache.
  • Mesures de performances CDN : Mesurez l’efficacité de CloudFront en analysant les taux de réussite, la latence et les goulots d’étranglement potentiels.
  • Problèmes potentiels : Enquêtez sur les pics d’erreurs, identifiez les régions où les temps de réponse sont lents et résolvez les problèmes de manière proactive.

Présentation d’AWS Athena : votre héros de l’analyse des journaux CloudFront

Amazon Athena est un service de requête sans serveur qui vous permet d’analyser les données stockées dans Amazon S3 à l’aide du SQL standard. Voici pourquoi Athena est parfait pour les journaux CloudFront :

  • Rentable: Vous ne payez que pour les requêtes que vous exécutez, ce qui en fait une solution économique.
  • Sans serveur : Aucune infrastructure à gérer – Athena s’occupe de tout.
  • Interface familière : Utilisez des requêtes SQL standard, éliminant ainsi le besoin d’apprendre de nouveaux langages complexes.

Architecture:

Arcgi

Premiers pas avec les journaux Athena et CloudFront

Pour commencer à utiliser Amazon Athena pour l’analyse des journaux CloudFront, procédez comme suit :

1. Activer la journalisation dans Amazon CloudFront

Si vous ne l’avez pas déjà fait, activez la journalisation pour votre distribution CloudFront. Cela commencera à capturer des journaux d’accès détaillés pour toutes les demandes adressées à votre contenu.

2. Stocker les journaux dans Amazon S3

Configurez CloudFront pour stocker les journaux d’accès dans un compartiment Amazon S3 désigné. Assurez-vous que vous disposez des autorisations nécessaires pour accéder à ce compartiment depuis Amazon Athena.

3. Créez une table Athéna

Créez une table externe dans Amazon Athena, en spécifiant le schéma qui correspond à la structure de vos fichiers journaux CloudFront.

Vous trouverez ci-dessous l’exemple de requête que nous avons utilisé pour créer une Table :

CRÉER UNE TABLE EXTERNE SI N’EXISTE pas cloudfront_logs (

date CHAÎNE,

heure CHAÎNE,

emplacement CHAÎNE,

octets BIGINT,

request_ip CHAÎNE,

méthode CHAÎNE,

hôte STRING,

uri CHAÎNE,

statut INT,

chaîne de référence,

user_agent STRING,

chaîne_de requête STRING,

CHAÎNE de biscuits,

type_résultat CHAÎNE,

request_id CHAÎNE,

host_header CHAÎNE,

request_protocol CHAÎNE,

request_bytes BIGINT,

time_taken FLOTTANT,

xforwarded_pour STRING,

ssl_protocol CHAÎNE,

ssl_cipher CHAÎNE,

réponse_result_type STRING,

http_version CHAÎNE,

fle_encrypted_fields CHAÎNE,

fle_status CHAÎNE,

ID_unique CHAÎNE

)

FORMAT DE LIGNE CHAMPS DÉLIMITÉS TERMINÉS PAR ‘\t’ ÉCHAPPÉ PAR ‘\’ LIGNES TERMINÉES PAR ‘\n’

LOCATION « collez votre URI s3 ici » ;

Cliquez sur le bouton Exécuter !

Requête

Extraire des informations avec les requêtes Athena

Vient maintenant la partie amusante : utiliser Athena pour répondre à vos questions sur les performances de CloudFront. Voici quelques exemples de requêtes pour vous aider :

Total des demandes

Recherchez le nombre total de requêtes traitées par CloudFront pour une plage de dates spécifique.

SQL

SÉLECTIONNER

COMPTER

AS total_requests

DEPUIS

cloudfront_logs

date ENTRE ‘2023-12-01’ ET ‘2023-12-31’;

Ressources les plus demandées

Identifiez les 10 URL les plus demandées dans votre distribution CloudFront. Cette requête vous donnera une liste des 10 URL les plus demandées ainsi que le nombre de requêtes correspondant. Vous pouvez utiliser ces informations pour identifier le contenu populaire et analyser le comportement des utilisateurs sur votre distribution CloudFront.

SQL

SÉLECTIONNER

Uri,

COMPTER

AS request_count

DEPUIS

actifscs_cdn_logs

PAR GROUPE

uri

COMMANDÉ PAR

request_count DESC

LIMITE 10 ;

Trafic par région

Analysez les modèles de trafic par emplacement de l’utilisateur.

Cette requête sélectionne le champ d’emplacement dans vos journaux CloudFront (qui représente généralement la région géographique de l’utilisateur) et compte le nombre de demandes pour chaque emplacement. Il regroupe ensuite les résultats par emplacement et les classe par ordre décroissant en fonction du nombre de demandes. Cette requête vous donnera une répartition du trafic par région, vous permettant d’analyser quelles régions génèrent le plus de requêtes vers votre distribution CloudFront. Vous pouvez utiliser ces informations pour optimiser la diffusion de contenu, allouer des ressources et adapter vos services en fonction de la demande géographique.

SQL

SÉLECTIONNER

emplacement,

COMPTER

AS request_count

DEPUIS

cloudfront_logs

PAR GROUPE

emplacement

COMMANDÉ PAR

request_count DESC ;

Temps de réponse moyen

Calculez le temps de réponse moyen pour les requêtes CloudFront. L’exécution de cette requête vous donnera le temps de réponse moyen pour toutes les requêtes servies par votre distribution CloudFront. Vous pouvez utiliser cette métrique pour surveiller les performances de votre CDN et identifier les goulots d’étranglement potentiels en matière de performances.

SQL

SÉLECTIONNER

AVG (time_taken) AS moyenne_response_time

DEPUIS

cloudfront_logs ;

Nombre de demandes selon le statut

La requête ci-dessous vous fournira une répartition du nombre de requêtes pour chaque code d’état HTTP renvoyé par CloudFront, vous permettant d’identifier tout modèle ou anomalie dans le comportement de votre CDN.

SQL

Statut SELECT, COUNT

comme compte

DE cloudfront_logs

Statut GROUPE PAR

  • ORDRE PAR compte DESC ; Athena vous permet de créer des requêtes encore plus complexes impliquant des jointures, des agrégations et des filtrages pour découvrir des informations plus approfondies à partir de vos journaux CloudFront.
  • Optimiser CloudFront avec l’analyse des journaux En analysant les journaux CloudFront, vous pouvez identifier les domaines à améliorer :

Optimisation des ressources :

Les ressources présentant une latence constamment élevée ou des taux de réussite faibles pourraient bénéficier d’une mise en cache dans des emplacements plus périphériques.

Ciblage géographique :

Les régions à fort volume de trafic peuvent justifier des emplacements périphériques supplémentaires pour améliorer l’expérience utilisateur.

Conclusion Les journaux d’accès AWS Athena et CloudFront forment un duo puissant pour obtenir des informations précieuses sur le comportement des utilisateurs et les performances du CDN. Grâce à l’approche rentable et conviviale d’Athena, vous pouvez mieux comprendre la diffusion de votre contenu et prendre des décisions basées sur les données pour optimiser votre déploiement CloudFront.Prêt à libérer la puissance de vos journaux ? Commencez dès aujourd’hui avec AWS Athena et libérez le potentiel caché de vos journaux CloudFront. Avec son interface intuitive et son architecture sans serveur, Athena vous permet de transformer les données en informations exploitables pour une expérience CDN plus rapide et plus performante.




Source link