xin9le.net

Microsoft の製品/技術が大好きな Microsoft MVP な管理人の技術ブログです。

Azure で Oracle VM 立てたらサービス停止くらった話

明けましておめでとうございます!今年の元日は DeclarativeSql の vNext を作ろうということでほぼコーディングをして過ごしていました。

これまでしばらくやるやる詐欺をしていたのですが、実際に製品で使ってくださっている方から「とても便利で感激したので、ぜひお礼したい」とお食事に誘っていただいたりしたので、嬉しくなってついに重い腰を上げましたw 素敵な感想をいただいて本当に嬉しかった!

vNext ブランチにコードがコミットされているのでいくらか何してるかは確認できますが、もう少しだけ機能追加したら pre 版をリリースしようと思っています。

サービス停止のフラグ

DeclarativeSql簡単な CRUD 操作を対象にしているデータベースの種類関係なく透過的に書けるというのが良いところのひとつです。言わずもがな Oracle データベースもサポート対象にしていて、今回実装した機能の動作確認をしようと思い Azure 上に Oracle VM (= ここでは Oracle データベースがインストールされた仮想マシンのことを指します) の環境を構築していました。以前は勤め先で Oracle を使っていたのをいいことにテスト環境を間借りして動作確認したりしていたのですが、今は手元に Oracle 環境がないのでクラウドで何とかしようと短絡的に考えたワケです...。

Oracle Pricing

Oracle Database 11g R2 Standard Edition の一番安いプランでもコレです。超ショボいマシン性能のくせにお高いなんてもんじゃない。MSDN サブスクリプションで賄える範囲 (\15,500/月) をゆうに超えている...(白目。とはいえ、全くテストしないワケにはいかないのでビクビクしながら仮想マシンを立てました。

案の定引っかかった

数時後、作業を終えてサッサと仮想マシンを削除してひと眠り。翌朝親戚の家で新年の食事会があるとのことで出向いたところで...

Subscription has been disabled

この時点で今月使用可能なクレジット残高は \12,000 以上あったので、いくら超絶お高い Oracle データベースを立てても数時間ぐらいで使い切ったりはしないハズ...。なのですが、利用制限に到達したと言われました。

Azure のエキスパートたちからの助言

「Why, Oracle database...」「Why, Azure subscription...!!?」と途方に暮れていたら、Azure が得意な MVP 軍団が助言をしてくれました。

ザックリとまとめると以下の通り。

  1. MSDN Subscription で毎月貰える月間利用可能額を超えないよう利用上限を設定していた
  2. Oracle VM のような 3rd Party 製の仮想マシンは MSDN / BizSpark などのクレジット適用範囲外
  3. 今回 Oracle VM を立てたためにクレジット範囲外の課金が発生
  4. 予期せぬ課金から身を守るための保護機能が作動
  5. 利用上限を解除して支払いをするまでサブスクリプション停止をくらう

なので利用制限を取り払えば解決しそう、とのこと。とりあえず安心しつつも、こういう身の毛のよだつジョークをかまされたりもしました。

念のため Azure サポートに聞いてみた

Azure MVP たちを信じていないわけではないのですが、念のため停止されたサブスクリプションを再開するための方法を問い合わせてみました。まずは日本のサポートチームから。すると...

ま、まぁ今回は個人サイトだし超緊急じゃないからガマンできるんですが、もしお仕事中だったら簡単に引き下がったりしないぞバーロー。とそこにさらに JAZUG のキングから「サポートは常に US を使うんだ」と言われました。

大変ご丁寧に、英語が苦手な僕のために問い合わせのテンプレート文章までくださり...。

あとは必死に英語で状況説明をして、最終的に公式回答として利用上限を外しなさいと教えていただき、無事解決と相成りました。良かった× 2。

Azure サポートへの問い合わせはこれまでしたことがなかったので、問い合わせの仕方が分かった分とてもよい体験になりました。日本のサポートさんは翌営業日まで対応してくれないけれど、US のサポートさんは「これから僕休暇に入るから別の人に引き継いでおいたよ」的な感じで解決まで持って行ってくれました。えぇ、サポートは US さんが良いですね、ハイ。

まとめ

  • Oracle の課金はサブスクリプションとは別なので注意
  • もしやってしまっても利用上限を (当月だけでよいので) 外して対応
  • サポートは US さんのが速くて丁寧
  • 利用上限設定されている状態で Oracle VM とか使えないようにしてほしい (← 強い願望

そして最後に、Twitter で助言くださった皆さん、本当にありがとうございました m( )m

追記 1 : Linux ベースの仮想マシンを使おう

Facebook で Microsoft のエバンジェリストである佐藤さんから「Linux ベースの Oracle データベースだったら大丈夫」との助言をいただきました!簡単にまとめると以下の通りです。

  • 今回僕が使っていたのは Windows Server ベースの Oracle データベースの仮想マシンイメージ
  • Linux ベースの場合は BYOL (= ライセンス持ち込み型) なので、本番環境向けには別途 Oracle データベースのライセンスを購入する必要がある
  • 開発/テスト目的であればライセンスは不要
  • なので仮想マシン自体の料金のみで Oracle データベースを利用可能
  • 利用制限を外す必要がない

コレですよ!僕が求めていたものは...!そして超リーズナブル!

Linux based Oracle Database Images

以下は参考資料としていただいたリンク集。

追記 2 : 日本のサポートさんとの電話

1/5 になったので日本のサポートさんから電話がかかってきました。カクカクシカジカ現状について話した後、いくつか質問してみました。以下はその一部。

Q1.「今回の例では個人サイトなので特に問題にならないですが、一発でサブスクリプション停止となると実業務でも簡単に問題になったりしますよね?そういう事例はありませんか?」

A1.「お客様と同様の事例のトラブルを担当したことがあります。確かにドキュメントには注意書きがあるのですが、ポータル上でそれが一切分からないことでご不便おかけしております。重々承知しておりますので、重ねてフィードバックを上げておきます」


Q2.「Windows Server ベースではなく Linux ベースの 仮想マシンを使えばクレジット内課金だと認識していますが、それは正しいですか?」

A2.「仰る通りです。開発/テスト目的であれば Linux ベースのものを利用することをオススメ致します」