LoginSignup
1
1

More than 5 years have passed since last update.

Oracle MySQL Cloud Service のインスタンスを簡単に作れるようにしてみた

Last updated at Posted at 2017-03-10

Oracle MySQL Cloud Service のインスタンス作成を簡略化するシェルです。

説明

Oracle MySQL Cloud Service は、MySQLサーバーをクラウド上で提供するサービスです。提供する MySQL は Enterprise Edition の 全ての機能を含んでおり、MySQL Enterprise Monitor、Query Analyzer、MySQL Workbench などのおなじみのツール群が使用できます。
この MySQL Cloud Service インスタンスの作成は、Web ベースのコンソール画面、または REST API によって行う事ができます:

Web GUI によるインスタンス作成

Web GUI によるインスタンス作成は、数クリックによる簡単な操作で実施する事ができます:

1.サービスの登録
MySQL-Process1

2.詳細情報の登録
MySQL-Process2

3.登録情報の確認
MySQL-Process3

入力項目

構成
項目名 説明
コンピュート・シェイプ CPU/RAMの組み合わせ
SSH公開鍵 SSHログイン時の認証に使用
データベース記憶域 GB単位で指定(デフォルト:25GB)
MySQL構成
項目名 説明
データベース記憶域 GB単位で指定(デフォルト:25GB)
管理ユーザ データベース・ユーザ(デフォルト:root)
管理パスワード データベース・パスワード
データベース・スキーマ名 デフォルト:mydatabase
サーバ文字セット デフォルト:utf8mb4
MySQL Enterprise Monitorの構成 デフォルト:いいえ
バックアップおよびリカバリ構成
項目名 説明
バックアップの保存先 自動バックアップ構成の有無
バックアップを取らない場合は「なし」を選択
クラウド・ストレージ・コンテナ 自動バックアップの保存先のStorage Cloud Service のコンテナ名
クラウド・ストレージ・ユーザ名 Storage Cloud Service のユーザ名
クラウド・ストレージ・パスワード Storage Cloud Service のパスワード

REST API によるインスタンス作成

MySQL Cloud Service の REST API の一覧は次に公開されています:

その一覧の中にあるインスタンス作成の API は次のものになります:

REST API でインスタンスを作成する場合は、エンドポイントURLを指定して必要な情報を記載した JSON ファイルの送付を行って実施します。

  • cURL による REST API 実行例
curl -i -X POST \
  -u "TestUser@example.org:TestPass" \
  -H "X-ID-TENANT-NAME: TestCorp" \
  -d @createMysqlInstance.json \
  -H "Accept: application/json" \
  -H "Content-Type: application/vnd.com.oracle.oracloud.provisioning.Service+json" \
  https://rest_server_url/paas/api/v1.1/instancemgmt/TestCorp/services/MySQLCS/instances
  • インスタンス作成用 JSON ファイルサンプル
{
  "componentParameters": {
    "mysql": {
      "dbName": "mydatabase",
      "dbStorage": "25",
      "enterpriseMonitor": "No",
      "mysqlPort": "3306",
      "mysqlUserName": "root",
      "mysqlUserPassword": "MyFriendlyPass1!",
      "shape": "oc3"
    }
  },
  "serviceParameters": {
    "backupDestination": "NONE",
    "meteringFrequency": "HOURLY",
    "noRollback": false,
    "serviceDescription": "MyTestMySQLInstance",
    "serviceName": "AnotherTestInstance",
    "vmPublicKeyText": "ssh-rsaAAA your key here...",
    "vmUser": "opc"
  }
}

このように REST API でインスタンス作成を行う場合は、JSON ファイルを事前に構成しておく必要があります。もっと手軽に簡単に MySQL 環境を用意するために、JSON ファイルの構成と REST API に実行をラッピングしたシェルを作ってみました。

動作イメージ

MySQL Creation

機能

  • JSON ファイルの作成
  • 作成した JSON ファイルから MySQL インスタンスの作成

前提

$ psm-mysqlcs-create-entry.sh MyDB <PASSWORD>
  • PASSWORD ルール
    • 8から30文字
    • 小文字を最低1つ含む事
    • 大文字を最低1つ含む事
    • 数字を最低1つ含む事
    • 記号を最低1つ含む事

導入手順

次のような構成でシェルとテンプレートの JSON ファイルを配置します:

psm-mysqlcs-create-entry.sh

.
├── psm-mysqlcs-create-entry.sh
└── template
    └── mysqlcs-entry-template.json

作成済みのテンプレート mysqlcs-entry-template.json では、バックアップ構成なし、MySQL Enterprise Monitor 構成なし、のシンプルに MySQL 環境を構築するのみの JSON 情報になっています。
必要に応じて、このJSONファイルを編集して好みの環境に変更する事ができます。

まとめ

ブラウザからでも簡単に構築できるMySQL Cloud Service ですが、シェルでJSON ファイルの作成やRESTの実行などをラップする事でさらに簡単に環境構築できるようになりました。
データベースが今すぐ欲しいという時に捗ります。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1