寝るまでにざっくり知っとくRDSって何?

BOSSから「RDSへ切り替えてみてもらえませんか?」と言われました。
懇親会でほろ酔いのまま「明日、やってみます!」と答えました。
はい、めちゃめちゃ知ったかしました、RDSがなんだかわかりません。
寝るまでにざっくり確認してみました。

RDSは、AWSのサービスでリレーショナルデータベースを管理できます。

  • 正式 : Amazon Relational Database Service

Amazon RDS はマネージド型リレーショナルデータベースで、データベースエンジンを Amazon AuroraMySQLMariaDBOracleMicrosoft SQL ServerPostgreSQL といった一般的な 6 種類のエンジンから選択できます。
特徴 - Amazon RDS | AWS

リレーショナルデータベースを管理するソフトウェアをまとめてRDBMSといいます。

RDBMSとはリレーショナルデータベースを作る・使うためのソフトウェアであり、以下のような特徴があります。

・データの整合性を維持しやすい。
・簡単にデータを参照・更新できるSQLという専門用語がある。
・信頼性のある更新処理を実現するトランザクション機能がある。
・障害発生時でも格納したデータが容易に失われない。
・セキュリティ・チューニングなど多くの周辺機能がある。
データベース初心者でも分かるRDBMSの基本~JPOUG Oracle Database入学式レポート | geechs magazine

RDSは、クラウド上のRDBMSです。

自分たちでせっせとサーバを用意してラックと置き場所を用意して・・・とか不要です。
AWSのEC2インスタンスでDBサーバ作ってインストールやら管理を頑張って・・・をRDSというDB専門サービスで楽にできちゃうみたいです。

https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/con-VPC-sec-grp.png
チュートリアル: ウェブサーバーと Amazon RDS データベースの作成 - Amazon Relational Database Service

AWSのコンソール画面でボタンをポチポチするだけでRDBの作成から管理まで出来ちゃいます。

https://d1.awsstatic.com/icons/jp/handson/secure-scalable/phase2/ss-handson-086.7f70334480ce55eb75d04e451c941b085497671c.jpg
フェーズ 2-3: Amazon RDS インスタンスを作成 - スケーラブルなウェブサイトの構築方法 | AWS

作ったあとでスケーリングも簡単にできるそうです。

e-words.jp

自動でスケーリングすることさえできるそうです。

https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F354022%2F8978bbb2-f2a7-e220-830d-68b3148902eb.png?ixlib=rb-1.2.2&auto=compress%2Cformat&fit=max&w=1400&s=1f7459ecc5c8b44b236c6262b2e7ea11
【AWS】RDS自動スケーリングが発表されたけど注意事項があるので検証した話 - Qiita

自動バックアップだって設定で出来ちゃいます。

docs.aws.amazon.com

どうやれば起動するんだろう・・・・

RDSは、使ったら使った分お金がかかります、だからきっと明日の朝は停止していることが予想されます。
明日の朝、どうやれば起動するかを知っときます。
aws.amazon.com

方法1. AWS コマンドラインインターフェース (CLI)のstart-db-instanceコマンドを使う

AWS CLIのインストールやらが必要そうなのでまた今度。
docs.aws.amazon.com

方法2. Amazon RDS アプリケーションプログラミングインターフェイス (API)のStartDBInstanceアクションを使う

そもそもAmazon RDS APIの使い方すらわからないのでまた今度。
docs.aws.amazon.com

方法3. AWS Toolkit for Visual StudioAWS Explorerを使う

今回、Visual Studioを使っていないので記録程度。
docs.aws.amazon.com

方法4. コンソール画面でボタンをポチポチする

一番簡単な方法がなぜかなかなか見つからない自分の検索センスの無さに驚きです。

  1. f:id:ponsuke_tarou:20190805221400p:plain
    Amazon RDS コンソールを開きます。
  2. f:id:ponsuke_tarou:20190805221241p:plain
    ナビゲーションペインで、[データベース] を選択し、
  3. 開始する DB インスタンスを選択します。
  4. f:id:ponsuke_tarou:20190805221558p:plain
    [アクション] で [開始] を選択します。

docs.aws.amazon.com

接続情報ってどこにあるんだろう・・・

起動できてもアプリやDBクライアントツールに設定する情報がわからないと困ります。

接続ユーザーとパスワードはRDSインスタンス作成時に指定しているので作成者に聞きます。

流石にそこまでコンソールでは見られないと思います。

https://d1.awsstatic.com/icons/jp/handson/secure-scalable/phase2/ss-handson-080.7ecbc8f8f202a528aba511e6ce09b3001e37d2d8.jpg
フェーズ 2-3: Amazon RDS インスタンスを作成 - スケーラブルなウェブサイトの構築方法 | AWS

最後に

明日、なんとか使えそうなぐらいには調べました。
本当に使えるようにはRDSはおろかAWSRDBの知識もめちゃめちゃ足りません。
少しずつこのページを更新していきたいものです。

f:id:ponsuke_tarou:20190805224722j:plain
とある日

次の日

調べたとおりにRDSを起動できました。

コンソールで確認したエンドポイントとポート番号を使ってみる。

pingコマンドで名前解決できているか見てみます。
# pingは通らなくても名前解決できていることがわかりました。
$ ping {確認したエンドポイント}

ec2-12-345-678-90.ap-northeast-1.compute.amazonaws.com [12.345.678.90]に ping を送信しています 32 バイトのデータ:
要求がタイムアウトしました。
要求がタイムアウトしました。
要求がタイムアウトしました。
要求がタイムアウトしました。

12.345.678.90 の ping 統計:
    パケット数: 送信 = 4、受信 = 0、損失 = 4 (100% の損失)、
クライアントツールで接続してみます。

f:id:ponsuke_tarou:20190806093944p:plain
A5:SQL Mk-2で接続してみる
f:id:ponsuke_tarou:20190806094124p:plain
接続できました。