2017年6月23日金曜日

Azureポイント対サイトVPN用証明書のハッシュ関数

Microsoft Azureでは「ポイント対サイトVPN」を構成することで、特定のPCからAzureの仮想ネットワークにVPN接続を行うことができます。

この時使われるのが「SSTP (Secure Socket Tunneling Protocol)」で、HTTPSを使った接続を行います。

Microsoft AzureによるITインフラの拡張」では、ポイント対サイトVPNを構成する演習を行いますが、先日接続ができませんでした。

どうやら、使った証明書に問題があったようです。

演習で使う証明書は、ハッシュ関数としてSHA-1を使っています。しかし、SHA-1は理論的な脆弱性が指摘されていました。2017年2月には実際の攻撃実験も成功しています。

しかし、演習ではセキュリティリスクのあるSHA-1を使い続けていました。演習で使う仮想マシンや仮想ネットワークはその日中に削除しますし、仮想マシンにはサンプルのWebサイトしか存在しないため、問題にはならないと考えていたからです。

しかし、Azure側がSHA-1の受け入れを停止したようです。

この問題を解決するには、SHA-2などSHA-1よりも強力なハッシュ関数を使って証明書の再作成を行います。

テキストでは、マイクロソフトがWindows SDKとともに配布しているmakecert.exeを使った例を紹介してます。そこで指定している「sha1」というパラメーターを「sha256」に変更してください。

【自己署名ルート証明書】
makecert -sky exchange -r -n "CN=G20K-Root" -pe -a sha256 -len 2048 -ss My "C:\G20K-Root.cer"

【クライアント証明書】
makecert -n "CN=G20K-Client" -pe -sky exchange -m 96 -ss My -in "G20K-Root" -is my -a sha256

自己署名証明書は、PowerShellの「New-SelfSignedCertificate」でも構成できます。こちらの方が少し複雑なように見えますが、Windows SDKのインストールが不要なので、むしろ簡単かもしれません。

詳しくは「PowerShell を使用したポイント対サイト接続の証明書の生成とエクスポート」をお読みください。

2017年6月7日水曜日

仮想マシンの利用料金の試算(AWS、Azure、Bluemix)【追記】さくらインターネットの場合

パブリッククラウドで最も高価なサービスは、やはり仮想マシンでしょう。

クラウド各社の仮想マシン(またはベアメタルサーバー)の利用料金を試算してみました。Azureは1分単位、AWSやBluemix Infrastructureは1時間単位の課金ですが、今回は比較を簡単にするため1ヶ月の課金にそろえました。

AWSはいつも「安い」と言われますが、安いのはネットワークとストレージであって、仮想マシンはそれほど安くないことが分かります。ただし、仮想マシンには豊富な割引オプションがあるため、運用によってはかなりコストを削減できます。

逆に「高い」と言われるBluemix Infrastructureが案外安くなっています。Bluemix Infrastructureが高価なのはネットワーク機器などのアプライアンス製品なので、単純にサーバーを構築するだけだったらそれほど高価ではないことが分かります。

ただし、Bluemix Infrastructureは可用性に関する考え方が違うので、サービスレベルを他社と同列に扱うことはできません。


【仮想マシン要件】

  • サーバー…4コア、8GBメモリ
  • ディスク…128GBシステムディスク + 1TBデータディスク (1,000 IOPS)
  • ネットワーク…月間500GBのアウトバウンド通信
  • データセンター…東京(東日本)
  • OS…Windows Server 2016 Standard (AzureはDatacenter)

【計算資料】

各社のサーバー性能は以下の通りです。ここでは、これらのパラメータを考慮せずに計算します。なお、AWSとAzureの性能あたりコストはほぼ同等というベンチマーク結果があります。


【AWSでの試算】

1ヶ月744時間として、以下の構成で$531/月、6万円/月くらいでしょうか。ただし、AWSには豊富な割引オプションがあり、仮想マシンは最大75%の割引があります。

