41から始めました

文字通り41歳から始めたブログです。DB(MySQL)を使ってお仕事してるので、DB周りの話を中心に最近始めたこととかをTwitterのノリで書いています。なお、本サイトにおいて示されている見解は私個人の見解であり、所属団体や組織を代表するものではありません。

MySQL Database Serviceを触るまでのお話

はじめに

MDS(MySQL Database Service)が東京リージョンにも来ました!

(^O^) <祝!

というわけで、朝4時に起こされたこともあり、時間もできたんで久々にOCIを触ってみたんですが、作りたいものが簡単に作れて楽しかったです。

ただ、公式チュートリアルにMDS関連がまだ無いこと、MDS系だとlefredさんのブログとかOracleのセミナー資料しか手順でわかりやすい情報が無いのでまだまだ敷居が微妙に高い可能性もあり、初見の人がどうするの?っていうのをざっくり流れで書いてみました。

でも、細かいところは前述の公式のチュートや記事を参考にしてね。

やりたいこと

要するに、1台どっからでもインターネット上から繋げられるようなVM立てて、そのマシン経由でMySQLに繋げられるイメージ。

マイPC--->インターネット--->OCI領域[VM(Linux)--->MySQL]

作り方(超ざっくり)

1.アカウント作成

まずはなにはともあれアカウントを作る

通常、ここからOracle Cloud Freeでアカウントが作れる。

30日間有効な$300のクレジットがもらえて、MySQL DBシステムは有料なのでそこから支払われる。

と言っても、普段Auroraとか触ってる人からすると安すぎて笑うくらい。

多くの人は30日じゃ使い切れないんじゃないかな。

また、Oracle主催のセミナーとか参加すると更に+$200で合計$500のクレジットとかになることがある(それ用のURLを教えてもらえる)。

そっちからだと通常はクレカ登録があるのだが、無いので楽ちんでもある。

注意点

アカウント作成時の注意点は以下の2つ

  • クラウド・アカウント名を忘れない
  • ホーム・リージョンを日本東部(東京)にしよう

クラウド・アカウント名はログイン時に使う。

ログイン時に使うのはクラウド・アカウント名、メールアドレス、パスワードの3つ

ホーム・リージョンはせっかく日本でMDS使えるようになったー!ってなったのに、アメリカにするのもどうなん?ってことで。

まあ、アッシュバーンは空いてるなんて話もあるんで、それでも良いって人は止めませんがw

2.ログイン

チュートリアル読みながらログインしてみてください。

ちなみにクラウド・アカウント名はテナンシー名とも言われるので、どっかで出てきたら脳内変換してやってください。

クラウド・アカウントの領域を内部で区画わけするコンパートメントって概念もあるけど、個人で使う分には無視でいいかも。

整理整頓好きな人は使ってみるのもいいかも(自分は一回作って、ちょっと触って削除した)

3.VCNの作成

2同様チュートリアル読みながら作成してみてください。

チュートリアルにもありますが、VCNウィザード使ったほうが楽です。VCN名考えることくらいしかやることありませんw

パブリック・サブネットもプライベート・サブネットも作ってくれます。

プライベート・サブネットの更新でエラーが出ることがありますが、プロビジョニングの再試行で普通に作れます。

4.インスタンスの作成

チュートリアルを参考に作成してみてください。

ここに用意されているOSのイメージがデフォルトでは使え、OWindows Server以外はAlways Free対象です。

とりあえず、自分はCentOS7とOracle Linux7.8の2つを作ってみました。

シェイプ、ネットワークおよびストレージ・オプションの表示を開くと先程作ったVCNのパブリックサブネットからIPがデフォルトで割り振られているのがわかります。

接続については

  • SSHキー・ペアの生成
  • 公開キー・ファイルの選択
  • 公開キーの貼付け

がありますが、自分は公開キーを貼り付けてます。(どうせ使うPC決まってるし)

作成されたパブリックIPを使ってsshでつなぎます(以下イメージです)

