AWSをいじり倒す(5.RDS-MySQL)

RDSを作ってみる。今回はMySQLで作る。

 

RDSの画面からスタート。

f:id:Messerarche:20200429160108p:plain

 

データベースの作成

f:id:Messerarche:20200429160229p:plain

 

次の画面

f:id:Messerarche:20200429160303p:plain

簡単作成なるものができたらしい。

使うだけならこっちでいいのかも。

今回は標準作成でいく。

 

Auroraの猛プッシュをよくみるので使ってみたいけど、今回はMySQL

f:id:Messerarche:20200429160757p:plain

 

テンプレート を選ぶ

f:id:Messerarche:20200429160847p:plain

MySQL - AWSのRDSデータベース作成時の設定について|teratail

単に無料枠は時間やサイズに制限があるだけみたい。今回は無料枠でOK

 

設定

f:id:Messerarche:20200429161428p:plain

インスタンス識別子はtest-database-1に。

ユーザ名は、今回はadminでいいか。

パスワードはせっかくだから自動生成してもらおうかな。

でも、どこでパスワード確認するんだろうか(要確認その1)

 

DBインスタンスサイズ

f:id:Messerarche:20200429161725p:plain

無料枠だと、ここがまったく選びしろなく固定となるようだ。

(試しに本番用を選ぶと選択肢が増えた)

 

ストレージ

f:id:Messerarche:20200429161902p:plain

割り当てはSSD/20GBでいいとして

自動スケーリングはこれ日本語変だな??

「指定したしきい値を超えた場合にストレージを増やす」と書いてあるのに

「最大ストレージしきい値」を書けって。しきい値って言葉の使い方おかしくない?

【DBのディスクサイズ管理が簡単に】RDSのストレージがストレージの自動スケーリングをサポートしました! | Developers.IO

これによると、例えば上の画像の設定だとMAX1000GiBまで増やすという意味でOKらしい。

拡張のタイミング=いわゆるしきい値は勝手に考えてくれるんだろう。

 

可用性と耐久性

f:id:Messerarche:20200429163033p:plain

無料枠では選べないらしい。本番環境だと必須だろうなぁ

 

接続

f:id:Messerarche:20200429163254p:plain

 

VPCを指定する。

いろんなサービスでVPC指定しろと出てくるところを見ると、

AWSで何かしようと思ったらまずはVPCを作るところから取り掛かるのがよさそう。

 

追加の接続設定

f:id:Messerarche:20200429163657p:plain

サブネットグループ・・・RDSが使えるサブネットを指定するところ。既存のグループを選ぶとかはできない。新しいDBサブネットグループの作成、ということは新たなサブネットが生成されるのか?(要確認その2)

パブリックアクセス可能・・・同一VPC内にEC2を作るつもりなので、なし

VPCセキュリティグループ・・・説明を読む限りRDS用に作った方がよさげだが、ここでは名前しか付けられない。設定は自動なのか?(要確認その3)

データベースポートはこのまま。

以下のような感じに設定

f:id:Messerarche:20200429164401p:plain

 

認証

f:id:Messerarche:20200429164754p:plain

選びしろなし

 

追加設定

f:id:Messerarche:20200429164901p:plain

最初のデータベース名。

ここで名前入れておけばデフォルトでDBを用意してくれるようだ

適当にtest-mydbとしようと思ったら、ここは英字、数字と _ 以外

だめらしい。test_mydbにする。

 

バックアップ

f:id:Messerarche:20200429165429p:plain

保持期間は7日もいらないので1日にしておく

 

モニタリング

f:id:Messerarche:20200429165749p:plain

せっかくだからモニタリングは有効に。有料だけど。

 

ログのエクスポート

f:id:Messerarche:20200429165811p:plain

どんなタイミングで何のログがでるのかわからないので、全チェック

 

メンテナンス

f:id:Messerarche:20200429165904p:plain

メンテナンス中のダウンタイムについては以下。

必要とされる Amazon RDS メンテナンス中のダウンタイムを最小限に抑える

何をメンテナンスするか+マルチAZかどうかによってダウンタイムの影響が変わるが

完全0にはならないぽい。

使えない時間が存在する前提で運用しないとだめということか。

 

 

削除保護

f:id:Messerarche:20200429170601p:plain

今回は消えてもヨシ!

 

これでやっとこさ設定が完了。こりゃ長いわ・・・。

簡単作成ボタンができたのも頷ける。

データベース作成ボタンを押して完了。

 

作成中・・・。

f:id:Messerarche:20200429170856p:plain

 

識別子のところクリックするとステータスが情報欄でわかる。作成中

f:id:Messerarche:20200429170949p:plain

 

バックアップ中・・・

f:id:Messerarche:20200429171639p:plain

数分と書いてあるけど、結構時間かかるなあ。

 

利用可能。

f:id:Messerarche:20200429175542p:plain

 

 

さて、要確認事項をみていく

(要確認その1)自動生成されたパスワードはどこに?

ステップ 1: RDS DB インスタンスの作成 - Amazon Relational Database Service

[Auto generate a password (パスワードの自動生成)] – このオプションは無効にします。

公式ガイドが自動生成使ってなくて草

 

 そうこうしているうちに、パスワードのありかの記載を見つけた

DB クラスターを作成して Aurora MySQL DB クラスターのデータベースに接続する - Amazon Aurora

f:id:Messerarche:20200429181422p:plain

確かに作成中に青い帯出てた!でももう消えてるがな!!!オワタ

落ち着いて、ここの変更ボタンから

f:id:Messerarche:20200429181649p:plain

パスワードの再設定を行う。

