#はじめに
最近、Azureのサービスに触れる機会がありましたので、
比較的新しい!?はずのサービス[Streach Database]について触れてみます。
##〇Stretch Databaseとは
透過的かつ安全にコールド データを Azure クラウドに移行する方法、です。
<参考>
https://docs.microsoft.com/ja-jp/azure/sql-server-stretch-database/
ローカルDBに蓄積されたコールドなデータ(参照頻度が低いもの)をAzure上に移管するイメージ。
必要に応じてオンラインでコールドデータへのアクセスが可能。
※SQLServerがバックグラウンドで頑張る感じ
###具体的なメリット
〇価格・コストがスケーラビリティ★。
https://azure.microsoft.com/ja-jp/pricing/details/sql-server-stretch-database/
上記サイトで試算可能です。
〇基本そのまま使える
サーバー換えた、接続先情報変更しなきゃ、といったものは不要。
使いどころのイメージとしては
- オンプレミスでSQLServerを利用しているがストレージの空きが不安(物理的な拡張コスト含めて)
- 履歴データなど、過去データが蓄積されていてメンテナンスしたいが消すのは微妙(いつか使うかも)
こういうシーンに効果的なのでは。。と想定しています。
SQLServer2016以降であれば利用可能なようです。
基本的にローカル - Azure間の通信は暗号化されるようです。
##〇はじめに2
クラウド化が進む世の中ですが、まだまだオンプレミスでの運用も見受けられますので
出来るだけコスト・影響を少なく長期的な運用を提供するか、を考えた際の一つのアプローチにつながれば、
と思い実際に使ってみようと思いました。
なので、この記事は初めて触れてみる、的なレベルの内容になります。
ご了承くださいませ。
Stretch Databaseに向いているか診断する[Data Migration Assistant]というツールがある模様。
こんな感じ。
<トップ画面>
英語版しかないのであれですが、個人的には雰囲気である程度触れました。
##設定する
ローカルの適当なデータベース>テーブルにStretch設定。
SQLServerManagementStudioで操作します。
対象のテーブル名で右クリック>Stretch>有効化の順に進めます。
そうすると以下の画面が起動。
[次へ]で進めていくとAzureへのサインインを要求されますのでサインイン。
サブスクリプションを選択。
リージョンを選択。
サーバーを新設する or 既存サーバーを利用するか選べます。(今回は新設を選びました)
新設する場合のサーバー名は以下のルール見たいです。
※stretchserver-[PC名]-sql-[カタログ名]-[タイムスタンプ]
ログイン名、パスワードを入力。
資格情報保護目的のデータベースマスターキー(DMK)の入力を要求されます。
入力し次へ。
通信する際のIPを設定。
完了です。(データ次第かと思いますが約1000レコードでプロビジョニング5分くらい)
AzurePortalで確認するとそれっぽいサービスが出来ています。
※拡張データベースといった表記になります
##確認
移管されているか確認。
データ領域を確認してみると0.180MBから0.008MBに変わっていますね。
まじかー
接続してクエリで確認してみます。
実際にレコードあるかのように結果が返ります。
クラウド側への参照情報のみが残っている感じなのかな。。
##その他
関数フィルターを定義してテーブル情報にセットする形で任意の条件で移管できるようです。
例) ある日付型のカラムの値が2018/01/01より前のデータを。。等
#おわりに
雑な記事ですが、最後までお付き合い頂きありがとうございました!