Amazon RDSでDBサーバを構築する方法を勉強したのでメモしておく。
仮想DBサーバーのインスタンスを作成する
- AWS Management Consoleにログインしたら,RDSを選択する。
- 画面右上のメニュー(アカウント管理メニューの隣)から使用するリージョンを選択する。今回はAsia Pacific (Tokyo) を選択する。
- 画面左側のDatabasesメニューから,課金タイプのメニューを選択する。
※課金タイプには,DB Instances, Reserved DB Purchasesの2つのタイプが存在するが,今回は一番シンプルなDB Instancesを使用する。DB InstancesのLaunch DB Instanceからインスタンスの作成メニューへ移動する。
ENGINE SELECTION
使用したいDBMSを選択する。
DB INSTANCE DETAILS
インスタンスのスペックなど,詳細を決めていく。
- License ModelとDB Engine Versionはデフォルトのままでよい。これはライセンスやDBのバージョンを設定する項目である。
- DB Instance Classでは,作成したいインスタンスのスペックを選択する。今回は一番安価なdb.t1.microを選択する。
- Multi-AZ Deploymentでは,DBの冗長化として,マスター(プライマリ)とスレーブ(セカンダリ)の構成で,2つのデータセンター(Availability Zone)に渡ってDBを構築することができる。このオプションを使用する場合は追加課金が発生する。今回は使用しないのでNoを選択する。
※Multi-AZ Deploymentについてはこちらで説明されている。
- Auto Minor Version Upgradeではマイナーバージョンへの自動アップデートを使用するかを決める。今回はYesを選択する。
- Allocated Storageでは使用したいストレージの容量を決める。最小が5GB,最大が3072GBなので,今回は最小の5GBを使用するので5と入力する。
- Use Provisioned IOPSではプロビジョニング(空いているリソースを自動的に割り当てること)によりサーバが1秒間に処理できる能力が向上する(冗長化構成)。使用する場合は追加課金が発生する。今回は使用しないので,そのままにする。
※Use Provisioned IOPSについてはこちらで説明されている。
- DB Instance IdentifierにはDBサーバの識別に使用する任意のIDを入力する。
- Master UsernameにはDBサーバへの接続に使用する任意のユーザ名を入力する。
- Master PasswordにはDBサーバへの接続に使用する任意のパスワードを入力する。
- Continueを選択する。
ADDITIONAL CONFIGURATION
- Database NameにはDBに付ける任意の名前を入力する。
※その他の項目はデフォルトのままにする。
※DB Security Group(s) の項目のみ後述にて変更を加える。
MANAGEMENT OPTIONS
- Enabled Automatic Backupsでは自動バックアップ機能を有効にするかどうかを選択する。今回はバックアップを取りたいのでYesを選択する。
- Backup Retention Periodでは自動バックアップで保存したデータの保存期間を選択する。今回は1日だけ保存したいので1を選択する。
- Backup Windowでは自動バックアップを実行する時間を設定する。No Preferenceでは任意のタイミングでバックアップを実行することができるが,サーバが数分間無応答となる。Multi-AZ Deploymentを使用している場合はこれは発生しない。可能な限り,バックアップを取りたい場合はSelect Windowを選択し,バックアップの実行時間を指定した方が良い。今回は日本時間(JST)で午前5時に実行したいので,Start Timeには20:00を指定し,Durationではバックアップの完了までにかけて良い時間を決めるので0.5(30分間)を指定する。
- Continueを選択する。
REVIEW
設定の内容に問題が無ければ,Launch DB Instanceを選択してインスタンスの作成を開始する。
Security Groupを作成する
Security Groupを作成し,EC2のインスタンスから接続ができるようにする。
- DB Security GroupsからCreate DB Security Groupsを選択し,Security Groupを作成する。
- NameにはSecurity Groupに付ける任意の名前を入力する。DescriptionにはSecurity Groupに付ける説明を入力する。
- Yes, Createを選択する。
- 作成したSecurity Groupを選択し,Descriptionタブからルールを追加する。
今回のSecurity Groupの設定では,既に作成済みのEC2のインスタンスからのアクセスを許可したいので,以下のようにルールを追加する。
| Connection Type | Details | Status |
|---|---|---|
| CIDR/IP | CIDR/IP:0.0.0.0/0 | authorized |
| EC2 Security Group | AWS Account ID:000000000000000 Security Group:test-ec2-sg | authorized |
※これを設定するにはEC2側でもSecurity Groupを作成する必要がある。
作成したDBインスタンスにSecurity Groupを割り当てる
- DatabasesメニューからDB Instancesを選択する。一覧から作成したインスタンスを選択し,右クリックからModifyを選択する。
- Security Groupにて,先程作成したSecurity Groupを選択する。
- Continueを選択する。
ここまで手順通りに上手く設定できていれば,DBのインスタンスを作成することができる。
おまけ
リードレプリカとは
Amazon RDSには,「リードレプリカ」を作成する機能がある。リードレプリカとは,読み取り専用として利用する複製DBのことである。リードレプリカは,マスターのデータを非同期にレプリケーション(同じ内容を複製)する。リードレプリカは,非同期なので常にマスターと完全に内容が一致しているわけではない。なので,マスターの負荷分散用として使用することが推奨される。つまり,更新系はマスターで行い,参照系はレプリカで行うという使い方が想定されている。
リードレプリカの作成方法は,マスターDBを右クリックし,メニューからCreate Read Replicaを選択する。基本的なDBの情報を入力し,Yes, Create Read Replicaを選択することで,リードレプリカを作成することができる。
参考
Amazon RDSで仮想DBインスタンスを作成する
RDSインスタンスの設定を変更する
Amazon RDSによるレプリケーションについて理解する | Developers.IO