f:id:Messerarche:20200429181751p:plain

変更をすぐやってしまうかどうか

f:id:Messerarche:20200429181843p:plain

もちろんすぐ変更。

自動生成、なんもいいことないじゃん・・・。

 

 

(要確認その2)サブネットはどう切られたのか

f:id:Messerarche:20200429182039p:plain

なんだか知らない子が2人いますね。

クリックしてみると

f:id:Messerarche:20200429182205p:plain

f:id:Messerarche:20200429182307p:plain

いや知ってる子やん。自分で作ったサブネットが列挙されているだけっぽい。

「新しい」DBサブネットグループの作成とは一体・・・。

 

(要確認その3)セキュリティグループ

f:id:Messerarche:20200429175805p:plain

 

なんじゃこりゃ案件。

パブリックアクセスは無しにしたのに、自宅のグローバルIPソースでのアクセス許可設定が入っている上に、VPC内からのアクセス許可はなし。全然違う。

 

以下のように書き換えた。

f:id:Messerarche:20200429175933p:plain

なんでこんな初期設定になってたのか謎。

自動で作ってくれる系はありがたいこともあるけど、チェックはしないといけないなぁ 

 

 

次に、リードレプリカを作成する。本体からコピーされた読み取り専用のRDS。

f:id:Messerarche:20200429182804p:plain

 

設定画面。

f:id:Messerarche:20200429182921p:plain

この辺はそのままでよさげ。

マルチAZ配置のところ、リードレプリカのさらにスタンバイの作成もできるのね

 

ネットワーク&セキュリティ

f:id:Messerarche:20200429183119p:plain

AZに本体とは別のAZ(2b)を指定。他はこのままでよさそう

 

暗号化はなし

f:id:Messerarche:20200429183217p:plain

 

 

設定

f:id:Messerarche:20200429183421p:plain

DBインスタンス識別子に適当な名前を入力。

なんか赤線入ったんですけど、また僕何かやっちゃいました?

何いれてもこの赤線が消えないので無視

 

ポートはそのまま

f:id:Messerarche:20200429183508p:plain

 

モニタリング

f:id:Messerarche:20200429183535p:plain

 

はリードレプリカまではしなくていいか。

 


ログは全チェック

f:id:Messerarche:20200429183613p:plain

 

 

メンテナンス

f:id:Messerarche:20200429183639p:plain

自動アップグレードの通知を受け取るかどうか。後からオフにもできる

 

以上で設定完了、作成ボタンを押す。

 

できてるできてる。

f:id:Messerarche:20200429184613p:plain



さて、接続確認を行っていく

RDSに接続するためのEC2を立ち上げて、SSHで接続する

f:id:Messerarche:20200429191300p:plain

 

そこから、RDSに繋いでみる。

接続先はRDSの画面から確認できるエンドポイント

f:id:Messerarche:20200429191435p:plain

 

まずEC2にmySQLクライアントをインストール

sudo yum -y install mysql

 

次に、データベースに接続

mysql -h test-database-1.ccoqjumqewod.us-east-2.rds.amazonaws.com -u admin -p

パスワードを入力すると・・・

f:id:Messerarche:20200429191850p:plain

お、つながった。

データベース一覧を表示するコマンドを投入

show databases;

f:id:Messerarche:20200429192027p:plain

おー、test_mydbもちゃんとできてる。

 

f:id:Messerarche:20200429192149p:plain

 中身は空っぽなんですけどね。

 

リードレプリカにも繋いでみる。

エンドポイントを確認して

f:id:Messerarche:20200429192728p:plain

 

接続コマンド投下

f:id:Messerarche:20200429192707p:plain

 

読み取り専用である事の確認

f:id:Messerarche:20200429193004p:plain

 

試しにテーブルを作ろうとすると怒られた。

確かにリードレプリカだ。

 

メインの方でテーブルを作ってみる

f:id:Messerarche:20200429193415p:plain

これをリードレプリカ上で確認すると、ちゃんとコピーされていた。

 

しかし、慣れてなさすぎてセミコロン打ち忘れ多すぎわろた。

 データベースの扱い方自体もそのうち勉強せねばならんが、

今回はRDSを使うまでが目標なので、このくらいにしておく。

 

 

拡張モニタリングを有効にしたので、様子をみてみる。

CloudWatchさんが働いている模様

f:id:Messerarche:20200429194131p:plain

f:id:Messerarche:20200429194204p:plain



 

って、プルダウンから選ばないと拡張モニタリングにはならんらしい。

上のは無料で見れるんか

f:id:Messerarche:20200429194802p:plain

 

f:id:Messerarche:20200429194844p:plain

f:id:Messerarche:20200429194906p:plain

 

 

拡張モニタリングをオフにすれば、無料枠におさまるはずなので、オフにしておく。

しかし、わざわざRecommendationsで拡張モニタリングいいぞーっていうぐらいなので、本格運用時はオンのほうがいいのかなぁ。

f:id:Messerarche:20200429195016p:plain

 

 

 

データベースの停止も試す。

リードレプリカを先に削除、

f:id:Messerarche:20200429195344p:plain

 

結構厳重やな。

f:id:Messerarche:20200429195455p:plain

 

本体を削除。

f:id:Messerarche:20200429195603p:plain

スナップショットを残してくれる、と。

お試しなので別にいらんのだけど、保存のされ方を確認するために残しておく

 

できた。EC2でいうAMIみたいなものかな。

f:id:Messerarche:20200429202640p:plain

いらないので削除を選んだら、一瞬で消えた。

 

 

進捗

f:id:Messerarche:20200429202600p:plain