1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

技術検証:AWS CLIを活用したRDSインスタンス(MySQL)の作成と主要パラメータの解説

Last updated at Posted at 2024-12-23

はじめに

この記事では、AWS CLIを使用してRDSインスタンス(MySQL)を作成する手順を解説します。

基本的な設定からRDSインスタンスの起動までの流れを、シンプルにまとめました。

未来の自分への備忘録としても体系的に整理していきますが、この記事が誰かの技術の支えになれば幸いです!

知識整理

今回解説するRDSに関して、過去の記事でも情報を整理しています。詳細を知りたい方は、以下の記事を参考にしてください。

前提条件

AWS CLIがインストール済みで、初期セットアップが完了していることを前提に進めます。

この記事では、以下のようなイメージでRDSインスタンスを作成します。手動操作ではなく、コマンドラインでの自動化を実現しています!

スクリーンショット 2024-12-23 21.54.20.png
引用画像: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

セキュリティグループが正しく作成されていることを確認できました!

スクリーンショット 2024-12-23 20.48.22.png

次に、作成したセキュリティグループID(例: sg-12345678)を使用して外部アクセスを許可します。以下のコマンドを実行してください。

aws ec2 authorize-security-group-ingress \
    --group-id sg-12345678 \
    --protocol tcp \
    --port 3306 \
    --cidr 0.0.0.0/0

インバウンドルールに、想定通りの設定が追加されていることを確認できます。

スクリーンショット 2024-12-23 20.55.27.png

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つのサブネットを選択する必要があります。

スクリーンショット 2024-12-23 21.32.05.png

サブネットグループが正しく作成されていることが確認できました!

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に置き換えてください!

コマンドが正常に実行されると、マネジメントコンソールからも作成プロセスが確認できます!

スクリーンショット 2024-12-23 21.49.49.png

パラメータ説明

以下に、コマンドで使用した主要なパラメータを簡単に解説していきます!

--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",・・・・(省略)

最後に、マネジメントコンソール上からデータベースが作成されていることを確認します。

スクリーンショット 2024-12-23 21.59.48.png

ステータスが「利用可能」になっていれば、検証は大成功です!

まとめ

AWS CLIを使用してRDSインスタンス(MySQL)を作成する手順をご紹介しました。

基本的な手順を説明しましたが、必要に応じてIDや設定値を修正すれば、そのままハンズオン形式で実践できる内容となっています。ぜひ試してみてください!!

この記事が、どなたかの技術的な支えになれば幸いです!

関連記事

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?