برنامه نویسی

استفاده از موارد AWS RDS با Terraform: MySQL و PostgreSQL

در این مقاله ، ما به نحوه ارائه نمونه های خدمات وب سایت خدمات وب آمازون (AWS) خدمات (RDS) برای هر دو MySQL و PostgreSQL با استفاده از Terraform می پردازیم. با استفاده از زیرساخت ها به عنوان کد (IAC) می توانیم روند ایجاد این پایگاه داده ها را به صورت خودکار انجام دهیم ، که امکان استقرار زیرساخت های سازگار و قابل تکرار را فراهم می کند.

پیش نیازهای

قبل از اینکه به پیکربندی Terraform شیرجه بزنیم ، حتماً پیش نیازهای زیر را داشته باشید:

  1. شکل: Terraform را روی دستگاه خود نصب کنید. می توانید راهنمای رسمی نصب را در اینجا دنبال کنید.
  2. حساب AWS: اطمینان حاصل کنید که یک حساب AWS فعال دارید.
  3. AWS CLI: AWS CLI را تنظیم کنید و اعتبار خود را پیکربندی کنید. می توانید آن را با استفاده از پیکربندی کنید aws configureبشر
  4. مجوزها: اطمینان حاصل کنید که اعتبار AWS شما مجوزهای کافی برای مدیریت نمونه های RDS دارد.

آنچه ما می سازیم

در این آموزش ، دو نمونه AWS RDS را تعریف خواهیم کرد:

  • mysql: یک نمونه اصلی mySQL با استفاده از mysql8.0 موتور
  • پس از: یک نمونه postgresql با استفاده از جدیدترین postgres16 موتور

ما هر دو مورد را با 20 گیگابایت ذخیره سازی پیکربندی خواهیم کرد ، db.t3.micro نوع نمونه ، و رمزگذاری برای داده ها در حالت استراحت فعال است. موارد همچنین قرار است در دسترس عموم قرار نگیرد و مدت زمان نگهداری پشتیبان 7 روز داشته باشد.

نوشتن پیکربندی terraform

یک پرونده به نام ایجاد کنید main.tfبشر این جایی است که ما منابع Terraform خود را برای تهیه نمونه های RDS تعریف خواهیم کرد.

provider "aws" {
  region = "us-east-1"  # Change to your preferred region
}

# MySQL RDS Instance
resource "aws_db_instance" "mysql" {
  identifier        = "mysql-db-instance"
  engine            = "mysql"
  instance_class    = "db.t3.micro"
  allocated_storage = 20
  db_name           = "mydb_mysql"
  username          = "my_admin"
  password          = "mysecretpassword"
  parameter_group_name = "default.mysql8.0"
  multi_az          = false
  publicly_accessible = false
  backup_retention_period = 7
  storage_type      = "gp2"
  storage_encrypted = true
}

# PostgreSQL RDS Instance
resource "aws_db_instance" "postgres" {
  identifier        = "postgres-db-instance"
  engine            = "postgres"
  instance_class    = "db.t3.micro"
  allocated_storage = 20
  engine_version    = "16"
  db_name           = "mydb_postgres"
  username          = "my_admin"
  password          = "mysecretpassword"
  multi_az          = false
  publicly_accessible = false
  parameter_group_name = "default.postgres16"
  backup_retention_period = 7
  storage_type      = "gp3"
  storage_encrypted = true
}

# Outputs: RDS Endpoints
output "mysql_endpoint" {
  value = aws_db_instance.mysql.endpoint
}

output "postgres_endpoint" {
  value = aws_db_instance.postgres.endpoint
}
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

شکستن پیکربندی

  1. بلوک ارائه دهنده:
   provider "aws" {
     region = "us-east-1"  # Change to your preferred region
   }
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

