はじめに
この記事では、AWS CLIを使用してRDSインスタンス(MySQL)を作成する手順を解説します。
基本的な設定からRDSインスタンスの起動までの流れを、シンプルにまとめました。
未来の自分への備忘録としても体系的に整理していきますが、この記事が誰かの技術の支えになれば幸いです!
知識整理
今回解説するRDSに関して、過去の記事でも情報を整理しています。詳細を知りたい方は、以下の記事を参考にしてください。
前提条件
AWS CLIがインストール済みで、初期セットアップが完了していることを前提に進めます。
この記事では、以下のようなイメージでRDSインスタンスを作成します。手動操作ではなく、コマンドラインでの自動化を実現しています!
引用画像:https://qiita.com/kokichi8/items/834ca1f26e80fe264733
AWS CLIのインストール手順やセットアップについては、過去の記事を参考にしてみてください!
また、今回の記事ではrootユーザーで技術検証を行っていますが、IAMユーザーで作業する場合は、IAMポリシーに「AmazonRDSFullAccess
」または同等の権限が付与されていることを確認してください。
IAMポリシーの設定手順については、上記の記事をご参考ください!
実際に作成してみた
ここでは、AWS CLIを使用してシンプルな構成のRDSインスタンスを作成する手順を説明します。
事前準備
まず、以下のコマンドを実行して利用可能なVPCを確認します。出力されたvpc-id
をメモしておきます。
aws ec2 describe-vpcs
RDSインスタンスにアクセスするためのセキュリティグループを作成します。以下のコマンドで、事前に確認したvpc-id
を指定してください。
aws ec2 create-security-group \
--group-name MySQLSecurityGroup \
--description "Security group for MySQL RDS instance" \
--vpc-id vpc-12345678
セキュリティグループが正しく作成されていることを確認できました!
次に、作成したセキュリティグループID(例: sg-12345678
)を使用して外部アクセスを許可します。以下のコマンドを実行してください。
aws ec2 authorize-security-group-ingress \
--group-id sg-12345678 \
--protocol tcp \
--port 3306 \
--cidr 0.0.0.0/0
インバウンドルールに、想定通りの設定が追加されていることを確認できます。
0.0.0.0/0
はすべてのIPアドレスからのアクセスを許可します。本番環境では、特定のIPアドレスや範囲に制限することを強く推奨します!
RDSインスタンスを作成するには、サブネットグループを指定する必要があります。以下のコマンドを実行してサブネットグループを作成してください。
aws rds create-db-subnet-group \
--db-subnet-group-name my-mysql-subnet-group \
--db-subnet-group-description "Subnet group for MySQL RDS instance" \
--subnet-ids subnet-0b9f8b9f546a1a8f1 subnet-0245c6346cfb1723d
※subnet-ids
の部分はご自身の環境に合わせて置き換えて、少なくとも2つのサブネットを選択する必要があります。
サブネットグループが正しく作成されていることが確認できました!
RDSインスタンスの作成手順
RDSインスタンスを作成するには、以下のコマンドを使用します。
aws rds create-db-instance \
--db-instance-identifier my-mysql-instance \
--db-instance-class db.t3.micro \
--engine mysql \
--allocated-storage 20 \
--master-username admin \
--master-user-password MySecurePassword123 \
--vpc-security-group-ids sg-03161308e5ea0da80 \
--db-subnet-group-name my-mysql-subnet-group \
--backup-retention-period 7 \
--db-name mydatabase \
--storage-type gp2
注意:
--vpc-security-group-ids
の部分は、事前に作成したセキュリティグループIDに置き換えてください!
コマンドが正常に実行されると、マネジメントコンソールからも作成プロセスが確認できます!
パラメータ説明
以下に、コマンドで使用した主要なパラメータを簡単に解説していきます!
--db-instance-identifier
: RDSインスタンスの一意の名前。
--db-instance-class
: インスタンスの種類。例: db.t3.micro。
--engine
: 使用するデータベースエンジン。ここではmysql。
--allocated-storage
: ストレージの容量(GB)。
--master-username
: データベースの管理者ユーザー名。
--master-user-password
: データベースの管理者パスワード。
--vpc-security-group-ids
: セキュリティグループのID。
--backup-retention-period
: バックアップ保持期間(例: 7日間)。
--availability-zone
: 配置するアベイラビリティゾーン。
--db-name
: 作成するデータベース名。
--storage-type
: ストレージタイプ。gp2は汎用SSD。
インスタンスのステータス確認
RDSインスタンスが作成されるまでに数分かかる場合があります。以下のコマンドを実行し、ステータスを確認してください。
aws rds describe-db-instances \
--db-instance-identifier my-mysql-instance
出力にDBInstanceStatus
が表示され、available
になるまで待機します。
{
"DBInstances": [
{
"DBInstanceIdentifier": "my-mysql-instance",
"DBInstanceClass": "db.t3.micro",
"Engine": "mysql",
"DBInstanceStatus": "available",
"MasterUsername": "admin",
"DBName": "mydatabase",・・・・(省略)
最後に、マネジメントコンソール上からデータベースが作成されていることを確認します。
ステータスが「利用可能」になっていれば、検証は大成功です!
まとめ
AWS CLIを使用してRDSインスタンス(MySQL)を作成する手順をご紹介しました。
基本的な手順を説明しましたが、必要に応じてIDや設定値を修正すれば、そのままハンズオン形式で実践できる内容となっています。ぜひ試してみてください!!
この記事が、どなたかの技術的な支えになれば幸いです!
関連記事