接続例

$ ssh opc@xxx.xxx.xxx.xxx
The authenticity of host 'xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx)' can't be established.
ECDSA key fingerprint is SHA256:pKpvubZvr4MeMfHVHMzRJxMhRlIdpJqimTdiPD64qLk.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'xxx.xxx.xxx.xxx' (ECDSA) to the list of known hosts.
[opc@tkyk7704vm-c7 ~]$ 

5.MySQLクライアント等を入れとく

mysqlshやmysqlクライアントでDBにつなごうと思っているので、それらをインストールしておきます。

$ sudo yum install https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
$ sudo yum install mysql-shell
$ sudo yum install mysql-community-client

6.プライベート・サブネットのイングレス・ルールにMySQLポート追加

パブリックIPがこれから作るMySQL DBシステムに接続できるよう、先にプライベート・サブネットのイングレス・ルールにMySQLポートの3306と33060を追加しておきます。

この作業はMySQL DBシステム作ったあとでも問題ありません。

ポート番号もMySQL DBシステムを別の番号で作るのであれば臨機応変に変えてください。

ネットワーキング>仮想クラウド・ネットワーク>作ったVCN>プライベート・サブネット>プライベート・サブネットのセキュリティ・リスト という感じでクリックしていくと、先程作ったVCNに紐づくプライベート・サブネットのイングレス・ルールの追加画面が表示されます。

ここでイングレス・ルールの追加ボタンを押して、パブリック・サブネットをソースCIDRに、宛先ポート範囲に3306,33060を入れて追加ボタンを押せばOKです。

f:id:next4us-ti:20200926173024p:plain

(ちなみにプライベート・サブネットの他のルールは消しておくのが吉です。無駄な穴は消しておきましょう)

山崎さんのスライドでもこの辺の話は記載されてますので参考にしてください。

7.MySQL DBシステムの作成

MySQL>DBシステムをクリックすると作成画面に入ります。

MySQL DBシステムの作成ボタンを押して作ります。

作り方や機能の詳細についてはここからダウンロードできる資料のほうが詳しいので僕は手抜きで説明しませんw

出来上がるまで結構かかります。10分〜15分くらいかかることも。コーヒーでも淹れてゆっくり飲みながら待つのが吉です。

8.DBへ接続

MySQLクライアントやMySQL Shellで接続してみてください。

mysql -u(DBユーザ名) -p -h(DBのエンドポイント名)

mysqlsh (DBユーザ名)@(DBのエンドポイント名)

ちゃんと入れてるのに MySQL Error 2003 (HY000): Can't connect to MySQL server が出るよーって人はイングレス・ルールを見直してみてください (入れるのはプライベート・サブネットのほうですよ!)

9.ローカルからDBを見てみたい?

そういう人はlefredさんのブログを読むと言いです。

SSHトンネルやWorkbenchでつなぐ方法があります。

(一つ前の記事にMySQL Router使うなんてなかなかトリッキーなのもありますが・・・)

コスト

一番小さいサイズとはいえ、数時間放置してて、おっといけね!と見てみたが、

f:id:next4us-ti:20200926193225p:plain

安ぅ〜〜〜!

コストの見積もり、ここでできるみたいだけど、一番小さいやつ、デフォルトだと4400円くらいなんで、$300とか、ましてや$500とか最初にも書いたけどやっぱり使い切れない気がする。

サイズ上げて、ディスクも増やしてガンガン遊んでみるかー!(家族が時間をクレナイケド・・・)

さいごに

1時間もあればこれらの作業ができます。

しかも一回VCNやインスタンスを設定してしまえば、更に時間は短縮されるので、今からVM環境作ったりするよりは圧倒的に早いです。

自分も今日作った環境でこれから色々と遊んでいこうと思います。

追記

日本語のチュートリアルが無いってだけで、ちゃんとドキュメントにはある。

docs.cloud.oracle.com

(これを朝見つけておきたかったなー)