CloudQuery
Overview
CloudQuery, c'est le framework open-source qui pense que tes ressources cloud devraient être interrogeables en SQL. Il transforme tes ressources cloud en bases de données SQL, permettant d'interroger, analyser et auditer tes ressources cloud avec SQL standard. Il supporte AWS, Azure, GCP, et de nombreux autres providers. Si tu veux analyser tes coûts et ta gouvernance avec SQL, c'est parfait.
CloudQuery collecte les métadonnées et les configurations de tes ressources cloud et les stocke dans une base de données (PostgreSQL, SQLite, etc.). Tu utilises ensuite SQL pour analyser les coûts, détecter les non-conformités, identifier les ressources inutilisées, et générer des rapports.
CloudQuery se distingue par son approche SQL (tu utilises SQL, pas un langage propriétaire), son support multi-providers (50+ providers, tout y passe), et sa flexibilité pour l'analyse de coûts et la gouvernance (tu fais ce que tu veux avec SQL).
Informations essentielles
| Propriété | Valeur |
|---|---|
| Site officiel | https://www.cloudquery.io/ |
| Repository | https://github.com/cloudquery/cloudquery |
| Licence | MPL 2.0 |
| Langage | Go |
| Providers supportés | AWS, Azure, GCP, DigitalOcean, GitHub, Okta, et 50+ autres |
| Bases de données | PostgreSQL, SQLite, MySQL, BigQuery |
Fonctionnalités principales
Collecte multi-providers
- Support de 50+ providers cloud et SaaS
- Synchronisation automatique des ressources
- Collecte des métadonnées et configurations
- Support des relations entre ressources
Analyse SQL
- Requêtes SQL standard sur vos ressources cloud
- Jointures entre différents providers
- Agrégations et analyses complexes
- Export des résultats en CSV, JSON, etc.
Politiques et compliance
- Détection de non-conformités avec SQL
- Politiques personnalisables
- Intégration avec OPA (Open Policy Agent)
- Rapports de compliance automatiques
Analyse de coûts
- Requêtes SQL pour analyser les coûts
- Identification des ressources coûteuses
- Détection de ressources inutilisées
- Rapports de coûts personnalisés
Cas d'usage
- Analyse de coûts : Identifier les ressources les plus coûteuses avec SQL
- Gouvernance : Détecter les non-conformités et les violations de politiques
- Audit : Auditer les configurations et les accès
- Optimisation : Identifier les ressources inutilisées ou surdimensionnées
- Reporting : Générer des rapports personnalisés avec SQL
Installation
Via Homebrew
brew install cloudquery/tap/cloudquery
Via script
curl -L https://github.com/cloudquery/cloudquery/releases/latest/download/cloudquery_linux_amd64 -o cloudquery.
chmod +x cloudquery
Via Docker
docker pull ghcr.io/cloudquery/cloudquery:latest
Utilisation basique
Configuration initiale
# Initialiser CloudQuery
cloudquery init aws
# Synchroniser les ressources AWS
cloudquery sync aws
Requêtes SQL
-- Trouver les instances EC2 les plus coûteuses
SELECT
instance_type,
COUNT(*) as count,
SUM(estimated_monthly_cost) as total_cost
FROM aws_ec2_instances.
GROUP BY instance_type.
ORDER BY total_cost DESC;
-- Identifier les ressources inutilisées
SELECT *
FROM aws_ec2_instances.
WHERE state = 'stopped'
AND launch_time < NOW() - INTERVAL '30 days';
Avantages
- ✅ Open-source : code source disponible et communauté active, tu ne seras pas seul
- ✅ Multi-providers : support de 50+ providers, tout y passe
- ✅ SQL standard : tu utilises SQL, pas un langage propriétaire, c'est simple
- ✅ Flexible : analyse personnalisable avec SQL, tu fais ce que tu veux
- ✅ Extensible : plugins pour ajouter de nouveaux providers, tu adaptes selon tes besoins
Limitations
- Nécessite une base de données pour stocker les données : il faut PostgreSQL ou SQLite, évidemment
- La collecte initiale peut prendre du temps pour de gros environnements : mais une fois que c'est fait, c'est rapide
- Certaines analyses avancées nécessitent des connaissances SQL : mais si tu connais SQL, c'est simple
Alternatives
- Steampipe : Outil similaire avec support SQL
- Terraform Cloud : Analyse de coûts intégrée (limité à Terraform)
- AWS Config : Service natif AWS (limité à AWS)
Ressources
- Documentation : https://www.cloudquery.io/docs
- GitHub : https://github.com/cloudquery/cloudquery
- Exemples de requêtes : https://www.cloudquery.io/docs/cloudquery/overview/examples