Home  >  Article  >  Database  >  Migrating to Amazon RDS

Migrating to Amazon RDS

DDD
DDDOriginal
2024-09-18 20:06:37412browse

Migrating to Amazon RDS

A lab on migrating to Amazon RDS typically involves transferring an existing on-premises or cloud-hosted database to Amazon's Relational Database Service (RDS). The goal is to reduce the operational burden of managing databases by leveraging AWS's managed service for automated backups, patching, monitoring, and scaling.

Objective:

  • Create an Amazon RDS MariaDB instance by using the AWS CLI.
  • Migrate data from a MariaDB database on an EC2 instance to an Amazon RDS MariaDB instance.
  • Monitor the Amazon RDS instance by using Amazon CloudWatch metrics.

Summary:

  • Creating an Amazon RDS instance by using the AWS CLI
  • Migrating application data to the Amazon RDS instance
  • Configuring the website to use the Amazon RDS instance
  • Monitoring the Amazon RDS database

The application database runs in an Amazon Elastic Compute Cloud (Amazon EC2) Linux, Apache, MySQL, and PHP (LAMP) instance along with the application code. The instance has a T3 small instance type and runs in a public subnet so that internet clients can access the website. A CLI Host instance resides in the same subnet to facilitate the instance's administration by using the AWS Command Line Interface (AWS CLI).

Creating an Amazon RDS instance by using the AWS CLI:

  • Configure the AWS CLI.
  • Create the following prerequisite components required to build the Amazon RDS instance:
  • A security group firewall for the Amazon RDS instance
  • Two private subnets and a database subnet group
  • Create the Amazon RDS MariaDB instance.
  • On the AWS Management Console, in the Search bar, enter and choose EC2 to open the EC2 Management Console.
  • In the navigation pane, choose Instances.
  • From the list of instances, select the CLI Host instance.
  • Choose Connect.
  • On the EC2 Instance Connect tab, choose Connect.
  • To set up the AWS CLI profile with credentials, in the EC2 Instance Connect terminal, run the following command: ‘aws configure’
  • Enter the user's access key and secret access key.
  • Create Security Group: Set up CafeDatabaseSG to protect the RDS instance.
  • Add Inbound Rule: Allow only MySQL requests (TCP protocol, port 3306) from instances in CafeSecurityGroup.
  • Create Private Subnets: Establish two private subnets (CafeDB Private Subnet 1 and CafeDB Private Subnet 2).
  • Create Database Subnet Group: Define a CafeDB Subnet Group for RDS, associating it with the private subnets.
  • Create CafeDatabaseSG Security Group: Run command: aws ec2 create-security-group --group-name CafeDatabaseSG --description "Security group for Cafe database" --vpc-id

Output: Note the GroupId for future use.

  • Create Inbound Rule for CafeDatabaseSG:
    Run command:
    aws ec2 authorize-security-group-ingress
    --group-id
    --protocol tcp --port 3306
    --source-group

  • Verify Inbound Rule:
    Run command:
    aws ec2 describe-security-groups
    --query "SecurityGroups[*].[GroupName,GroupId,IpPermissions]"
    --filters "Name=group-name,Values='CafeDatabaseSG'"

  • Create CafeDB Private Subnet 1
    Run command:
    aws ec2 create-subnet
    --vpc-id
    --cidr-block 10.200.2.0/23
    --availability-zone

Output: Note the SubnetId for future use.

  • Create CafeDB Private Subnet 2
    Run command:
    aws ec2 create-subnet
    --vpc-id
    --cidr-block 10.200.10.0/23
    --availability-zone
    Output: Note the SubnetId for future use.

  • Create DB Subnet Group
    Run command:
    aws rds create-db-subnet-group
    --db-subnet-group-name "CafeDB Subnet Group"
    --db-subnet-group-description "DB subnet group for Cafe"
    --subnet-ids
    --tags "Key=Name,Value= CafeDatabaseSubnetGroup"

  • Create the CafeDBInstance

