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

Auroraを選んでみる。

 

f:id:Messerarche:20200503125418p:plain

簡単作成を選びたい気持ちを抑えて、勉強のために標準作成

 

Auroraを選ぶ

f:id:Messerarche:20200503123704p:plain

 

互換性はMySQLを選ぶ

f:id:Messerarche:20200503123754p:plain

互換性とはなんぞや?

よくある質問 - Amazon Aurora | AWS

 MySQL データベースで使用しているほとんどのコード、アプリケーション、ドライバー、ツールをほとんど、またはまったく変更を加えなくても Aurora で使用できることを意味します

なるほど。ということはテスト接続はMySQLと同じコマンドで試そう。

 

 機能を4つから選ぶ

f:id:Messerarche:20200503125347p:plain

サーバーレス気になる

Aurora Serverless の仕組み - Amazon Aurora

ワークロードの集中が数分または数時間しか続かない場合やアクティビティが低下したり完全になくなったりする期間が長く続く場合

が用途として適しているらしい。今回アクティビティなんて無いに等しいので

サーバレスのほうがいいのかも。

しかし、サーバレスって言うけど必要に応じたリソース分のサーバは結局あるわけだし、この単語どうにかならんかな。

文句言いながらサーバレスを選んでみることにした

 

設定

f:id:Messerarche:20200503131238p:plain

f:id:Messerarche:20200503131329p:plain

パスワード自動生成はしないぞ。

 

キャパシティー設定

f:id:Messerarche:20200503131427p:plain

この辺がサーバレス特有の設定

キャパシティユニットは2の累乗刻みで1〜256まで選べる。

今回は1〜2の最小構成でいく。

強制的にスケーリング・・・のところはタイムアウトって何だ

[アップデート] Aurora Serverless の最小キャパシティが 1 から指定可能になりました!&キャパシティ変更の強制オプションが追加されました | Developers.IO

ただし、以下のような場合には、スケーリングポイントが特定できず、タイムアウトになることがあります。

  • 進行中の長期のクエリやトランザクションがある場合
  • 一時テーブルやテーブルロックを使用している場合

なるほど。

アイドルの一時停止も便利そうだけど、今回はどちらのオプションもなしで。

 

接続

f:id:Messerarche:20200503132910p:plain

この辺は前回と一緒。

 

APIの項目が増えている

f:id:Messerarche:20200503133013p:plain

Aurora Serverless の Data API の使用 - Amazon Aurora

この API を使用すると、ウェブサービスベースのアプリケーション(AWS Lambda、AWS AppSync、AWS Cloud9 など)を通じて Aurora Serverless にアクセスできます

無料なら有効にしない手はない。普通にEC2を介せばコマンド発行できるんだろうけど、徹底的にコスト削りたい時には良いかも 

 

追加設定

f:id:Messerarche:20200503133853p:plain

 前回と一緒

ちなみにAuroraは暗号化がデフォルトで有効である(画像は割愛)

 

 

以上で設定おわり。データベースの作成ボタンを押す。

2回目なので標準作成でもサクサク選べた感はある。

 

作成中の様子

f:id:Messerarche:20200503134118p:plain

 

せっかくなので認証情報のところを押してみる

f:id:Messerarche:20200503134201p:plain

ここに自動生成のパスワードも出るわけね。

 

できたので接続してみよう

f:id:Messerarche:20200503134751p:plain


まずは前回と同じく建てたEC2サーバに接続.

f:id:Messerarche:20200503135538p:plain



mysqlデータベースに接続するコマンド、これも前回と同じもので

アクセス先を今回のAuroraにしたものを投入すると

f:id:Messerarche:20200503135655p:plain

普通につながった。 

 Aurora要素は微塵も感じられない

 

f:id:Messerarche:20200503140103p:plain

f:id:Messerarche:20200503140143p:plain

うーん操作感はMySQLと同じ。

 

あとはレプリカを作ってみようと思ったが、作成するメニューがない。

