uzullaがブログ

uzullaがブログです。

今回ISUCONではじめてAzureつかいましたの件

Azureってどこぞの統計ではAWSに次いでいるらしいし、日本リージョンもちゃんとあるし、色々ある。 しかし、なんだかんだ周囲の人はさわってないクラウドだったと思います。

ISUCON6でついに触るきっかけを得て、なんだかんだIaaSとして1ヶ月試した(試用期間がちょうど切れた)ので、その感想などを書いてみたいとおもいます。

ただ、Azure識者いわく、「ISUCONは競技の性質上しかたないが、いまさらIaaSを苦労するよりAppServiceなどをつかうべき」というのにはまあ一理あるなとおもったし、これをもってAzureがどうこうではないと思う。しかしまーLinux Boxがあればええんじゃというのは引き続きある需要なので…。

良い所

  • そこそこシンプル
    • たんなるVPSとして使うなら、競合よりわかりやすい。
    • いわゆるSecurity Groupとかもシンプルだしすぐ反映される
    • (私は)AWSで喰らった謎の消えないCPU IDLEなどが発生せず、性能は安定して出ていた
  • Web UI
    • まあ、ほぼ説明なしで使える程度にはシンプル
    • デプロイボタン(を、使う分には)便利!
  • Azure cliコマンドラインからのAzure操作)
    • azure cliはnpmで入るので楽
    • シュッっとVMをたてたり、立ち上がっているVMのIPを一覧できたりするのは便利
    • (gcloudなみに便利)
  • サブスクリプションやリソースグループについて
    • 理解するまでちょっと時間はかかったけど、理解したら把握しやすくて便利
    • サブスクリプション(資金バジェット、お財布、クレカ)の概念は良いと思う、案件がいりくんでもアカウントが乱立しづらそう(どうだろう?)
    • リソースグループにカンタンに人を追加できるので、ISUCONみたいな急造のチームでつかいやすいし、切り離ししやすい
  • VHDについて
    • サーバーにアタッチされたHDDであるVHDが結構便利、取り扱いもしやすい
    • これ、ローカルにおとしてうごかすこともできるんじゃろ?(俺はWSもってないけど)
    • VHDのコピーが爆速で最高(一瞬でクローンできた)
    • VHDを別のVMで立てたりとかできるのは便利
  • 課金について
    • どのクラウドよりもコンパネで課金状況が直感的に見やすいし、詳細も見れる、安心できる。
    • 試用サブスクリプションをそのまま課金サブスクリプションに切り替えできる(らしい)
    • 最初にお金をつっこんでおく(先払い)ができる、バーンレートグラフがみれてリアル(?)