Run the following command to create the MariaDB instance with the specified configuration:
Run command:
aws rds create-db-instance
--db-instance-identifier CafeDBInstance
--engine mariadb
--engine-version 10.5.13
--db-instance-class db.t3.micro
--allocated-storage 20
--availability-zone
--db-subnet-group-name "CafeDB Subnet Group"
--vpc-security-group-ids
--no-publicly-accessible
--master-username root --master-user-password 'Re:Start!9'

Key settings:

  • Pengecam tika DB: CafeDBInstance
  • Enjin: MariaDB (versi 10.5.13)
  • Kelas instance: db.t3.micro
  • Storan yang diperuntukkan: 20 GB
  • Kumpulan keselamatan: CafeDatabaseSG
  • Nama pengguna: root
  • Kata Laluan: Re:Start!9
    Penciptaan tika pangkalan data mungkin mengambil masa sehingga 10 minit.

  • Pantau Status Instance DB

Selepas menjalankan arahan penciptaan, pantau status pangkalan data dengan menjalankan arahan berikut:
Jalankan arahan:

aws rds describe-db-instances
--db-instance-identifier CafeDBInstance
--query "DBInstances[*].[Endpoint.Address,AvailabilityZone,PreferredBackupWindow,BackupRetentionPeriod,DBInstanceStatus]"

Perkara yang perlu ditonton: Perintah akan mengembalikan maklumat seperti alamat titik akhir, zon ketersediaan, tetingkap sandaran, tempoh pengekalan dan status kejadian.
Pada mulanya, status akan ditunjukkan sebagai mencipta dan kemudian berkembang melalui pengubahsuaian, sandaran dan akhirnya tersedia.

  • Teruskan jalankan perintah status setiap beberapa minit sehingga status pangkalan data menunjukkan tersedia. Jalankan arahan: aws rds describe-db-instances --db-instance-identifier CafeDBInstance --query "DBInstances[*].[DBInstanceStatus]"

Menghijrahkan data aplikasi ke contoh Amazon RDS:

  • Sambung ke Instance EC2 (CafeInstance)
  • Dalam terminal, jalankan arahan berikut untuk membuat sandaran pangkalan data cafe_db tempatan:
    Arahan Jalankan:
    mysqldump --user=root --password='Re:Start!9'
    --databases cafe_db --add-drop-database > cafedb-backup.sql

  • Semak Fail Sandaran
    Anda boleh menyemak kandungan sandaran menggunakan perintah less:
    Arahan Jalankan:
    kurang cafedb-backup.sql

Gunakan kekunci anak panah atau Halaman Atas/Bawah untuk menavigasi dan q untuk berhenti.

  • Pulihkan Sandaran ke Pangkalan Data Amazon RDS
    Jalankan arahan berikut untuk memulihkan sandaran kepada contoh RDS. Gantikan dengan titik akhir contoh RDS sebenar anda:
    Jalankan Perintah
    mysql --user=root --password='Re:Start!9'
    --tuan rumah=
    < cafedb-backup.sql

  • Sahkan Pemindahan Data
    Buka sesi MySQL interaktif kepada contoh RDS:
    Arahan Jalankan:
    mysql --user=root --password='Re:Start!9'
    --tuan rumah=
    cafe_db

Sebaik sahaja dalam sesi MySQL, sahkan data dalam jadual produk dengan menjalankan pertanyaan SQL berikut:
sql
Arahan Jalankan:
pilih * daripada produk;

Pastikan data yang dikembalikan sepadan dengan pangkalan data asal.

  • Keluar dari Sesi MySQL Selepas mengesahkan data, keluar dari sesi MySQL dengan memasukkan: Jalankan Perintah keluar

Nota: Pastikan tetingkap SSH terbuka untuk tugasan masa hadapan.

Mengkonfigurasi tapak web untuk menggunakan contoh Amazon RDS

  • Buka Pengurus Sistem AWS
    Dalam AWS Management Console, cari Pengurus Sistem dalam bar carian.
    Navigasi ke Pengurus Sistem.

  • Stor Parameter Akses
    Dalam anak tetingkap navigasi kiri, pilih Kedai Parameter.

  • Edit Parameter /cafe/dbUrl
    Daripada senarai Parameter saya, pilih /cafe/dbUrl.
    Pilih Edit untuk mengubah suai nilai parameter.

  • Kemas kini URL Pangkalan Data
    Dalam halaman butiran Parameter, gantikan nilai sedia ada dengan Alamat Titik Akhir Pangkalan Data Instance RDS.
    Formatnya hendaklah seperti:
    Arahan Jalankan:

cafedbinstance.xxxxxxx.us-west-2.rds.amazonaws.com

Klik Simpan perubahan untuk mengemas kini parameter.

  • Uji Tapak Web

Buka tetingkap penyemak imbas baharu dan tampal CafeInstanceURL yang anda simpan sebelum ini (cth., http://ec2-xx-xx-xx-xx.compute-1.amazonaws.com).
Halaman utama tapak web kafe harus dimuatkan.

  • Sahkan Sambungan Pangkalan Data Pergi ke tab Sejarah Pesanan di tapak web. Semak bilangan pesanan yang dipaparkan. Ia sepatutnya sepadan dengan nombor daripada pangkalan data tempatan sebelum penghijrahan.

Memantau pangkalan data Amazon RDS

  • Buka Amazon RDS Console
    Dalam AWS Management Console, cari RDS.
    Pergi ke Konsol Pengurusan RDS.

  • Pilih Pangkalan Data
    Dalam anak tetingkap navigasi kiri, pilih Pangkalan Data.
    Daripada senarai, pilih cafedbinstance.
    Anda kini akan melihat maklumat terperinci tentang pangkalan data.

  • Lihat Metrik Pemantauan
    Klik pada tab Pemantauan.
    Tab ini memaparkan metrik utama, termasuk:

  1. Penggunaan CPU
  2. Sambungan Pangkalan Data
  3. FreeStorageSpace
  4. FreeableMemory
  5. WriteIOPS
  6. ReadIOPS
  • Pantau Metrik Sambungan Pangkalan Data
    Cari graf DatabaseConnections. Jika perlu, pergi ke halaman 2 atau 3 carta metrik.
    Graf ini menjejaki bilangan sambungan pangkalan data yang aktif.

  • Sambung ke Pangkalan Data RDS
    Dalam tetingkap terminal CafeInstance, jalankan arahan berikut untuk membuka sesi MySQL:
    Jalankan Perintah
    mysql --user=root --password='Re:Start!9'
    --tuan rumah=
    cafe_db

Ganti dengan titik akhir tika RDS anda.

  • Jalankan Pertanyaan SQL Di dalam sesi MySQL, jalankan pertanyaan SQL berikut untuk mendapatkan semula data daripada jadual produk: sql Arahan Jalankan: pilih * daripada produk;

Pertanyaan harus mengembalikan data daripada jadual produk.

  • Semak Graf Sambungan Pangkalan Data
    Dalam konsol RDS, klik graf Sambungan Pangkalan Data.
    Anda kini sepatutnya melihat 1 sambungan aktif daripada sesi SQL interaktif.
    Jika graf tidak dikemas kini, tunggu 1 minit dan klik Muat Semula.

  • Tutup Sesi MySQL
    Dalam tetingkap terminal CafeInstance, keluar dari sesi MySQL:

Jalankan Perintah
keluar

  • Pantau Sambungan Selepas Memutuskan Sambungan
    Tunggu selama 1 minit, kemudian muat semula graf DatabaseConnections dalam konsol RDS.
    Bilangan sambungan kini sepatutnya ditunjukkan sebagai 0.

  • Terokai Metrik Lain
    Anda boleh menerokai metrik tambahan seperti CPUUtilization, FreeStorageSpace, WriteIOPS dan ReadIOPS dengan menyemak grafnya pada tab Pemantauan.

The above is the detailed content of Migrating to Amazon RDS. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn