DBaaS時代のセルフサービス

  • 14 May 2020
  • 0 replies
  • 1550 views

Userlevel 3

本ポストは、Nutanixテクニカルマーケティングエンジニアである、Michael Haighが2019年5月22日にNext Communityに投稿したものです

原文はこちら

 

(タイトル別名:Nutanix CalmによるNutanix Era向け統合セルフサービス)

 

Nutanix Eraは、データベース管理の自動化とシンプル化を図るためのソフトウェアスイートであり、データベースのプロビジョニングやライフサイクル管理 (LCM) において、1-クリックで対応できるシンプルさや、意識する必要がないインビジブルな運用を実現します。1-クリックでのデータベースプロビジョニングや、本製品で最初のサービスとなるコピーデータ管理 (CDM) を備えたNutanix Eraによって、DBAはデータベースのプロビジョニングやクローニング、リフレッシュ、さらにあらゆる時点のデータベースのバックアップなどを行うことができます。

 

APIファーストのNutanix Eraアーキテクチャーでは、Nutanix Calmなどユーザーが好むセルフサービスツールと、容易に連携できるようになっています。DBAやインフラストラクチャーのシステム管理者は、Eraで管理するデータベースのプロビジョニングやクローンを開発担当者がセルフサービスで使用できるよう、Eraに特化したCalmのブループリントを作成することができます。これによってDBAやインフラのシステム管理者は、Eraの管理者用アカウントを誰とも共有する必要なく利用することが可能となり、また開発担当者は、必要に応じてデータベースのプロビジョニングやクローンの生成が可能となります。

 

このブログポストでは、Eraが管理する既存のデータベースのクローンを生成する、Calmブループリントのインポートと起動の方法について説明します。データベースのプロビジョニングに特化したブループリントについては、PostgreSQLおよびMariaDBプロビジョニングブル―プリントのための、Nutanix GitHubブループリントリポジトリをご覧ください。これらのブループリントや、それを使ってプロダクショングレードのデータベースをどのような形でアプリケーションに提供するかといった点については、今後のブログの中で説明していきたいと思います。

 

ブループリントのインポート

インポートを開始するためには、GitHubに保存されている未加工のJSONブループリントをダウンロードする必要があります。リンク先にあるページを保存するか、ターミナルで以下のコマンドを実行します。

 

コード:

$ wget https://raw.githubusercontent.com/MichaelHaigh/calm-blueprints/master/EraDatabaseClone/EraDatabaseClone.json

 

次に、Admin、Project AdminまたはDeveloperのアカウントでNutanix Calmにログインします。Blueprint(ブループリント)ボタンを選択し、次にUpload Blueprint(ブループリントのアップロード)ボタンを選択します。

 

ポップアップ画面で、まず最近ダウンロードしたブループリントを選択し、次にブループリントを説明する名前を入力して、ブループリントに関連付けるプロジェクトを選択します。

ブループリントは、1つのプロジェクトに限定されることにご注意ください。関連付けしたいプロジェクトが複数存在する場合は、後でブループリントをMarketplaceにパブリッシュすることで、複数のプロジェクトに対する関連付けが可能となります。

Upload(アップロード)ボタンをクリックすると、ブループリントの画面が表示されます。

ブループリントを立ち上げる前に、2つの領域に対する設定が必要になります。まず、画面のトップにあるCredentials(認証情報)を選択し、以下の2つの認証情報を設定します。

 

  • era_credsEraサーバーのシステム管理者アカウントの認証情報です。DBAまたはインフラのシステム管理者が提供すべきこの認証情報は、暗号化された上で安全に保存され、開発担当者が利用することはできません。
  • db_server_credsEraがプロビジョニングしたデータベースへのSSHアクセスを許可するための秘密鍵です。デフォルトの秘密鍵を指定することをお勧めしますが、runtime (実行時)を指定することで、開発担当者は必要に応じて自身の鍵を指定することができます。

もし手元にSSH鍵がなければ、以下のコマンドを使って生成しプリントすることができます。

 

コード:

 

$ ssh-keygen -t rsa -f ~/erakey -C era@example.com

$ cat ~/erakey     # enter this value in the credentials section

$ cat ~/erakey.pub # enter this value later in the variables section

 

 