なお、AWSの汎用SSDは10.000 IOPSを実現できるので、汎用SSDで計算しました。

  • サーバー: $324…c4.xlargeサイズ(4コア、7.5GBメモリ)
  • システムディスク: $15...汎用SSD($0.12/GB) × 128GB
  • データディスク: $122…汎用SSD($0.12/GB) × 1024GB
  • アウトバウンド通信:$70…0.14/GB×499GB(無料枠は1GB)

c4.xlargeサイズは16 ECUなので、コアあたり4 ECUとなります。Azureの場合はコアあたり210~250ACUなので、4×46=186ACUのCPUとほぼ同等の速度と考えられます。


【Azureでの試算】

1ヶ月744時間として、以下の構成で41,463円/月になります。Azureのハードディスクは500IOPSなので、2台構成のRAID-0で1,000IOPSを実現します。

  • サーバー: 33,087円…F4サイズ(4コア、8GBメモリ)
  • システムディスク: 300円...128GB管理ディスク(S10)
  • データディスク: 1,109円…512GB管理ディスク(S20)× 2
  • アウトバウンド通信:6,967円…14.08/GB×495GB(無料枠は5GB)

SSDにすると以下のようになり、58,222円に上がります。なお、SSDは高速なのでシングルディスクで構成しました。

  • サーバー: 33,087円…Fs4サイズ(4コア、8GBメモリ)
  • システムディスク: 2,312円...128GB管理ディスク(P10)
  • データディスク: 15,854円…1024GB管理ディスク(P30)
  • アウトバウンド通信:6,967円…14.08/GB×495GB(無料枠は5GB)

F/FSシリーズはコアあたり210~250ACUなので、c4.xlargeの186よりも少し速くなります。


【Bluemix Infrastructureでの試算:仮想マシン】

以下の構成で$299.02/月、34,000円くらいでしょうか。

  • サーバー:$68…4コア(2 GHz)パブリック仮想マシン
  • メモリ: $86…8GBメモリ
  • システムディスク: $4.52...100GB SATA
  • データディスク: $64…500GB SAN × 2
  • OS: $50…Windows Server 2016 Standard
  • パブリックIPアドレス: $4…4個
  • アウトバウンド通信:$22.5…$0.09/GB×250GB(仮想マシンの無料枠は250GB)


【Bluemix Infrastructureでの試算:ベアメタルサーバー】

以下の構成で$492/月、55,000円くらいでしょうか。

  • サーバー:$153…Intel Xeon E3-1270v3 4 コア(3.50 GHz)
  • メモリ: $86…8GBメモリ
  • システムディスク: $27...1TB SATA
  • データディスク: $186…960GB SSD(最小構成)
  • OS: $36…Windows Server 2016 Standard
  • パブリックIPアドレス: $4…4個
  • アウトバウンド通信: $0…月額課金ベアメタルサーバーは500GBまで無料


追記【さくらインターネットでの試算:ベアメタルサーバー】

では、ここでホスティング事業者として有名な「さくらインターネット」のサーバーで試算してみましょう。さくらインターネットでは仮想マシンやクラウドサービスも提供していますが、ここでは一般的なベアメタルサーバーで試算します。

  • サーバー:12,960円+初期費用27,000円…Xeon 4コア(3.4 GHz)
  • メモリ: 0円…8GBメモリ(基本サイズ)
  • ディスク:1,080円+初期費用59,400円 ..1TB SATA × 2
  • OS: 3,240円…Windows Server 2012 R2 Standard

以上の構成で、初期費用86,400円、月額利用料17,280円になります。

つまり、初月は10万円以上かかってしまいます。しかし、4ヶ月間の累計は155,520円となり、1ヶ月あたり38,880円になります。1年間だと累計293,760円、1ヶ月あたり24,480円で、クラウドよりはずっと安くなります。

「クラウドの仮想マシンは、連続稼働を前提にすると、それほど安くはない」という意味をお分かりいただけたかと思います。