悪い所

  • Web UI
    • Web UIが独特かつ挙動不審(ちょっと重い、たまに崩れる、表示が変、遅い、ブラウザリロードしないと反映がされない事も、ログインセッションがおかしくなる事も)。兎に角Web UIはもうすこしがんばってほしい(もしかしてEdgeならばっちり動くのか…?)
    • 使い勝手が惜しい、リソースまとめて削除とかしたいし、VM立てるとき毎回コピペ面倒なのでSSHキーを登録させておいてくれ頼む
    • リソースグループ内に複数のVMを立てると、依存がわかりづらくて処分ががちょっと面倒
    • 実はWebUIではできないこと、azure cliでしかできないことがかなりある
  • ストレージ、ストレージアカウントについて
    • ストレージアカウント概念に親しみがない、アクセス権限の設定が微妙にわかりづらい。使っていれば慣れるかもしれないが。
    • オブジェクトストレージも、Diskも、DBも、Queueも一箇所でこれはいいのか悪いのか…(わかりづらい)
    • もっとシンプルになるとめでたい(ある意味、今もシンプルさをめざしているのだろうが、慣れ親しんだ概念でない)
    • 中を操作するだけなら http://storageexplorer.com/ こういうツールもある
  • ドキュメントについて
    • ドキュメントは豊富にみえて、自分のユースケースにマッチしたものが少ない(WindowsLinuxで違いがあるし、azure cliPowerShell版でも違いがあるので…)
    • まあ、他はもっとなくて、仕方なく個人ブログみて解決してるような事なので、Azureは充実している方だ、ともいえるが。
  • VMのコピー、スナップショットがとりづらい

    • VHDのスナップショット(というかコピー)はサーバーがオンラインではできないのが惜しい
    • もう一度同じVMを立てる時とかにつかうテンプレートのJSONは取り扱いにめげる
    • 現在のリソースのJSONをみて、ゴネゴネするツールはある ( https://resources.azure.com/
    • JSONを視覚化してくれるやつもある(つかったことはない)( http://armviz.io/designer
  • 価格

    • 高くもないけど、どうせならもう一段階安いVMが欲しい
  • ところどころの古さ
    • CLIでシュッとたてられるUbuntuのデフォルトは16であってほしい(勿論16はあるんだけど、cliからだと短くLinuxboxをシュッとたてる手法があるのだが、それが14)

まとめると

azure cliをつかっていけば大分解決する事が多い。と、ここまでかいていて昔のAWSもそんな感じだったな…と思い出しますね。

課金周りがシッカリしているのが大変に印象がよい、さすがMSである。最近のクラウド系サービスは国内外問わず、本当に課金、利用履歴周りが自分勝手というか、ユーザーの事情を軽視している気がしていて、最悪のケースだと知らないうちに金が(検閲削除)。お金を払うところだけはシッカリしないとお客さんに勧めるどころか、次回使う気がしないので、Azureはそこについては安心感を感じられた。勿論ちゃんとアラートもある(Cost Management + Billing の概要 - Azure Cost Management + Billing | Microsoft Docs)し。なんと(事前払いではあるし、最低金額が結構なものだが)請求書での決済に儀式も(あまり)不要(12 か月の前払いプラン | Microsoft Azure)(っぽい)!

続々と新機能も増えているらしいし、PHPerとしてはApp Service(PaaS)の動向は気になっているので、そこはつかってみて改めてレポートしたい。 (PaaSについてはAWSはアレだし、GoogleやHerokuなどはお客さんがピンとこない。あと、「MSはどこの競合企業でもない」ことが多いので(闇)通し安いのではないかな!!)

どうやって学ぶべきか

これはオンプレおじさんの文脈なんで、いまどきのクラウドネイティブな人は違うかもですが…。

まずはアカウントをとって、一通りVMを立てたり壊したりしてみましょう。そして「全てのリソース」や「リソースグループ」をみて、どういった要素で組み立てられているのか確認するといいとおもいます(たとえば、NICとかStorageとかあるわけで)。この時に画面を英語にしておくと、後で直訳単語の対応で迷わないという説もあります(私は大丈夫だったけど)

その上で、azure cliをいれて、同様の事をやってみると大体わかるのでは。

個人的にシッカリ見ておいた方が良いだろうなと思うのはストレージ周りですね、なんかここだけやたらややこしい。AWSでいうところのS3みたいなのに、「およそデータといわれるもの全部が」はいっているのですが…これはわかれば便利だが、ストレージアカウントアクセスキーがどこにあるんだとか色々最初迷うとおもいます。

たとえばVHDをコピーして、コマンド叩いてVMたてられたりするくらいになれば、「あっなるほどね」という感じになると思います。 個人的にはVPSとかみたいにつかうと、このVHDの概念を中心に据えて理解していけば、他のクラウドよりも便利に感じるんじゃないかなあとおもったりしますが…どうだろう?(AMIみたいな段階が一個飛ばせるし)(ただ、これは「そんな作業するの?」って人に何度もいわれたので、オンプレおじさん的な発想なんだろうなあ…)

このあたりはazure cliの話になるので、その内また別エントリで書きたい。

で、俺は使うのか?

ウーン、一番安いインスタンスでも月1700円なんですよね。まあ安いけど、個人の実験とかだとまだVultrをまだつかってしまうかなー(https://www.vultr.com/pricing/

お仕事においては、AWSが宗教上の理由でダメなお客様ってたまにいるので検討できる。VHD周りの知見がふえて、実はスゲエ取り回ししやすいんだぜ!って事になればワンチャン。次は提案してみようとおもいました。

印象は良い方なので、次回がまたAzureでも喜んで使いますよ!