概要
今回は初心者向けにAWSのRDSに作成したMySQLのDBに対して外部から接続する方法まで説明します。
外部から接続するにあたり、A5Mk2を使用します。
では、さっそく捌いていくっ!
データベースの作成
後にも先にもまずは、データベースを作成しましょう。
画像を例に進めてみましょう。
まずは、「データベースの作成方法を選択」から「標準作成」を選択します。
「エンジンのオプション」として、今回はMySQLを使用します。
「バージョン」は任意で構いません。特に理由がない場合は、最新バージョンを選びましょう。
テンプレート選択と接続情報設定
「テンプレート」は用途によって選択してください。
筆者は「テンプレート」を「本番稼働用」を選択しました。
※ 欲張ったスペックにすると課金料金が大変な事になるので、しっかり料金を下調べすることを強く推奨します。
「DBインスタンス識別子」は何でもいいので、自身がわかる名前を適当につけてください。
「マスターユーザー名」は、DB接続時に利用するよくある「root」や「administrator」的なやつです。
ありきたりな名前は、個人的にセキュリティよろしくないと思うので、マニアックな名前にしておきましょう。
「マスターパスワード」は、「マスターユーザー」のパスワードです。
忘れないでね!
ここで設定してた「マスターユーザー名」と「マスターパスワード」を後に外からDBに接続するときに利用します。
接続関連の設定
AWSのVPCでEC2などに接続するならいいけど、外部のEC2や、自分のPCなどからDBに接続したい場合、よく初心者が設定を忘れる箇所があります。
それは、「パブリックアクセス可能」を「あり」にすること。
大抵、「つながらないな、ポートも開けているのにな」って言うときの原因はここです。
あとは、「VPCセキュリティグループ」を画像を参考に設定します。
「VPCセキュリティグループ名」は、適当に付けてください。
はい。
ここでまた重要なところがあります。
それは、「データベースポート」です。
デフォルトのままでも利用は可能ですが、セキュリティを意識するなら最低限ポート番号は変えておきましょう。
ここのポート番号は、後にセキュリティグループで使用します。
セキュリティグループはEC2の時のように自身のグローバルIPアドレスや、EC2のStaticIPアドレスのようなグローバルアクセスだけピンポイントで許可しましょう。
間違っても「0.0.0.0」に許可しないように。
「0.0.0.0」のままにすると、全世界からアクセス可能になります。
ホント、セキュリティはシビアになりましょう。
「動けばいいや」は後で命取りになります。
後でGRANTなどでさらにセキュリティを強固にしましょう。
何重にもセキュリティ対策を。
固有名詞は出しませんが、セキュリティ意識を疎かにすると理由は様々ですが
大手コンビニ「6の次のペイ」の事件や、炊飯器やポットで有名な「エレファントマークのショッピングサイトの個人情報流出」事件になりかねません。
余談ですが、筆者は「エレファントマーク個人情報流出事件」の被害者です。
たまに詐欺まがいなメールや、不審なDM郵便が来て困ったもんです。
僕、炊飯器のフタ買っただけなのに、個人情報悪用されるなんて。。。。
『僕は嫌だ!』
はい、話はズレましたが次!
データベース認証と追加設定
「データベース認証」は、簡単に「パスワード認証」としています。
本当は、IAMを利用した方がいいと思いますが手順が長くなるので割愛。
そして「最初のデータベース名」を任意のデータベース名にしましょう。
これは、「CREATE DATABASE XXXXXX」のXXXXXXの部分にあたります。
先ほどのマスターユーザ、パスワード、ここでのデータベース名で後に外から接続します。
他はデフォルトのままです。
セキュリティグループは、各々の環境に合わせて設定しておいてください。
以上、これでDBのインスタンスを作成して起動されるまでしばし待ちましょう。。。
テンテケテケテン♪
外部ツールからDBに接続してみる
作成したデータベースの起動がAWS RDS上で確認できた場合、接続先の情報(ホスト名)をコピーしましょう。
東京リージョンの場合は、下記の画像のように「ap-northest-1.rds.amazonaws.com」で終わっている長ったらしい文字列の部分です。
そして、さっき設定しておいた「マスターユーザー名」「パスワード」「データベース名」「ポート番号」をツールに入力します。
フレームワークをお使いの方は、設定ファイル的なものに記述しましょう。
スクラッチで開発されているかたは、ソースにぶち込んでください。
あとは「テスト接続」を押下して「接続に成功しました」って出れば完了です。
この後は、各々CREATE TABLE を実行したり、マイグレーションを実行したり、イジイジしてみてください。
おまけ
クラウドは便利でどこからでも使えていいのですが、ガチでセキュリティは意識しないと大変なことになります。
最低限今回のサービスに限らず、接続元のIPは絞っておきましょう。
と、言っても個人だと固定グローバルIP持っている人は少ないでしょう。
個人でも固定IPアドレスが持てる方法を一部お知らせします。
固定IP持ってても、ルーターの設定などしっかりやらないと大変な事になります。
プロバイダ:アサヒネットを利用
オプションで800円~1000円くらい払えば、個人でも固定グローバルIPが付与されます。
YAMADA SIM
これはモバイルルーターの話ですが、オプションで月80円から100円くらいで固定のグローバルIPが付与されます。
以上!