Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
AWSSupport-TroubleshootGlueConnection
Beschreibung
Das AWSSupport-TroubleshootGlueConnections Runbook hilft bei der Behebung von AWS Glue Verbindungsproblemen. Das Ziel der getesteten Verbindung muss über eine JDBC-Verbindung erreicht werden und kann entweder ein Amazon Relational Database Service (Amazon RDS) cluster/instance, ein Amazon Redshift-Cluster oder ein anderes Ziel sein, auf das über JDBC zugegriffen werden kann. In den ersten beiden Fällen wird das Reachability Analyzer-Tool verwendet, um zu ermitteln, ob die Konnektivität zwischen der Quelle (AWS Glue) und dem Ziel (Amazon RDS oder Amazon Redshift) gewährleistet ist.
Wenn das Ziel der Verbindung weder Amazon RDS noch Amazon Redshift ist, wird die Konnektivität trotzdem getestet, indem eine AWS Lambda Funktion im gleichen Subnetz wie die AWS Glue Verbindung erstellt wird (ein Netzwerkpunkt) und überprüft wird, ob der Zielname auflösbar ist und ob er im Zielport erreichbar ist.
Wichtig
Um die Reachability Analyzer-Prüfungen durchzuführen, werden Elastic Network Interfaces in jedem der Datenquellen-Subnetze der Verbindung erstellt. Bitte stellen Sie sicher, dass Sie genügend freie IPs in diesen Subnetzen haben und dass sich der Verbrauch einer IP nicht auf Ihre Arbeitslast auswirkt, bevor Sie diese Automatisierung ausführen.
Wichtig
Alle durch diese Automatisierung erstellten Ressourcen sind markiert, sodass sie leicht gefunden werden können. Die verwendeten Tags sind:
-
AWSSupport-TroubleshootGlueConnection: true -
AutomationExecutionId:Amazon EC2 Systems Manager Execution Id
Wie funktioniert es?
Das Runbook führt die folgenden Schritte aus:
-
Beschreibt die AWS Glue Verbindung zum Abrufen der Quellinformationen (Subnetz und Sicherheitsgruppen) für die Konnektivitätsprüfungen.
-
Ruft die Zielinformationen (Subnetz und Sicherheitsgruppen) aus der Datenquelle ab, auf die in der JDBC-URL verwiesen wird, oder aus den
DatasourceSecurityGroupsParametern und, falls vorhanden.DatasourceSubnets -
Wenn es sich bei der in der JDBC-URL vorhandenen Datenquelle um eine Amazon RDS-Instance oder einen Amazon Redshift-Cluster handelt, erstellt diese Automatisierung ENIs unter Verwendung der in den vorherigen Schritten gesammelten Quell- und Zielinformationen und verwendet Reachability Analyzer, um eine Konnektivitätsprüfung zwischen ihnen durchzuführen.
-
Eine Lambda-Funktion (Network Point of Presence im Kontext dieser Automatisierung) wird verwendet, um L4-Konnektivitäts- und Namensauflösungsprüfungen durchzuführen.
-
Dieselbe Lambda-Funktion wird verwendet, um die Prüfungen am Amazon S3-Endpunkt durchzuführen.
-
Der Policy Simulator wird verwendet, um zu ermitteln, ob die in der Verbindung verwendete IAM-Rolle über die erforderlichen Berechtigungen verfügt.
-
Die Automatisierung prüft, ob die von der Verbindung verwendete Sicherheitsgruppe die erwartete Konfiguration hat.
-
Es wird ein Bericht generiert, der die möglichen Ursachen für den Ausfall des Testverbindungsvorgangs and/or sowie die erfolgreich durchgeführten Tests enthält.
Führen Sie diese Automatisierung aus (Konsole)
Art des Dokuments
Automatisierung
Eigentümer
Amazon
Plattformen
/
Erforderliche IAM-Berechtigungen
Der AutomationAssumeRole Parameter erfordert die folgenden Aktionen, um das Runbook erfolgreich zu verwenden.
-
cloudformation:CreateStack -
cloudformation:DeleteStack -
ec2:CreateNetworkInsightsPath -
ec2:CreateNetworkInterface -
ec2:CreateTags -
ec2:DeleteNetworkInsightsAnalysis -
ec2:DeleteNetworkInsightsPath -
ec2:DeleteNetworkInterface -
ec2:StartNetworkInsightsAnalysis -
iam:AttachRolePolicy -
iam:CreateRole -
iam:DeleteRole -
iam:DeleteRolePolicy -
iam:DetachRolePolicy -
iam:PutRolePolicy -
iam:TagRole -
lambda:CreateFunction -
lambda:DeleteFunction -
lambda:TagResource -
logs:CreateLogGroup -
logs:DeleteLogGroup -
logs:PutRetentionPolicy -
logs:TagResource -
glue:GetConnection -
glue:GetDataCatalogEncryptionSettings -
cloudformation:DescribeStacks -
cloudformation:DescribeStackEvents -
ec2:DescribeDhcpOptions -
ec2:DescribeNetworkInsightsPaths -
ec2:DescribeNetworkInsightsAnalyses -
ec2:DescribeSecurityGroupRules -
ec2:DescribeSecurityGroups -
ec2:DescribeSubnets -
ec2:DescribeVpcs -
ec2:DescribeVpcAttribute -
iam:GetRole -
iam:ListAttachedRolePolicies -
iam:SimulatePrincipalPolicy -
kms:DescribeKey -
lambda:InvokeFunction -
lambda:GetFunction -
s3:GetEncryptionConfiguration -
iam:PassRole
Wichtig
Zusätzlich zu den oben genannten Aktionen AutomationAssumeRole sollte die verwaltete Richtlinie AmazonVPCReachabilityAnalyzerFullAccessPolicy als Anhang enthalten sein, damit die Reachability Analyzer-Tests erfolgreich durchgeführt werden.
Hier ist ein Beispiel für eine Richtlinie, die gewährt werden könnte für: AutomationAssumeRole
Anweisungen
Folgen Sie diesen Schritten, um die Automatisierung zu konfigurieren:
-
Navigieren Sie
AWSSupport-TroubleshootGlueConnectionim Systems Manager unter Dokumente zu. -
Wählen Sie Execute automation (Automatisierung ausführen).
-
Geben Sie für die Eingabeparameter Folgendes ein:
-
AutomationAssumeRole (Fakultativ):
Der Amazon-Ressourcenname (ARN) der AWS AWS Identity and Access Management (IAM) -Rolle, die es Systems Manager Automation ermöglicht, die Aktionen in Ihrem Namen durchzuführen. Wenn keine Rolle angegeben ist, verwendet Systems Manager Automation die Berechtigungen des Benutzers, der dieses Runbook startet.
-
TestConnectionRole (Erforderlich)
Der Amazon-Ressourcenname (ARN) der IAM-Rolle, der während des Verbindungstests verwendet wird.
-
ConnectionName (Erforderlich)
AWS Glue Name der fehlgeschlagenen Testverbindung, die Sie beheben möchten.
-
PersistReachabilityAnalyzerResults(Fakultativ)
Das Kennzeichen, das darüber informiert, ob die Ergebnisse der Reachability Analyzer-Ausführung beibehalten werden sollen oder nicht. Standard:
false. -
PointOfPresenceLogRetentionPeriod(Fakultativ)
Die Anzahl der Tage, für die die Protokolle für den Point of Presence Lambda gespeichert werden. Standard:
7. -
DatasourceSubnets (Fakultativ)
Wenn die ursprüngliche Datenquelle nicht verfügbar ist, verwenden Sie diesen Parameter, um die verwendeten Subnetze anzugeben, sodass die Konnektivitätstests weiterhin durchgeführt werden. Muss mit verwendet werden.
DatasourceSecurityGroupsBeispiel:subnet-1,subnet-2. -
DatasourceSecurityGroups (Fakultativ)
Wenn die ursprüngliche Datenquelle nicht verfügbar ist, verwenden Sie diesen Parameter, um die verwendeten Sicherheitsgruppen anzugeben, sodass die Konnektivitätstests weiterhin durchgeführt werden. Muss mit verwendet werden.
DatasourceSubnetsBeispiel:sg-1,sg-2.
-
-
Wählen Sie Ausführen aus.
-
Die Automatisierung wird eingeleitet.
-
Das Automatisierungs-Runbook führt die folgenden Schritte aus:
-
ParseInputs:
In diesem Schritt wird die Kombination von Eingaben validiert. Wenn beide
DatasourceSecurityGroupsangegebenDatasourceSubnetswerden, sind sie gültig und werden unverändert zurückgegeben. Wenn keine angegeben werden, werden zwei leere Listen zurückgegeben. Wenn nur eine von ihnen bereitgestellt wird, löst der Schritt eine ausValueException. -
GetConnectionDetails:
Dieser Schritt gibt die Details der bereitgestellten AWS Glue Verbindung zurück.
-
ParseSecurityGroupList:
Dieser Schritt wird verwendet, um das
SecurityGroupIdListIn aStringfür die zukünftige Verwendung in dieser Automatisierung zu verketten. -
GetConnectionData:
Ermittelt anhand der JDBC-URL, welche Art von Verbindung zwischen:, und.
RedShiftRdsInstanceRdsClusterOtherGibt außerdem die in der JDBC-Verbindung verwendete Domain und den Port, die Amazon VPC der Verbindung und ihre Domainnamenserver zurück. -
GetNetworkDetails:
Ruft die Subnetz- und Sicherheitsgruppeninformationen vom Amazon RDS- oder Amazon Redshift-Ziel ab.
-
Eine Vorlage erstellen:
Generiert die AWS CloudFormation Vorlage, die zum Erstellen der Netzwerkschnittstellen verwendet wird, die zum Testen der Konnektivität verwendet werden. Dies ist erforderlich, um das Reachability Analyzer-Tool auszuführen.
-
ENIStack erstellen:
Erstellt den CloudFormation Stapel aus der Vorlage, die im vorherigen Schritt erstellt wurde.
-
GetStackDetails:
Beschreibt den CloudFormation Stapel, der im vorherigen Stapel erstellt wurde, und ruft die
SourceNetworkInterfaceTargetNetworkInterfacesInformationen ab. -
RunSourceToTargetCheck:
Führt mithilfe des Reachability Analyzer-Tools Überprüfungen zwischen den Quell- und Ziel-ENIs durch, die im vorherigen Schritt erstellt wurden.
-
ENI-Stack löschen:
Löscht den Stack, der CloudFormation Netzwerkschnittstellen erstellt
-
CreateNetworkPointOfPresence:
CloudFormation erstellt die Lambda-Funktion, die als Netzwerkpoint of Presence verwendet wird.
-
GetFunctionName:
Führt einen CloudFormation Describe-Stack-API-Aufruf durch, um den Namen der im vorherigen Schritt erstellten Lambda-Funktion abzurufen.
-
RunEndpointChecks:
Ermittelt anhand des Network Point of Presence, ob der in der JDBC-Verbindung vorhandene Endpunkt über den deklarierten Port auflösbar und erreichbar ist.
-
Überprüft die S3-Konnektivität:
Überprüft die Netzwerkkonnektivität von der AWS Glue Verbindung zum Amazon S3-Service.
-
DeletePointOfPresence:
Löscht den CloudFormation Stack, der den Network Point of Presence Lambda erstellt.
-
TestIAMRolePermissions:
Überprüft, ob die für den Test verwendete IAM-Rolle über die erforderlichen Berechtigungen verfügt, um ihn auszuführen.
-
CheckConnectionSecurityGroupReferencingRule:
Prüft, ob die in der AWS Glue Verbindung verwendete Sicherheitsgruppe den gesamten eingehenden Datenverkehr von sich aus zulässt. Es wird eine Liste der Sicherheitsgruppen ohne diese Regel zurückgegeben, falls vorhanden.
-
GenerateReport:
Generiert einen Bericht, der eine Liste der Ergebnisse (mögliche Gründe für den Fehler beim Verbindungstest) und die nächsten Schritte (Versuche, den Fehler beim Verbindungstest zu beheben) enthält.
-
-
Nach Abschluss des Vorgangs finden Sie im Abschnitt Ausgaben die detaillierten Ergebnisse der Ausführung:
-
Ergebnisse der Automatisierung
In diesem Abschnitt finden Sie Szenarien, in denen mögliche Ursachen für das Scheitern des Testverbindungsvorgangs (Ergebnisse) beschrieben werden und wie diese behoben werden können (nächste Schritte). Wenn die Automatisierung die Ursache für den Testfehler nicht finden kann, wird dies ebenfalls in diesem Abschnitt mitgeteilt.
-
Erfolgreiche Tests
In diesem Abschnitt finden Sie Szenarien, die darüber informieren, was mit dieser Automatisierung erfolgreich getestet wurde. Erfolgreiche Tests sind nützlich, falls die Automatisierung nicht in der Lage ist, die Ursache für den Ausfall der Testverbindung zu identifizieren, da sie den Umfang der Untersuchung einschränken, da sie darüber informieren, was nicht zu dem Problem beiträgt.
-
Fehler bei der Automatisierung
In diesem Abschnitt finden Sie Szenarien, die Probleme beschreiben, die während der Automatisierung aufgetreten sind und die möglicherweise die Anzahl der Tests begrenzt haben, die die Automatisierung durchführen konnte. Die Beschreibung des Szenarios gibt Aufschluss darüber, welcher Schritt fehlgeschlagen ist.
-
Referenzen
Systems Manager Automation