My Tracking

My Tracking

記憶力の低下が気になるアラフォー男の備忘録

【AWS学習記】WordPress 環境構築③~RDS設定

WordPress構築を行うにあたり、VPCの作成まで完了したため、続いてデータベースサーバを RDSを利用し、構築する。ここでも、極力aws-cliを利用する。

目次

構成

(構成図)

DBサブネットグループの作成

RDSインスタンスVPC内で起動する場合、専用のDBのサブネットグループが 必要となるようなので、作成する。

なお、作成するにあたり、以下で、作成した下記のサブネットに該当するsubnetIDを指定する。

* 10.0.0.1/24 RDSを収容する。(SubnetIDはここでは「subnet-xxx9c098」。
* 10.0.0.2/24 今回はさしあたり利用しない(SubnetIDはここでは「subnet-xxxbf1bf」

[root@Linux ~]# aws rds  create-db-subnet-group --db-subnet-group-name mysql-subnet --db-subnet-group-description mysql-subnet --subnet-ids subnet-xxx9c098 subnet-xxxbf1bf
{
    "DBSubnetGroup": {
        "Subnets": [
            {
                "SubnetStatus": "Active",
                "SubnetIdentifier": "subnet-xxxbf1bf",
                "SubnetAvailabilityZone": {
                    "Name": "ap-northeast-1a"
                }
            },
            {
                "SubnetStatus": "Active",
                "SubnetIdentifier": "subnet-xxx9c098",
                "SubnetAvailabilityZone": {
                    "Name": "ap-northeast-1c"
                }
            }
        ],
        "DBSubnetGroupName": "mysql-subnet",
        "VpcId": "vpc-1fe4027b",
        "DBSubnetGroupDescription": "mysql-subnet",
        "SubnetGroupStatus": "Complete"
    }
}
[root@Linux ~]#

* --db-subnet-group-name・・・DBサブネットグループ名
* --db-subnet-group-description・・・DBサブネットグループ名の説明
* --subnet-ids・・・DBサブネットグループに設定するサブネットIDを指定

RDSインスタンスの起動

RDSインスタンスを起動する。ここでは、mysqlを指定する。

[root@Linux ~]# aws rds create-db-instance \
> --db-instance-identifier aws-mysql-rds \
> --allocated-storage 5 \
> --db-instance-class db.t2.micro \
> --engine MySQL \
> --master-username admin \
> --master-user-password password \
> --vpc-security-group-ids sg-xxxafdb4 \
> --db-subnet-group-name mysql-subnet \
> --backup-retention-period 1 \
> --port 3306 \
> --engine-version 5.6.27 \
> --license-model general-public-license \
> --multi-az \
> --no-publicly-accessible
{
    "DBInstance": {
        "PubliclyAccessible": false,
        "MasterUsername": "admin",
        "MonitoringInterval": 0,
        "LicenseModel": "general-public-license",
        "VpcSecurityGroups": [
            {
                "Status": "active",
                "VpcSecurityGroupId": "sg-xxxafdb4"
            }
        ],
        "CopyTagsToSnapshot": false,
        "OptionGroupMemberships": [
            {
                "Status": "in-sync",
                "OptionGroupName": "default:mysql-5-6"
            }
        ],
        "PendingModifiedValues": {
            "MasterUserPassword": "****"
        },
        "Engine": "mysql",
        "MultiAZ": true,
        "DBSecurityGroups": [],
        "DBParameterGroups": [
            {
                "DBParameterGroupName": "default.mysql5.6",
                "ParameterApplyStatus": "in-sync"
            }
        ],
        "AutoMinorVersionUpgrade": true,
        "PreferredBackupWindow": "19:32-20:02",
        "DBSubnetGroup": {
            "Subnets": [
                {
                    "SubnetStatus": "Active",
                    "SubnetIdentifier": "subnet-xxxbf1bf",
                    "SubnetAvailabilityZone": {
                        "Name": "ap-northeast-1a"
                    }
                },
                {
                    "SubnetStatus": "Active",
                    "SubnetIdentifier": "subnet-xxx9c098",
                    "SubnetAvailabilityZone": {
                        "Name": "ap-northeast-1c"
                    }
                }
            ],
            "DBSubnetGroupName": "mysql-subnet",
            "VpcId": "vpc-xxx4027b",
            "DBSubnetGroupDescription": "mysql-subnet",
            "SubnetGroupStatus": "Complete"
        },
        "ReadReplicaDBInstanceIdentifiers": [],
        "AllocatedStorage": 5,
        "BackupRetentionPeriod": 1,
        "PreferredMaintenanceWindow": "sat:16:22-sat:16:52",
        "DBInstanceStatus": "creating",
        "EngineVersion": "5.6.27",
        "DomainMemberships": [],
        "StorageType": "standard",
        "DbiResourceId": "db-2CMKMOIG35NYIDP7W6BAXI54SQ",
        "CACertificateIdentifier": "rds-ca-2015",
        "StorageEncrypted": false,
        "DBInstanceClass": "db.t2.micro",
        "DbInstancePort": 0,
        "DBInstanceIdentifier": "aws-mysql-rds"
    }
}
[root@Linux ~]#

* --db-instance-identifier・・・RDSインスタンス名を指定する
* --allocated-storage・・・RDSインスタンスで使うディスクを指定(GB)
* --db-instance-class ・・・RDSインスタンスタイプを指定
* --engine・・・DBエンジンを指定
* --master-username・・・管理者ユーザーを指定
* --master-user-password ・・・管理者ユーザーパスワードを指定
* --vpc-security-group-ids・・・VPCセキュリティグループを指定(後述)
* --db-subnet-group-name・・・先の手順で作成したDBサブネットグループ名を指定
* --backup-retention-period・・・自動バックアップの保存世代数を指定
* --multi-az・・・マルチAZ配置の有効・無効を設定
* --no-publicly-accessible・・・DBサブネットグループに設定するサブネットIDを指定

RDS起動確認

AWSコンソール側で、RDSインスタンスが起動したことを確認する。

RDS起動時に指定したVPCセキュリティグループについて

RDS起動時に「--vpc-security-group-ids」に指定するIDがよくわからなかったため。備忘録。

今回は、VPCのセキュリティグループのうち、10.0.0.0.0/16に紐づいているセキュリティグループ (ここでは、「 sg-xxxafdb4」)を指定した。

マルチAZ配置を有効にする際の注意点

無料枠にもかかわらず、またも請求。
明細を見ると下記のとおり。課金。

$0.052 per RDS T2 Micro Multi-AZ Instance hour (or partial hour) running MySQL
$0.24 per GB-month of provisioned storage for Multi-AZ deployments

マルチAZ=無料枠対象外ということか・・・
トホホ・・