این بلوک ارائه دهنده AWS را برای Terraform پیکربندی می کند و منطقه ای را که در آن منابع شما ایجاد می شود ، مشخص می کند. شما می توانید مطابق نیاز خود منطقه را تغییر دهید.

  1. mysql rds نمونه:
   resource "aws_db_instance" "mysql" {
     identifier        = "mysql-db-instance"
     engine            = "mysql"
     instance_class    = "db.t3.micro"
     allocated_storage = 20
     db_name           = "mydb_mysql"
     username          = "my_admin"
     password          = "mysecretpassword"
     parameter_group_name = "default.mysql8.0"
     multi_az          = false
     publicly_accessible = false
     backup_retention_period = 7
     storage_type      = "gp2"
     storage_encrypted = true
   }
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

این بلوک منبع یک نمونه RDS را برای MySQL ایجاد می کند. در اینجا تفکیک برخی از خصوصیات کلیدی وجود دارد:

  • engine: موتور پایگاه داده (MySQL) را مشخص می کند.
  • allocated_storage: اندازه ذخیره سازی را در GB تنظیم می کند (20 گیگابایت در اینجا).
  • instance_class: نوع نمونه را تعریف می کند (db.t3.micro در این حالت ، که یک نمونه کم هزینه است).
  • storage_encrypted: تضمین می کند که داده ها در حالت استراحت رمزگذاری می شوند.
  • backup_retention_period: پشتیبان گیری را به مدت 7 روز حفظ می کند.
  1. نمونه postgresql rds:
   resource "aws_db_instance" "postgres" {
     identifier        = "postgres-db-instance"
     engine            = "postgres"
     instance_class    = "db.t3.micro"
     allocated_storage = 20
     engine_version    = "16"
     db_name           = "mydb_postgres"
     username          = "my_admin"
     password          = "mysecretpassword"
     multi_az          = false
     publicly_accessible = false
     parameter_group_name = "default.postgres16"
     backup_retention_period = 7
     storage_type      = "gp3"
     storage_encrypted = true
   }
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

این بلوک شبیه به MySQL است اما برای PostgreSQL. در engine_version ویژگی بر روی 16 تنظیم شده است که آخرین نسخه PostgreSQL را نشان می دهد.

  1. بازده:
   output "mysql_endpoint" {
     value = aws_db_instance.mysql.endpoint
   }

   output "postgres_endpoint" {
     value = aws_db_instance.postgres.endpoint
   }
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

این بلوک های خروجی URL های نقطه پایانی را برای نمونه های MySQL و PostgreSQL RDS پس از ایجاد نشان می دهند. می توانید از این نقاط پایانی برای اتصال به پایگاه داده های خود استفاده کنید.

استفاده از پیکربندی

  1. Terraform را اولیه کنید: برای شروع ، دایرکتوری کار Terraform خود را با دستور زیر آغاز کنید:
   terraform init
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

  1. برنامه ریزی را برنامه ریزی کنید: دستور زیر را برای پیش نمایش منابع Terraform ایجاد کنید:
   terraform plan
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

  1. پیکربندی را اعمال کنید: برای ایجاد نمونه های RDS با اجرای: پیکربندی را اعمال کنید:
   terraform apply
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

Terraform قبل از اقدام ، تأیید را فوری می کند. نوع yes برای ایجاد منابع

تأیید استقرار

پس از اتمام استقرار ، Terraform نقاط پایانی را برای نمونه های MySQL و PostgreSQL RDS وارد می کند. می توانید با استفاده از URL های نقطه انتهایی به همراه نام کاربری و رمزعبور مشخص شده در پیکربندی ، به این موارد متصل شوید.

پایان

در این آموزش ، ما با استفاده از Terraform ، استقرار نمونه های MySQL و PostgreSQL RDS را با موفقیت به صورت خودکار انجام داده ایم. با استفاده از زیرساخت های Terraform به عنوان قابلیت های کد ، می توانیم به سرعت و به طور کارآمد محیط های قابل تکرار برای پایگاه داده های خود ایجاد کنیم.

با افزودن گزینه های سفارشی سازی بیشتر مانند VPC ، گروه های امنیتی و IAM نقش های خود را برای ایمن سازی و بهینه سازی نمونه های RDS خود ، در این پیکربندی گسترش دهید.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا