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

WBOY
リリース: 2024-08-28 12:35:30
オリジナル
417 人が閲覧しました

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
ログイン後にコピー

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

結論

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

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

以上がTerraform を使用した AWS MySQL RDS インスタンスの作成の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!