Amazon RDS (リレーショナル データベース サービス) は、クラウドでのリレーショナル データベースのセットアップ、操作、スケーリングを簡素化します。 Terraform を使用すると、MySQL RDS インスタンスをコードとして管理できるため、一貫性が確保され、デプロイが容易になります。この記事では、Terraform を使用して AWS 上に MySQL RDS インスタンスを作成するプロセスについて説明します。
始める前に、以下のものがあることを確認してください:
まず、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 }
次に、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 } }
次に、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 } }
Terraform 構成の準備ができたら、次の手順に従って MySQL RDS インスタンスをデプロイします。
terraform init
terraform plan
terraform apply
このプロセスでは、構成で定義されているように、AWS 上に MySQL RDS インスタンスが作成されます。インスタンスは、データベースへのアクセスを制御するカスタム セキュリティ グループで保護されます。
インスタンスが起動して実行されると、AWS マネジメント コンソールで提供されるエンドポイントを介して、または Terraform 出力 (構成されている場合) を介してアクセスできます。信頼できるソースからのアクセスのみを許可するようにセキュリティ グループが適切に構成されていることを確認してください。
MySQL RDS インスタンスが不要になった場合は、コストの発生を避けるために、Terraform によって作成されたリソースを破棄できます。
terraform destroy
このコマンドは、RDS インスタンスと関連するセキュリティ グループを AWS アカウントから削除します。
Terraform を使用した AWS MySQL RDS インスタンスの作成は、データベース インフラストラクチャをコードとして管理できる合理化されたプロセスです。 Terraform 構成ファイルで RDS インスタンスとそのセキュリティ設定を定義すると、一貫性と効率性を保ちながらデータベース リソースを簡単にデプロイ、変更、破棄できます。
実稼働環境の場合は、マルチ AZ 展開、暗号化、強化された監視などの追加構成を検討してください。 Terraform の柔軟性とパワーにより、クラウド インフラストラクチャを管理するための理想的なツールとなり、リソースがベスト プラクティスに従ってデプロイおよび維持されるようになります。
以上がTerraform を使用した AWS MySQL RDS インスタンスの作成の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。