完了したら、右上のBack(戻る)ボタンを選択します。次に、幾つかの値を設定する必要があります。

 

  • source_db_nameブランクのままでruntime(実行時)を指定することで、アプリケーション起動時に、開発担当者がソースデータベースの名前を指定できるようになります。ブランクのまま、あるいは誤った名前を指定した場合、アプリケーションは意図的に早めに停止して、利用可能なデータベース名の一覧を開発担当者に提示します。
  • source_snapshot_idブランクのままでruntime(実行時)を指定することで、開発担当者はデータベースクローンに使用するスナップショットのUUIDを指定できるようになります。ブランクの場合、最新のスナップショットが自動的に選択されます。誤ったUUIDを指定すると、アプリケーションは意図的に早めに停止して、有効なスナップショットUUIDを開発担当者に提示します。
  • cloned_db_nameブランクのままでruntime(実行時)を指定することで、開発担当者がデータベースクローンに名前を付けることができるようになります。ブランクの場合、デフォルトのクローンデータベース名は _Clone_ となります。
  • cloned_db_public_key「db_server_creds」と共に使用することで、SSHを使ってクローンDBサーバーにアクセスできるようになります。デフォルトのマッチング公開鍵を追加することをお勧めしますが、runtime(実行時)を指定することで、開発担当者が必要に応じて自分の鍵を指定できるようになります。
  • era_ipEraサーバーのIPアドレスになります。これは、ブループリントのインポート時に設定したいため、そのままにしておきます。

下2つの値を設定したら、右上にあるSave(保存)をクリックして、警告やエラーが表示されていないことを確認します。以上でブループリントを起動する準備が整いました。

 

ブループリントの起動

画面の右上で、Launch(起動)ボタンをクリックすると、Application Launch(アプリケーションの起動)ページが表示されます。少なくとも、Application Name(アプリケーション名)を指定し、source_db_namecloned_db_password の値を設定する必要があります。

Eraに登録されたデータベース名が不明の場合は、DBAに問い合わせるか、source_db_nameフィールドをブランクにしたまま、アプリを起動します。アプリケーションの起動に失敗しますが、1GetDbHostInfoパッケージインストールタスクには、有効なデータベース名一覧が含まれています。

 

特にNutanix Eraにアクセスする必要はありませんが、EraのOperations(処理)ページではクローンの処理を監視することができます。

 

アプリケーション管理

Calm Application(Calmアプリケーション)がRunning(稼動中)状態に変わると、Eraのソースデータベースのクローン生成が完了し、Services(サービス)タブからアクセス情報を収集することができます。データベースの実動を検証するためには、Services(サービス)タブでIPアドレスをコピーし、PSequelなどのツールに対して、起動時に提供されたデータベース名とパスワードを提供します。

さらに、デフォルトのプロファイルアクション(起動、停止、削除など)に加え、Manage(管理)タブでは、カスタムのDay 2オペレーションも利用することができます。

 

  • Parent Snapshoto List(親スナップショット一覧)の取得:このアクションを実行すると、スナップショットの取得回数とクローンの親のUUID一覧が表示されます。これは、Refresh Clone(クローンのリフレッシュ)アクションを実行する場合に便利です。
  • Refresh Clone(クローンのリフレッシュ):このアクションを実行すると、クローンデータベースが別のスナップショットにリフレッシュされます。必要に応じてスナップショットのUUID(Get Parent Snapshoto List Action [親スナップショット一覧取得アクション] で取集可能)を指定します。ブランクのままにすると、クローンは直近のスナップショットにリフレッシュされます。

 

例えば、昨晩の午後10:45分頃、業務アプリケーションに問題があったという報告を受けたと仮定しましょう。最初にGet Parent Snapshot List(親スナップショット一覧の取得)を実行し、利用可能な全てのスナップショットの一覧を取得します(出力結果は一部省略)。

 

コード:

Snapshot ID (copy this):1192b09d-3259-4f3e-91de-a7af9aea5179

Snapshot Time Stamp:    2019-05-12 22:35:57

------------------------

Snapshot ID (copy this):8a27dd58-64ef-4972-add4-edad4558fdc8

Snapshot Time Stamp:    2019-05-12 23:23:58

------------------------

Snapshot ID (copy this):5a4168e3-93ac-48e6-bdb5-1d1794a4ac42

Snapshot Time Stamp:    2019-05-13 00:11:57

 

報告のあったエラーを確実に捉えらるよう、データベースを8a27dd58で始まるスナップショットにリフレッシュします:

 

まとめ

Nutanix Eraおよび、そのAPIのオープン性と柔軟性によって、Service NowやNutanix Calmといった既存のセルフサービスツールを、Eraの機能にまで拡張しながら、非常に簡単に利用できるようになります。これによってシステム管理者は、Eraの管理者用認証情報を開発担当者に提供する必要なく、Eraが管理するデータベースに対するセルフサービスによるプロビジョニングやクローンの取得が可能となります。

 

©️ 2019 Nutanix, Inc.All rights reserved.Nutanix、Nutanixのロゴ、その他のNutanixの製品および機能名は、Nutanix, Inc.の米国その他国における登録商標または商標です。その他のブランド名は製品識別のために掲載されたものであり、一般に各社の商標です。Nutanixは係る各社と関係を有する、出資を受けている、または支持を受けているものでもありません。本ドキュメントは情報提供を目的とし現状有姿を反映したものであり、またいかなる黙示または法定上その他一切の保証を与えるものではありません。


This topic has been closed for comments