「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Terraform を使用した AWS MySQL RDS インスタンスの作成

Terraform を使用した AWS MySQL RDS インスタンスの作成

2024 年 9 月 2 日に公開
ブラウズ:612

Creating an AWS MySQL RDS Instance with Terraform

Terraform を使用した AWS MySQL RDS インスタンスの作成

Amazon RDS (リレーショナル データベース サービス) は、クラウドでのリレーショナル データベースのセットアップ、操作、スケーリングを簡素化します。 Terraform を使用すると、MySQL RDS インスタンスをコードとして管理できるため、一貫性が確保され、デプロイが容易になります。この記事では、Terraform を使用して AWS 上に MySQL RDS インスタンスを作成するプロセスについて説明します。

前提条件

始める前に、以下のものがあることを確認してください:

  • AWS アカウント: RDS インスタンスを作成するために必要な権限を持つアクティブな AWS アカウント。
  • Terraform がインストールされました: Terraform はローカル マシンにインストールされている必要があります。
  • AWS アクセス キーと秘密キー: AWS で Terraform を認証するには、これらの認証情報が必要です。

MySQL RDS インスタンスを作成する手順

1. AWS プロバイダーを定義する

まず、Terraform 構成ファイルで AWS プロバイダーを定義します。これにより、Terraform が認証情報を使用して指定されたリージョンの AWS サービスと対話するように指示されます。

provider "aws" {
  region     = "ap-southeast-2"
  access_key = "your-access-key"  # Replace with your AWS access key
  secret_key = "your-secret-key"  # Replace with your AWS secret key
}

2. セキュリティグループの作成

次に、MySQL RDS インスタンスへのアクセスを制御するセキュリティ グループを定義します。このセキュリティ グループは、MySQL のデフォルト ポートであるポート 3306 での受信トラフィックを許可します。

resource "aws_security_group" "mysql_rds_sg" {
  name        = "rds-sg"
  description = "Security group for MySQL RDS instance"

  ingress {
    from_port   = 3306
    to_port     = 3306
    protocol    = "tcp"
    cidr_blocks = ["0.0.0.0/0"]  # Open to all; consider restricting this to specific IPs for better security
  }
}

3. MySQL RDS インスタンスを作成する

次に、MySQL RDS インスタンス自体を定義します。この構成では、インスタンス タイプ、ストレージ、エンジンのバージョン、その他の詳細を指定します。

resource "aws_db_instance" "awsdevrds" {
   allocated_storage      = 20
   max_allocated_storage  = 150
   storage_type           = "gp2"  # General Purpose SSD storage
   identifier             = "myrdsdev"
   engine                 = "mysql"
   engine_version         = "8.0.33"
   instance_class         = "db.t2.micro"  # Choose an instance class based on your workload
   username               = "admin"  # Replace with your desired username
   password               = "Passw!123"  # Replace with a strong password
   db_name                = "test_mysql_db"  # Name of the database
   backup_retention_period = 7  # Number of days to retain backups
   publicly_accessible    = true  # Make the instance publicly accessible (consider the security implications)
   skip_final_snapshot    = true  # Skip final snapshot when destroying the instance
   vpc_security_group_ids = [aws_security_group.mysql_rds_sg.id]  # Associate with the security group

   tags = {
     Name = "devrds"  # Tag your instance for easy identification
   }
}

4. Terraform 構成の初期化と適用

Terraform 構成の準備ができたら、次の手順に従って MySQL RDS インスタンスをデプロイします。

  • Terraform の初期化:
  terraform init
  • 実行計画の作成:
  terraform plan 
  • プランを適用する:
  terraform apply

このプロセスでは、構成で定義されているように、AWS 上に MySQL RDS インスタンスが作成されます。インスタンスは、データベースへのアクセスを制御するカスタム セキュリティ グループで保護されます。

5. MySQL RDS インスタンスへのアクセス

インスタンスが起動して実行されると、AWS マネジメント コンソールで提供されるエンドポイントを介して、または Terraform 出力(設定されている場合)を介してアクセスできます。信頼できるソースからのアクセスのみを許可するようにセキュリティ グループが適切に設定されていることを確認してください。

6. リソースのクリーンアップ

MySQL RDS インスタンスが不要になった場合は、コストの発生を避けるために Terraform によって作成されたリソースを破棄できます。

terraform destroy

このコマンドは、AWS アカウントから RDS インスタンスと関連するセキュリティ グループを削除します。

結論

Terraform を使用した AWS MySQL RDS インスタンスの作成は、データベース インフラストラクチャをコードとして管理できる合理化されたプロセスです。 RDS インスタンスとそのセキュリティ設定を Terraform 構成ファイルで定義すると、データベース リソースを一貫性と効率よく簡単にデプロイ、変更、破棄できます。

実稼働環境の場合は、マルチ AZ 展開、暗号化、強化された監視などの追加構成を検討してください。 Terraform の柔軟性とパワーにより、クラウド インフラストラクチャを管理するための理想的なツールとなり、リソースがベスト プラクティスに従ってデプロイおよび維持されるようになります。

リリースステートメント この記事は次の場所に転載されています: https://dev.to/giasuddin90/creating-an-aws-mysql-rds-instance-with-terraform-4h8g?1 侵害がある場合は、[email protected] に連絡して削除してください。それ
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3