Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
AWSSupport-TroubleshootGlueConnection
Deskripsi
AWSSupport-TroubleshootGlueConnectionsRunbook membantu memecahkan masalah koneksi AWS Glue . Target koneksi yang diuji harus dicapai melalui koneksi JDBC dan dapat berupa cluster/instance Amazon Relational Database Service (Amazon RDS), cluster Amazon Redshift, atau target lain yang dapat diakses melalui JDBC. Dalam dua kasus pertama, alat Reachability Analyzer digunakan untuk menentukan apakah konektivitas antara source AWS Glue() dan target (Amazon RDS atau Amazon Redshift) diberikan.
Jika target koneksi bukan Amazon RDS atau Amazon Redshift, konektivitas masih diuji dengan membuat AWS Lambda fungsi di subnet yang sama dengan koneksi (titik keberadaan jaringan) dan memeriksa apakah nama target dapat diselesaikan dan apakah dapat dijangkau di port target. AWS Glue
penting
Untuk menjalankan pemeriksaan Reachability Analyzer, Elastic Network Interfaces akan dibuat di setiap subnet sumber data koneksi. Pastikan Anda memiliki cukup gratis IPs pada subnet tersebut dan bahwa konsumsi satu IP tidak akan memengaruhi beban kerja Anda sebelum menjalankan otomatisasi ini.
penting
Semua sumber daya yang dibuat oleh otomatisasi ini ditandai sehingga dapat dengan mudah ditemukan. Tag yang digunakan adalah:
-
AWSSupport-TroubleshootGlueConnection
: benar -
AutomationExecutionId
:Amazon EC2 Systems Manager Execution Id
Bagaimana cara kerjanya?
Runbook melakukan langkah-langkah berikut:
-
Menjelaskan AWS Glue koneksi untuk mendapatkan informasi sumber (subnet dan grup keamanan) untuk pemeriksaan konektivitas.
-
Mengambil informasi target (subnet dan grup keamanan) dari sumber data yang direferensikan dalam URL JDBC atau dari parameter dan jika ada.
DatasourceSecurityGroups
DatasourceSubnets
-
Jika sumber data yang ada di URL JDBC adalah instans atau klaster Amazon RDS atau kluster Amazon Redshift, otomatisasi ini dibuat menggunakan sumber dan informasi target yang dikumpulkan pada langkah sebelumnya dan ENIs menggunakan Reachability Analyzer untuk melakukan pemeriksaan konektivitas di antara keduanya.
-
Fungsi Lambda (titik kehadiran jaringan, dalam konteks otomatisasi ini) digunakan untuk melakukan konektivitas L4 dan pemeriksaan resolusi nama.
-
Fungsi Lambda yang sama digunakan untuk melakukan pemeriksaan terhadap titik akhir Amazon S3.
-
Simulator Kebijakan digunakan untuk menentukan apakah peran IAM yang digunakan dalam koneksi memiliki izin yang diperlukan.
-
Otomatisasi memeriksa apakah grup keamanan yang digunakan oleh koneksi memiliki konfigurasi yang diharapkan.
-
Laporan dihasilkan yang berisi kemungkinan penyebab kegagalan dalam operasi koneksi pengujian dan/atau juga pengujian yang berhasil dilakukan.
Jenis dokumen
Otomatisasi
Pemilik
Amazon
Platform
/
Izin IAM yang diperlukan
AutomationAssumeRole
Parameter memerlukan tindakan berikut untuk menggunakan runbook dengan sukses.
-
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
penting
Selain tindakan yang disebutkan di atas, Amazon AutomationAssumeRole
harus memiliki kebijakan VPCReachability AnalyzerFullAccessPolicy terkelola terlampir sehingga pengujian Reachability Analyzer berhasil dilakukan.
Berikut adalah contoh kebijakan yang dapat diberikan untukAutomationAssumeRole
:
{ "Version": "2012-10-17", "Statement": [{ "Sid": "TaggedAWSResourcesPermissions", "Effect": "Allow", "Condition": { "StringEquals": { "aws:ResourceTag/AWSSupport-TroubleshootGlueConnection": "true" } }, "Action": [ "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:TagRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:TagResource", "logs:DeleteLogGroup", "logs:CreateLogGroup", "logs:PutRetentionPolicy", "logs:TagResource", "cloudformation:CreateStack", "cloudformation:DeleteStack" ], "Resource": "*" }, { "Sid": "TaggedEC2ResourcesPermissions", "Effect": "Allow", "Condition": { "StringEquals": { "ec2:ResourceTag/AWSSupport-TroubleshootGlueConnection": "true" } }, "Action": [ "ec2:DeleteNetworkInterface" ], "Resource": "*" }, { "Sid": "PutRolePolicy", "Effect": "Allow", "Condition": { "StringEquals": { "iam:ResourceTag/AWSSupport-TroubleshootGlueConnection": "true" } }, "Action": [ "iam:PutRolePolicy", "iam:DeleteRolePolicy" ], "Resource": "*" }, { "Sid": "InvokeFunction", "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": "arn:*:lambda:*:*:function:point-of-presence-*" }, { "Sid": "UnTaggedActions", "Effect": "Allow", "Action": [ "ec2:CreateNetworkInsightsPath", "ec2:DeleteNetworkInsightsAnalysis", "ec2:DeleteNetworkInsightsPath", "ec2:CreateNetworkInterface", "ec2:CreateTags", "ec2:StartNetworkInsightsAnalysis", "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:GetFunction", "s3:GetEncryptionConfiguration" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "arn:*:iam::*:role/point-of-presence-*", "Condition": { "StringLikeIfExists": { "iam:PassedToService": "lambda.amazonaws.com" } } } ] }
Instruksi
Ikuti langkah-langkah ini untuk mengonfigurasi otomatisasi:
-
Arahkan ke
AWSSupport-TroubleshootGlueConnection
Systems Manager di bawah Documents. -
Pilih Jalankan otomatisasi.
-
Untuk parameter input, masukkan yang berikut ini:
-
AutomationAssumeRole (Opsional):
Nama Sumber Daya Amazon (ARN) dari peran AWS AWS Identity and Access Management (IAM) yang memungkinkan Otomasi Systems Manager untuk melakukan tindakan atas nama Anda. Jika tidak ada peran yang ditentukan, Systems Manager Automation menggunakan izin pengguna yang memulai runbook ini.
-
TestConnectionRole (Diperlukan)
Nama Sumber Daya Amazon (ARN) dari peran IAM yang digunakan selama pengujian koneksi.
-
ConnectionName (Diperlukan)
AWS Glue gagal menguji nama koneksi yang ingin Anda pecahkan masalah.
-
PersistReachabilityAnalyzerResults(Opsional)
Bendera yang menginformasikan apakah hasil eksekusi Reachability Analyzer harus disimpan atau tidak. Default:
false.
-
PointOfPresenceLogRetentionPeriod(Opsional)
Jumlah hari log untuk titik keberadaan Lambda akan disimpan. Default:
7
. -
DatasourceSubnets (Opsional)
Jika sumber data asli tidak tersedia, gunakan parameter ini untuk menyediakan subnet yang digunakan sehingga tes konektivitas masih dilakukan. Harus digunakan dengan
DatasourceSecurityGroups
. Contoh:subnet-1,subnet-2
. -
DatasourceSecurityGroups (Opsional)
Jika sumber data asli tidak tersedia, gunakan parameter ini untuk menyediakan grup keamanan yang digunakan sehingga tes konektivitas masih dilakukan. Harus digunakan dengan
DatasourceSubnets
. Contoh:sg-1,sg-2
.
-
-
Pilih Jalankan.
-
Otomatisasi dimulai.
-
Runbook otomatisasi melakukan langkah-langkah berikut:
-
ParseInputs:
Langkah ini memvalidasi kombinasi input. Jika keduanya
DatasourceSecurityGroups
danDatasourceSubnets
disediakan, mereka valid dan dikembalikan apa adanya. Jika tidak ada yang disediakan, dua daftar kosong dikembalikan. Jika hanya satu dari mereka disediakan, langkahnya memunculkan aValueException
. -
GetConnectionDetails:
Langkah-langkah ini mengembalikan rincian AWS Glue koneksi yang disediakan.
-
ParseSecurityGroupList:
Langkah ini digunakan untuk menggabungkan pemanfaatan in a for
String
futureSecurityGroupIdList
dalam otomatisasi ini. -
GetConnectionData:
Menentukan berdasarkan URL JDBC, jenis koneksi antara:
RedShift
,RdsInstance
,RdsCluster
dan.Other
Selain itu, mengembalikan domain dan port yang digunakan dalam koneksi JDBC, Amazon VPC koneksi dan server nama domainnya. -
GetNetworkDetails:
Mendapatkan informasi subnet dan grup keamanan dari target Amazon RDS atau Amazon Redshift.
-
BuatENITemplate:
Menghasilkan AWS CloudFormation template yang digunakan untuk membuat antarmuka jaringan yang digunakan untuk menguji konektivitas. Ini diperlukan untuk menjalankan alat Reachability Analyzer.
-
BuatENIStack:
Membuat AWS CloudFormation tumpukan dari template yang dibuat pada langkah sebelumnya.
-
GetStackDetails:
Menjelaskan AWS CloudFormation tumpukan yang dibuat di tumpukan sebelumnya dan mengambil
TargetNetworkInterfaces
informasi.SourceNetworkInterface
-
RunSourceToTargetCheck:
Menjalankan pemeriksaan antara sumber dan target yang ENIs dibuat pada langkah sebelumnya menggunakan alat Reachability Analyzer.
-
HapusENIStack:
Menghapus AWS CloudFormation tumpukan yang membuat Antarmuka Jaringan
-
CreateNetworkPointOfPresence:
AWS CloudFormation menciptakan fungsi Lambda yang digunakan sebagai titik kehadiran jaringan.
-
GetFunctionName:
Melakukan panggilan API stack AWS CloudFormation describe untuk mengambil nama fungsi Lambda yang dibuat pada langkah sebelumnya.
-
RunEndpointChecks:
Menggunakan titik kehadiran jaringan untuk menentukan apakah titik akhir yang ada dalam koneksi JDBC dapat diselesaikan dan dapat dijangkau di port yang dideklarasikan.
-
Checks3konektivitas:
Memeriksa konektivitas jaringan dari AWS Glue koneksi ke layanan Amazon S3.
-
DeletePointOfPresence:
Menghapus AWS CloudFormation tumpukan yang menciptakan titik jaringan kehadiran Lambda.
-
IAMRoleIzin Uji:
Memeriksa apakah peran IAM yang digunakan untuk pengujian memiliki izin yang diperlukan untuk menjalankannya.
-
CheckConnectionSecurityGroupReferencingRule:
Memeriksa apakah grup keamanan yang digunakan dalam AWS Glue koneksi memungkinkan semua lalu lintas masuk dari dirinya sendiri. Ini akan mengembalikan daftar grup keamanan tanpa aturan ini, jika ada.
-
GenerateReport:
Menghasilkan laporan yang berisi daftar temuan (kemungkinan alasan kegagalan dalam tes koneksi) dan langkah selanjutnya (upaya untuk menyelesaikan kegagalan uji koneksi).
-
-
Setelah selesai, tinjau bagian Output untuk hasil eksekusi yang terperinci:
-
Hasil Otomasi
Di bagian ini, Anda akan menemukan skenario yang menjelaskan kemungkinan penyebab kegagalan operasi koneksi pengujian (temuan) dan bagaimana mereka dapat diperbaiki (langkah selanjutnya). Jika otomatisasi tidak dapat menemukan penyebab kegagalan pengujian, ini akan diinformasikan di bagian ini juga.
-
Tes yang Berhasil
Di bagian ini, Anda akan menemukan skenario yang menginformasikan apa yang telah berhasil diuji oleh otomatisasi ini. Pengujian yang berhasil berguna jika otomatisasi tidak dapat mengidentifikasi penyebab kegagalan koneksi pengujian karena mengurangi ruang lingkup penyelidikan dengan menginformasikan apa yang tidak berkontribusi untuk masalah ini.
-
Kesalahan Otomasi
Di bagian ini, Anda akan menemukan skenario yang menjelaskan masalah yang terjadi selama otomatisasi, yang mungkin membatasi jumlah pengujian yang dapat dilakukan otomatisasi. Deskripsi skenario akan menginformasikan langkah mana yang gagal.
-
Referensi
Otomatisasi Systems Manager