Aurora Serverlessが一般利用可能になったので試してみた | Developers.IO

Aurora Serverlessでは以下の機能をサポートしていません。

使えなかった・・・!

レプリカ作って負荷分散する思想と、負荷に応じて性能を拡張する思想は相容れないのかもしれないが、読む専用のリードレプリカの存在があった方が安心する(精神論)

というか、下記のダウンタイムが許容できない場合はサーバレスは使えんということになる。

AuroraかRDSどちらを選ぶべきか比較する話をDevelopers.IO 2019 in OSAKAでしました #cmdevio | Developers.IO

シングルインスタンス構成で、そのインスタンスがクラッシュした際のことを考えます。この場合、Auroraはインスタンスの自動復旧を行ないます。この復旧は通常10分未満で完了します。この10分のダウンタイムを許容できるのであれば、Mulit-AZにせずとも良いのではないでしょうか

 

 

しょうがないのでこのDBは消して新たに作成する。

今度はこちらを選ぶ。

f:id:Messerarche:20200503142454p:plain

 

すると新たなメニューが登場

f:id:Messerarche:20200503142539p:plain

これを選べばレプリカも最初から作成されるのかな?

早速作ってみると

f:id:Messerarche:20200503142917p:plain



2つ作成された・・・と思いきや、ロールが読み込みと書き込みで別。

f:id:Messerarche:20200503143116p:plain

エンドポイントは2つなので、これはいわゆるリードレプリカは1つで

書き込み権限のあるエンドポイントがマスターということか。

 

リーダーの追加でレプリカを増やしてみる

DB クラスターに Aurora レプリカを追加する - Amazon Aurora

f:id:Messerarche:20200503143223p:plain

 

設定画面

f:id:Messerarche:20200503143329p:plain

上では2cを選んでいるけど、

2cにサブネット作ってなくて怒られたので、のちに2bに変更

 

 

暗号化は触るところなし(画像は割愛)

 

設定

f:id:Messerarche:20200503143632p:plain

ソースには別のレプリカも選べる。

 

フェイルオーバー

f:id:Messerarche:20200503143806p:plain

本体が死んだとき、だれがプライマリになるかの優先度決め

プライオリティ"範囲"って、なんで範囲?

普通にプライオリティ値でいいのでは・・・。

 

この辺は特にいじる必要なし

f:id:Messerarche:20200503144108p:plain

 

パフォーマンスインサイト

f:id:Messerarche:20200503144326p:plain

Performance Insights を使用した Amazon RDS データベースの負荷分析 | Amazon Web Services ブログ

データベースの負荷(どのSQL文が負荷を発生させており、それはなぜなのか)を可視化するダッシュボードを使用して、エキスパートな方とエキスパートではない方の両方が、Performance Insights でパフォーマンス問題を容易に検出できます。

これは調子悪い時に有効にすれば原因がわかるかも。

 

メンテナンスも特に変更なし 

f:id:Messerarche:20200503144434p:plain

 

Add readerして、ロール:読み込みのレプリカが増えた。

f:id:Messerarche:20200503144746p:plain

 

 

結論としては、AuroraもMySQLも、使用感は同じ。コマンドレベルで同じ。

 

なので構成や挙動、お値段の違いを勉強して

最適な環境を選べるようにしましょう、という感じ。

何度か引用したこの記事によると

AuroraかRDSどちらを選ぶべきか比較する話をDevelopers.IO 2019 in OSAKAでしました #cmdevio | Developers.IO

ちょっと屁理屈に聞こえるかもしれませんが…たしかにAuroraの方がAWS利用費は高くなるかもしれませんが、その分人的コストを抑えれますよ?という話です。

結局こう書いてあるので、ちょい使いならMySQL、がっつりだとAuroraかなぁ(個人の感想です)

 

進捗

f:id:Messerarche:20200503150917p:plain

 

 

次はストレージ付近触ってみようかな