前回まで
0から始めるAWS入門:概要
0から始めるAWS入門①:VPC編
0から始めるAWS入門②:EC2編
0から始めるAWS入門③:ELB編
概要
AWSのデータベースサービスRDSの作成を行っていく。
初回の概要に記述したように、MySQL、Oracle、Microsoft SQL Server、PostgreSQLと選択できる。今回はMySQLで構築していく。
下準備
コンソールの[Database]カテゴリからRDSを選択。
DB用サブネットの登録
VPC編で作成したサブネットをRDSで使える用に予め登録しておく必要がある。
[Subnet Groups]を選択後、[Create DB Subnet Group]をクリック。
[Name]は、識別子なので分かりやすい名前を入力する。続いて[Description]に説明を入力後、[VPC ID]でVPC編で作成したVPCを選択する。
その後、[add all the subnets]ボタンをクリックすればVPC内のサブネット全てがDB用のサブネットとしても登録される。
ちなみに、複数のAZにまたがるサブネットを持たないVPCを選択することはできないので注意。
DBのパラメータグループの作成
RDSでは、各DBのパラメーターの設定(mysqlならmy.cnfの内容)をテンプレートとして登録しておける。今回は日本語を扱う上で最低限必要な文字コードの設定をしておく。
[Parameter Groups]を選択後、[Create DB Parameter Group]をクリック。
各項目を設定していく。
項目 | 内容 | 値 |
---|---|---|
DB Parameter Group Family | どのデータベース向けの設定か | 要件に合わせて設定 |
DB Parameter Group Name | パラメータグループ名 | 適当に(今回は日本語向けなのでjapansese) |
DB Parameter Group Description | パラメータグループ説明 | 適当に |
今作成したグループを選択後、[Edit Parameters]をクリック。
そうすると設定できるパラメーターの一覧と選択肢がでてくる。
以下の項目を設定していく。
項目 | 値 |
---|---|
character_set_client | utf8 |
character_set_connection | utf8 |
character_set_database | utf8 |
character_set_server | utf8 |
character_set_system | utf8 |
DB用セキュリティグループの作成
EC2のセキュリティーグループを作成したように、DB用のセキュリティグループも作成する。
コンソールより[VPC]を選択。[Security]カテゴリの[Security Group]を選択する。
上部[Create Security Group]クリックでセキュリティーグループを作成するモーダルが表示される。各項目に下記の値を設定していく。
|項目|値|
|:----|:----|:----|
|Name tag|識別子に使うので分かりやすい名前|
|Group name|上記と同様|
|Description|適当な説明文|
|VPC|VPC編で作成したVPCを選択|
続いて実際にポリシーを設定していく。
今作成したセキュリティーグループを選択後、[Inbound Rules]タブを選択。
[Edit]ボタンをクリックして編集する。
今回はVPC内からのみDBへのアクセスを許可するようなポリシーとする。
Type | Protocol | Port Range | Source |
---|---|---|---|
Mysql | TCP | 3306 | 10.0.0.0/16 |
RDSの作成
再度、コンソールの[Database]カテゴリからRDSを選択。[Get Started Now]ボタンから作成を始める。
エンジンの選択
Mysqlを選択する。
プロダクション環境か?
次に、このDBをプロダクション(本番)環境として使うかを聞かれます。今回は、学習目的として[No]を選択します。また[No]を選択することにより、無料枠の1つの条件となります。
では、今回選択しなかったプロダクション環境の場合何が変わるのか?
まず、ストレージが[Provisioned IOPS Storage]となります。これはEC2編で説明したとおり、一定のIOPSを保証した大規模DB向けのストレージです。
もう一点、[Multi-AZ Deployment]が有効になります。これがRDSの特徴とも言えます。
Multi-AZ Deployment
Multi-AZ Deploymentを選択すると、ホストしているAZとは別のAZに同期・物理レプリケーションを自動で作成してくれます。
また、マスターが死んだとしても、2,3分でフェイルオーバーを行ってくれます。
ただし、リードレプリカ用途では使えないため、別途設定する必要があります。
DB設定
各DBの設定項目を入力していきます。
項目 | 内容 | 値 |
---|---|---|
License Model | ライセンス | general-public-license |
DB Engine Version | DBバージョン | 要件に合わせて選択 |
DB Instance Class | インスタンスのクラス(スペック) | 無料枠適用のためdb.t1.micro |
Multi-AZ Deployment | Multi-AZ Deploymentを適用するか | No |
Storage Type | ストレージタイプ | General Purpose (SSD) |
Allocated Storage | 何GBストレージに割り当てるか | 要件に合わせて設定(20GBまで無料) |
DB Instance Identifier | DB識別子 | 分かりやすいDBの識別子を設定 |
Master Username | マスターユーザー名 | 適当なマスター(ルート)ユーザー名 |
Master Password | マスターユーザーパスワード | 適当なマスター(ルート)パスワード |
Confirm Password | パスワード再入力 | パスワード再入力 |
DB詳細設定
次に詳細設定をしていく。
項目 | 内容 | 値 |
---|---|---|
VPC | どのVPCに配置するか | VPC編で作成したVPCを選択 |
Subnet Group | サブネット | 下準備で登録したサブネット |
Public Accessible | インターネット経由で接続可能にするか | No |
Availabillity Zone | 配置先AZ | ap-northeast-1a |
VPC Security Group | セキュリティーグループ | 下準備で作成したセキュリティーグループ |
Database Name | デフォルトで作成するデータベース名 | 要件にあわせて設定 |
Database Port | データベースポート | 3306(変更するならセキュリティグループも要変更) |
Parameter Group | mysqlの設定 | 下準備で作成した日本語パラメータグループ |
項目 | 内容 | 値 |
---|---|---|
Backup Retention Period | 何日バックアップを維持するか | 1(0を指定した場合、バックアップ無効) |
Backup Window | 毎日何時にバックアップを取るか | No Preference(指定したい場合は任意で) |
Auto Minor Verion Upgrade | マイナーバージョンアップを自動で行うか | Yes |
Maintenance Window | バージョンアップのメンテナンスを何曜日の何時に行うか | No Preference(指定したい場合は任意) |
注意しなければいけないのは、[Auto Minor Verion Upgrade]をYesにした場合、Multi-AZ構成を選択してなければ、当然バージョンアップ中はDBは停止してアクセスできない。
作成!
[Launch DB Instance]で作成完了。
実際にインスタンスが立ち上がるまで、少し時間がかかるので正座してコンソールを眺めておく。
リードレプリカ
最後に、0から始めるAWS入門:概要の図で示したリードレプリカをAZ-Cに作っておく。アプリ等で、参照専用用途に使う想定。
リードレプリカの作成
インスタンスリストから対象のRDSインスタンスを右クリック。[Create Read Replica]を選択。
続いて、設定。[DB Instance Identifier]に適当な名前、[Availabillity Zone]にAZ-Cを選択して[Create Read Replica]をクリックして作成完了まで少々まつ。