# Asynchrone regionsübergreifende Abfragen mit StackQL

> AWS-Ressourcen über mehrere Regionen in einer StackQL-Anweisung abfragen und aggregieren, mit Regionslisten und asynchroner Ausführung statt Schleifen pro Region.

Source: https://stackql.io/de/quick-starts/aws/cross-region-queries

In dieser Anleitung zeigen wir eine leistungsfähige Funktion von StackQL: die Möglichkeit, Ressourcen über mehrere AWS-Regionen hinweg abzufragen und zu aggregieren.  Dabei werden zahlreiche API-Anfragen an verschiedene Endpunkte gestellt, die asynchron ausgeführt werden.  Für den Benutzer geschieht dies nahtlos und transparent.  

> StackQL ist ein leistungsfähiges Entwicklungstool, mit dem sich Cloud-Infrastruktur und -Ressourcen per SQL-Syntax abfragen und bereitstellen lassen.  

Getestet mit eingebettetes SQL-Backend Postgres-SQL-Backend macos linux powershell

## AWS-Regionen und -Ressourcen verstehen

AWS-Ressourcen werden an mehreren Standorten weltweit gehostet.  Diese Standorte setzen sich aus Regionen und Availability Zones zusammen und sind darauf ausgelegt, Benutzern das Platzieren von Instanzen und das Speichern von Daten an verschiedenen Orten zu ermöglichen.

## Das Problem mit AWS-Regionen...

Bei der Arbeit mit AWS ist es wichtig zu verstehen, dass die AWS Management Console eine regional begrenzte Sicht auf Ressourcen bietet: Benutzer können jeweils nur mit den Ressourcen einer bestimmten Region arbeiten und diese verwalten.  Ebenso verwenden die Befehle der AWS Command Line Interface (CLI) und die Software Development Kits (SDKs) die Region als Einstiegspunkt für Operationen, sodass zum Ausführen von Befehlen oder Programmen eine Region angegeben werden muss.  

> Das regionale Modell von Cloud-Diensten bringt Komplexität mit sich, wenn sich Ressourcen über mehrere Regionen erstrecken.  Darüber hinaus nutzen Sicherheitsverletzungen, einschließlich Exploits zum Schürfen von Kryptowährungen, häufig Ressourcen in verschiedenen Gebieten, auch jenseits der von Organisationen üblicherweise verwendeten Hauptregion.

## Regionen in StackQL-Abfragen angeben

Mit StackQL können Sie Regionen angeben, um Ressourcen an verschiedenen geografischen Standorten anzusprechen.  Das ist besonders nützlich für die Verwaltung von Ressourcen, die weltweit verteilt sind.

### Beispiel: EC2-Instanzen über mehrere Regionen hinweg auflisten

```sql
SELECT instance_id, region
FROM aws.ec2.instances
WHERE region IN ('us-east-1', 'eu-west-1');
```

Diese Abfrage gibt eine Liste der EC2-Instanzen aus den Regionen `us-east-1` (Nord-Virginia) und `eu-west-1` (Irland) zurück und zeigt, wie StackQL Daten über Regionen hinweg in einer einzigen Abfrage abrufen kann.  Dies lässt sich auch mit Aggregatabfragen verwenden, zum Beispiel:  

```sql
SELECT region, COUNT(*) as num_functions
FROM aws.lambda.functions
WHERE region IN (
  'us-east-1','us-east-2','us-west-1','us-west-2',
  'ap-south-1','ap-northeast-3','ap-northeast-2',
  'ap-southeast-1','ap-southeast-2','ap-northeast-1',
  'ca-central-1','eu-central-1','eu-west-1',
  'eu-west-2','eu-west-3','eu-north-1','sa-east-1')
GROUP BY region;
```

## Die Stärke asynchroner Abfragen

StackQL führt diese regionsübergreifenden Abfragen asynchron aus und stellt dabei mehrere parallele API-Anfragen an AWS.  Das gewährleistet einen effizienten Datenabruf, ohne dass auf den Abschluss der Anfrage einer Region gewartet werden muss, bevor die nächste an der Reihe ist.

## Fazit

Asynchrone regionsübergreifende Abfragen in StackQL bieten eine robuste und effiziente Methode zur Verwaltung von AWS-Ressourcen an verschiedenen geografischen Standorten.  Durch die SQL-ähnliche Syntax dieser Abfragen vereinfacht StackQL komplexe Aufgaben der Cloud-Verwaltung und ist damit ein unverzichtbares Werkzeug für Entwickler und Cloud-Administratoren, die ihre AWS-Infrastruktur optimieren möchten.
