Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menyiapkan infrastruktur Multi-AZ untuk SQL Server Always On FCI dengan menggunakan Amazon FSx
Manish Garg, T.V.R.L.Phani Kumar Dadi, Nishad Mankar, dan RAJNEESH TYAGI, Amazon Web Services
Ringkasan
Jika Anda perlu memigrasi sejumlah besar Microsoft SQL Server Always On Failover Cluster Instances (FCIs) dengan cepat, pola ini dapat membantu Anda meminimalkan waktu penyediaan. Dengan menggunakan otomatisasi dan Amazon FSx untuk Windows File Server, ini mengurangi upaya manual, kesalahan buatan manusia, dan waktu yang diperlukan untuk menyebarkan sejumlah besar cluster.
Pola ini mengatur infrastruktur untuk SQL Server FCIs dalam penerapan Multi-Availability Zone (Multi-AZ) di Amazon Web Services (AWS). Penyediaan layanan AWS yang diperlukan untuk infrastruktur ini diotomatiskan dengan menggunakan templat CloudFormationAWS. Instalasi SQL Server dan pembuatan node cluster pada instans Amazon Elastic Compute Cloud EC2 (Amazon) dilakukan dengan menggunakan PowerShell perintah.
Solusi ini menggunakan sistem file Amazon Multi-AZ FSx untuk Windows yang sangat tersedia sebagai saksi bersama untuk menyimpan file database SQL Server. Sistem FSx file Amazon dan instance EC2 Windows yang menghosting SQL Server digabungkan ke domain AWS Directory Service untuk Microsoft Active Directory (AWS Managed Microsoft AD) yang sama.
Prasyarat dan batasan
Prasyarat
Akun AWS yang aktif
Pengguna AWS dengan izin yang memadai untuk menyediakan sumber daya menggunakan templat AWS CloudFormation
AWS Directory Service untuk Microsoft Active Directory
Kredensil di AWS Secrets Manager untuk mengautentikasi ke AWS Managed Microsoft AD dalam pasangan nilai kunci:
ADDomainName: <Domain Name>
ADDomainJoinUserName: <Domain Username>
ADDomainJoinPassword: <Domain User Password>
TargetOU: <Target OU Value>
Anda akan menggunakan nama kunci yang sama dalam otomatisasi AWS Systems Manager untuk aktivitas gabungan AWS Managed Microsoft AD.
File media SQL Server untuk instalasi SQL Server dan layanan Windows atau akun domain dibuat, yang akan digunakan selama pembuatan cluster
Virtual Private Cloud (VPC), dengan dua subnet publik di Availability Zones terpisah, dua subnet pribadi di Availability Zones, gateway internet, gateway NAT, asosiasi tabel rute, dan server lompat
Versi produk
Arsitektur
Tumpukan teknologi sumber
Tumpukan teknologi target
EC2 Instans AWS
Amazon FSx untuk Server File Windows
Runbook AWS Systems Manager Automation
Konfigurasi jaringan (VPC, subnet, gateway internet, gateway NAT, server lompat, grup keamanan)
AWS Secrets Manager
AWS Dikelola Microsoft AD
Amazon EventBridge
AWS Identity and Access Management (IAM)
Arsitektur target
Diagram berikut menunjukkan akun AWS dalam satu Wilayah AWS, dengan VPC yang mencakup dua Availability Zone, dua subnet publik dengan gateway NAT, server lompat di subnet publik pertama, dua subnet pribadi, masing-masing dengan EC2 instance untuk node SQL Server dalam grup keamanan node, dan sistem FSx file Amazon yang terhubung ke masing-masing node SQL Server. AWS Directory Service, Amazon EventBridge, AWS Secrets Manager, dan AWS Systems Manager juga disertakan.
Otomatisasi dan skala
Layanan AWS
AWS CloudFormation membantu Anda menyiapkan sumber daya AWS, menyediakannya dengan cepat dan konsisten, serta mengelolanya sepanjang siklus hidupnya di seluruh akun dan Wilayah AWS.
AWS Directory Service menyediakan beberapa cara untuk menggunakan Microsoft Active Directory (AD) dengan layanan AWS lainnya seperti Amazon Elastic Compute Cloud (Amazon EC2), Amazon Relational Database Service (Amazon RDS) untuk SQL Server, dan FSx Amazon untuk Windows File Server.
Amazon Elastic Compute Cloud (Amazon EC2) menyediakan kapasitas komputasi yang dapat diskalakan di AWS Cloud. Anda dapat meluncurkan server virtual sebanyak yang Anda butuhkan dan dengan cepat meningkatkannya ke atas atau ke bawah.
Amazon EventBridge adalah layanan bus acara tanpa server yang membantu Anda menghubungkan aplikasi Anda dengan data waktu nyata dari berbagai sumber. Misalnya, fungsi AWS Lambda, titik akhir pemanggilan HTTP menggunakan tujuan API, atau bus acara di akun AWS lainnya.
AWS Identity and Access Management (IAM) membantu Anda mengelola akses ke sumber daya AWS dengan aman dengan mengontrol siapa yang diautentikasi dan diberi wewenang untuk menggunakannya.
AWS Secrets Manager membantu Anda mengganti kredensi hardcode dalam kode Anda, termasuk kata sandi, dengan panggilan API ke Secrets Manager untuk mengambil rahasia secara terprogram.
AWS Systems Manager membantu Anda mengelola aplikasi dan infrastruktur yang berjalan di AWS Cloud. Ini menyederhanakan manajemen aplikasi dan sumber daya, mempersingkat waktu untuk mendeteksi dan menyelesaikan masalah operasional, dan membantu Anda mengelola sumber daya AWS Anda dengan aman dalam skala besar.
Alat lainnya
Repositori kode
Kode untuk pola ini tersedia di repositori GitHub aws-windows-failover-cluster-automation.
Praktik terbaik
Epik
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|
Menyebarkan CloudFormation tumpukan Systems Manager. | Masuk ke akun AWS Anda, dan buka AWS Management Console. Arahkan ke CloudFormation konsol, dan buat CloudFormation tumpukan Systems Manager dengan mengunggah ssm.yaml template. Berikan nilai untuk parameter berikut: StateUnJoinAssociationLoggingBucketName— Berikan nama untuk bucket S3 yang akan dibuat template untuk tujuan logging. SSMAssociationADUnjoinNama — Berikan nama untuk AWS::SSM::Association sumber daya. SSMAutomationDocumentName— Berikan nama untuk runbook Systems Manager Automation. EventBridgeName— Berikan nama untuk bus EventBridge acara.
Menyebarkan CloudFormation tumpukan Systems Manager dengan meluncurkan ssm.yaml CloudFormation template. Template akan membuat runboook Systems Manager Atomation yang dimulai saat EC2 instance baru dengan tag diluncurkan. ADJoined: FSXADD Runbook Otomasi akan menambahkan instance ke direktori AWS Managed Microsoft AD.
| AWS DevOps, DevOps insinyur |
Menyebarkan tumpukan infrastruktur. | Setelah berhasil menyebarkan tumpukan Systems Manager, buat infra tumpukan, yang mencakup node EC2 instance, grup keamanan, sistem file Amazon FSx untuk Windows File Server, dan peran IAM. Arahkan ke CloudFormation konsol dan luncurkan infra-cf.yaml template. Untuk menerapkan tumpukan ini, parameter berikut diperlukan: ActiveDirectoryId— ID untuk AWS Managed Microsoft AD
ADDnsIpAddresses1— Alamat IP DNS utama AWS Managed Microsoft AD
ADDnsIpAddresses2— Alamat IP DNS sekunder AWS Managed Microsoft AD
FSxSecurityGroupName— Nama grup FSx keamanan Amazon
FSxWindowsFileSystemName— Nama FSx drive Amazon
ImageID— ID gambar dasar Windows 2012 R2 atau Amazon Machine Image (AMI) yang digunakan untuk membuat node instance SQL Server
KeyPairName— Pasangan kunci-nilai untuk dilampirkan ke node EC2 instance untuk akses
Node1SecurityGroupName— Nama grup keamanan node pertama
Node2SecurityGroupName— Nama grup keamanan simpul kedua
OUSecretName— Nama rahasia yang berisi informasi AWS Managed Microsoft AD
PrivateSubnet1— ID subnet pribadi pertama
PrivateSubnet2— ID subnet pribadi kedua
SqlFSxFCIName— Nama tag yang diterapkan ke node primer dan sekunder dan ke Amazon FSx.
SqlFSxServerNetBIOSName1— Nama node EC2 instance utama (maksimal 15 karakter)
SqlFSxServerNetBIOSName2— Nama node EC2 instance sekunder (maksimal 15 karakter)
VPC— ID VPC
WorkloadInstanceType— Jenis EC2 contoh
Menyebarkan infra tumpukan. Stack akan membuat semua komponen infrastruktur yang diperlukan untuk mengatur Windows SQL Server FCI. Setelah node EC2 instance diluncurkan, dokumen Systems Manager Automation akan dipanggil untuk menggabungkan instans ini ke AWS Managed Microsoft AD. Anda dapat melacak progres di halaman Otomasi konsol Systems Manager.
| AWS DevOps, DevOps insinyur |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|
Instal alat Windows. | Masuk ke EC2 instance utama, yaitu node 1. Untuk menginstal fitur Windows (Active Directory dan FCI Tools), jalankan PowerShell skrip berikut. Install-WindowsFeature -Name RSAT-AD-Powershell,Failover-Clustering -IncludeManagementTools
Install-WindowsFeature -Name RSAT-Clustering,RSAT-ADDS-Tools,RSAT-AD-Powershell,RSAT-DHCP,RSAT-DNS-Server
Masuk ke EC2 instance sekunder, yaitu node 2, dan jalankan skrip yang sama untuk mengaktifkan fitur pada node 2.
| AWS DevOps, DevOps insinyur, DBA |
Prestage objek komputer cluster di Active Directory Domain Services. | Untuk melakukan prestage objek nama cluster (CNO) di Active Directory Domain Services (AD DS) dan prestage objek komputer virtual (VCO) untuk peran berkerumun, ikuti instruksi dalam dokumentasi Windows Server. | AWS DevOps, DBA, DevOps insinyur |
Buat WSFC. | Untuk membuat cluster Windows Server Failover Clustering (WSFC), lakukan hal berikut: Masuk ke EC2 instance utama, yaitu node 1. Untuk membuat berbagi FSx file Amazon dan memberikan akses penuh ke akun layanan AD yang terdaftar, jalankan kode berikut. Invoke-Command -ComputerName "<FSx Windows Remote PowerShell Endpoint>" -ConfigurationName FSxRemoteAdmin -scriptblock {
New-FSxSmbShare -Name "SQLDB" -Path "D:\share" -Description "SQL Databases Share" -ContinuouslyAvailable $true -FolderEnumerationMode AccessBased -EncryptData $true
grant-fsxsmbshareaccess -name SQLDB -AccountName "<domain\user>" -accessRight Full
}
Perintah ini juga akan membuat file share terus tersedia (CA), yang dioptimalkan untuk digunakan oleh Microsoft SQL Server. Untuk membuat cluster failover pada instance utama (node 1), jalankan perintah berikut. New-Cluster -Name <CNO Name> -Node <Node1 Name>, <Node2 Name> -StaticAddress <Node1 Secondary Private IP>, <Node2 Secondary Private IP>
Perintah ini membutuhkan parameter berikut: Name— Nama cluster (CNO)
Node— Nama-nama node primer dan sekunder, masing-masing
StaticAddress— Alamat IP sekunder dari node primer dan sekunder, masing-masing
Administrator domain atau pengguna biasa harus memiliki izin administrator pada kedua node untuk membuat cluster Windows Server Failover Clustering (WSFC). Jika tidak, perintah sebelumnya akan gagal dan mengembalikan pesan,You do not have administrator privilege on servers. Setelah cluster dibuat, jalankan perintah berikut untuk melampirkan saksi berbagi file. Set-ClusterQuorum -FileShareWitness \\<FSx Windows Remote PowerShell Endpoint>\share\witness
| AWS DevOps, DBA, DevOps insinyur |
Instal cluster failover SQL Server. | Setelah cluster WSFC diatur, instal cluster SQL Server pada instance utama (node1). Di drive T pada kedua node, buat tempdb dan log folder. Folder digunakan dalam PowerShell perintah. Setelah Anda menyalin file media SQL Server untuk instalasi SQL Server pada kedua node, jalankan PowerShell perintah berikut pada node 1 untuk menginstal SQL Server pada node 1.
D:\setup.exe /Q `
/ACTION=InstallFailoverCluster `
/IACCEPTSQLSERVERLICENSETERMS `
/FEATURES="SQL,IS,BC,Conn" `
/INSTALLSHAREDDIR="C:\Program Files\Microsoft SQL Server" `
/INSTALLSHAREDWOWDIR="C:\Program Files (x86)\Microsoft SQL Server" `
/RSINSTALLMODE="FilesOnlyMode" `
/INSTANCEID="MSSQLSERVER" `
/INSTANCENAME="MSSQLSERVER" `
/FAILOVERCLUSTERGROUP="SQL Server (MSSQLSERVER)" `
/FAILOVERCLUSTERIPADDRESSES="IPv4;<2nd Sec Private Ip node1>;Cluster Network 1;<subnet mask>" `
/FAILOVERCLUSTERNETWORKNAME="<Fail over cluster Network Name>" `
/INSTANCEDIR="C:\Program Files\Microsoft SQL Server" `
/ENU="True" `
/ERRORREPORTING=0 `
/SQMREPORTING=0 `
/SAPWD="<Domain User password>" `
/SQLCOLLATION="SQL_Latin1_General_CP1_CI_AS" `
/SQLSYSADMINACCOUNTS="<domain\username>" `
/SQLSVCACCOUNT="<domain\username>" /SQLSVCPASSWORD="<Domain User password>" `
/AGTSVCACCOUNT="<domain\username>" /AGTSVCPASSWORD="<Domain User password>" `
/ISSVCACCOUNT="<domain\username>" /ISSVCPASSWORD="<Domain User password>" `
/FTSVCACCOUNT="NT Service\MSSQLFDLauncher" `
/INSTALLSQLDATADIR="\\<FSX DNS name>\share\Program Files\Microsoft SQL Server" `
/SQLUSERDBDIR="\\<FSX DNS name>\share\data" `
/SQLUSERDBLOGDIR="\\<FSX DNS name>\share\log" `
/SQLTEMPDBDIR="T:\tempdb" `
/SQLTEMPDBLOGDIR="T:\log" `
/SQLBACKUPDIR="\\<FSX DNS name>\share\SQLBackup" `
/SkipRules=Cluster_VerifyForErrors `
/INDICATEPROGRESS
| AWS DevOps, DBA, DevOps insinyur |
Tambahkan simpul sekunder ke cluster. | Untuk menambahkan SQL Server ke node sekunder (node 2), jalankan PowerShell perintah berikut. D:\setup.exe /Q `
/ACTION=AddNode `
/IACCEPTSQLSERVERLICENSETERMS `
/INSTANCENAME="MSSQLSERVER" `
/FAILOVERCLUSTERGROUP="SQL Server (MSSQLSERVER)" `
/FAILOVERCLUSTERIPADDRESSES="IPv4;<2nd Sec Private Ip node2>;Cluster Network 2;<subnet mask>" `
/FAILOVERCLUSTERNETWORKNAME="<Fail over cluster Network Name>" `
/CONFIRMIPDEPENDENCYCHANGE=1 `
/SQLSVCACCOUNT="<domain\username>" /SQLSVCPASSWORD="<Domain User password>" `
/AGTSVCACCOUNT="domain\username>" /AGTSVCPASSWORD="<Domain User password>" `
/FTSVCACCOUNT="NT Service\MSSQLFDLauncher" `
/SkipRules=Cluster_VerifyForErrors `
/INDICATEPROGRESS
| AWS DevOps, DBA, DevOps insinyur |
Uji SQL Server FCI. | Pada instance Windows untuk salah satu node, di Administrative Tools, luncurkan Failover Cluster Manager. Arahkan ke Node, dan konfirmasikan bahwa status node adalah Status Running. Pilih Peran, buka menu konteks (klik kanan) untuk SQL Server (MSSQLSERVER), dan pilih Pindahkan dan Pilih Node. Setelah pemilihan node, SQL Server harus berjalan pada node lain.
| DBA, DevOps insinyur |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|
Pembersihan sumber daya | Untuk membersihkan sumber daya, gunakan proses penghapusan CloudFormation tumpukan AWS: Buka CloudFormation konsol AWS. Pada halaman Stacks, pilih infra tumpukan. Tumpukan pasti sedang berjalan. Di panel detail tumpukan, pilih Hapus. Pilih Hapus tumpukan saat diminta. Ulangi langkah 2-4 untuk ssm tumpukan.
Setelah penghapusan tumpukan selesai, tumpukan akan berada dalam status. DELETE_COMPLETE Tumpukan dalam DELETE_COMPLETE status tidak ditampilkan di CloudFormation konsol secara default. Untuk menampilkan tumpukan yang dihapus, Anda harus mengubah filter tampilan tumpukan seperti yang dijelaskan dalam Melihat tumpukan yang dihapus di konsol CloudFormation AWS. Jika penghapusan gagal, tumpukan akan berada dalam status. DELETE_FAILED Untuk solusi, lihat Menghapus tumpukan gagal dalam CloudFormation dokumentasi. | AWS DevOps, DBA, DevOps insinyur |
Pemecahan Masalah
| Isu | Solusi |
|---|
Kegagalan CloudFormation template AWS | Jika CloudFormation template gagal selama penerapan, lakukan hal berikut: |
Kegagalan bergabung dengan Microsoft AD yang Dikelola AWS | Untuk memecahkan masalah bergabung, ikuti langkah-langkah berikut: Buka konsol System Manager. Pilih Wilayah penyebaran. Di panel kiri, pilih Otomasi, dan temukan runbook Otomasi yang gagal. Buka runbook Otomasi, dan periksa status Eksekusi dan langkah-langkah Eksekusi. Selidiki detail langkah yang gagal untuk melihat kesalahan atau kegagalan yang tepat.
|
Sumber daya terkait