たいちの何か

見たもの、聞いたもの、徒然なるままに

Azureの価格を比較しみた

ちょっと気になったので、全部ではありませんが主だったところのAzure仮想マシンの単価を調べてみました。

Azureとは

Azureとは、マイクロソフトが提供するクラウドサービスの名称です。 1時間単位で課金され、いろいろなスペックのWindowsサーバーやLinuxサーバーを使うことができます。世界中にデータセンターがあり、今も拡大中のようです。

なぜ価格を調べたの

先日、Azureの仮想マシンを1時間だけ起動したあと、クレジットカード明細を見たら70円*1と書いてあり、全世界共通の値段なのか、地域によって違うのか興味があったからです。

個人ユースなので、同じスペックならばより安いほうがよいので調べてみました。 VPS使えばいいじゃんという意見もありますが、VPSはスペック固定で月額いくらと決まってしまうので複数台かつ複数スペックの検証などがやりにくいので、従量課金で使っただけ請求のクラウドが個人的に好みです。*2*3

で、結果は?

自分が使いそうな汎用型メモリ最適化型の時間単価を、ざっと調べたところ、意外な結果になりました。

f:id:taitioooo:20170726222646p:plain

なんとアメリカが殆どのモデルで最安値と言う結果に。*4 インドや東南アジアが最安かな?と思っていたのですが、これは意外でした。

また、最も高いところはというと、東アジア、日本という結果でした。 東アジアはシンガポールでしょうか。だとすると、この2地域の価格が高いというのは想定の範囲内ですね。

結論は?

というわけで、個人ユースは米国西部2のデータセンターを使っていこうと思います。

以上久々の投稿でした。笑

*1:安いっ!!

*2:VPSを使っていた頃もありましたが、一番性能の低いモデルでも月500円−1000円確実にかかってしまいました。

*3:全く仮想マシンを起動しない月もあるので…

*4:マイクロソフトお膝元ということで、戦略的な値付けなのでしょうか?

iMac mid 2010を工場出荷状態(クリーンインストール)に戻す

弟から譲り受けたiMac mid 2010を工場出荷状態に戻すべくOS Xクリーンインストールをしたが、思わぬところでハマったので備忘録。

インターネット復元

インターネット復元という方法を使って、インターネット経由でクリーンインストール
インターネット復元とは、Mac OS X Lionで実装された新機能です。
当初はLionがプリインストールされた世代以降でしか使えなかったのですが、後日EFIアップデートで以下のモデルまで対応が拡張されました。

インターネット復元をするには何が必要なの

上述の通りインターネット復元に対応したMacが必要です。

また、今回、自分は弟から譲り受けたMacであるので行いませんでしたが、自分のMacクリーンインストールする際は、事前に下記の作業をしておきましょう。

  • iTunes Storeの認証の解除
  • iCloudMacを探すをオフにしてサインアウト
  • Appleマイサポートプロファイルの削除

下記のBlogに詳しく書かれていて参考になります。

itea40.jp

どうすればインターネット復元が使えるの

詳しくは、下記のAppleのサポートに書いてありますが、Macを起動した直後に、option + command + Rを押し続けます。*1

support.apple.com A 上手くコマンドが入力できると、Wifiの接続設定を聞かれ、適切なWiFiを選択肢て進むと、プログレスバーが出て10分程度待たされます。
*2

その後、以下のような画面が表示されます。

f:id:taitioooo:20170130144109j:plain

事前にHDDのデータを消し去っていたので、macoc再インストールを選びました。*3
次に進無前に、画面右上端のWiFI接続を確認します。 *4
*5
*6
*7
WiFi設定を行ってしまえば、あとはウィザードを進めるだけです。

規約に同意します。 f:id:taitioooo:20170130144340j:plain f:id:taitioooo:20170130144432j:plain

MacOSをインストールするドライブを選択します。*8 f:id:taitioooo:20170130144532j:plain f:id:taitioooo:20170130144626j:plain

macOSをダウンロードする旨のメッセージが表示されたら続けるを押して、インストールを実行します。 f:id:taitioooo:20170130144148j:plain f:id:taitioooo:20170130144301j:plain

以上でインターネット復元は終了です。

macOS Sierra パーフェクトマニュアル

macOS Sierra パーフェクトマニュアル

*1:Macに内蔵されている復元システムから起動する場合はCommand + Rだけを押します

*2:ブートイメージのダウンロードをしていると思われます

*3:HDDを初期化していなくても、再インストール可能です

*4:この設定に気づかず、30分位ハマりました

*5:EFI起動時にWiFi設定をしているので、この画面でも自動でWiFiが設定されていると思いきや 綺麗さっぱり設定がクリアされており、オフライン状態となっていました

*6:オフライン状態で、続けるを押しても「適格性を検証します。」といったメッセージが表示されたあと、前の画面に戻るだけで一向に進みませんでした

*7:インストールされるOSがMac OS Sierraですが、将来サポートモデルから切り捨てられても、インターネット復元できるのでしょうか。。。

*8:筆者の環境は500GBのドライブ1つのみです

Azure - Powershellを使ってAzureに接続してみる - 接続編

今回はPowershell経由でAzureに接続してみたいと思います。

前回の記事はこちら。
edge.hateblo.jp

How to connect to Azure using Powershell

Powershellを使ってAzureに接続するためには、Webブラウザ経由で接続と同様にログインが必要です。 (ログインなしで接続で来たらセキュリティ的にまずいですからね)

PowershellでAzureにログインするためには以下のコマンドを実行します。

add-azureaccount

すると下記の画面が出てくるのでIDとパスワードを入れればログイン完了です。
f:id:taitioooo:20150812212822j:plain

簡単ですね。
でも!毎回ログインするのって面倒じゃないですか?
Powershellを起動したら、Azureにログインが完了していてほしいと思いませんか?
スクリプトを使ってAzureのコマンドをたたきたいときはどうすればいいのと思いませんか?
(少なくとも私はそう思います笑)

この辺りは天下のマイクロソフト様なのでしょうか。ちゃんと自動ログインする方法が用意されています。
早速自動ログインの設定をしてみます。

import PublishSettingsFile to logon Azure automatically

1. login Azure portal

まずWebブラウザを起動し、 Azureポータルにログインしておきます。
f:id:taitioooo:20150812213818j:plain

2. Invork Get-AzurePublishSettingsFile

次にPowershell*1を起動し以下のコマンドを実行します

Get-AzurePublishSettingsFile

実行するとWebブラウザに以下のページが表示され従量課金-x-xx-xxxx-credentials.publishsettingsというファイルのダウンロードが始まります。
このファイルをダウンロードします。(設定変更後削除するので、わかるところに保存しておいてください)
f:id:taitioooo:20150812214354j:plain

3. import Publishsettings file

以下のコマンドを実行して、先ほどダウンロードしたpublishsettingsfileをインポートします。

import-AzurePublishSettingsFile -PubliseSetiingsFile <ファイルのフルパス> 


以上で自動ログインの設定終わりです。
これでAzureサブスクリプションに対する自動ログインが可能になりました。

さてpublishsettingsfileをインポートしたらAzureに接続できるようになりましたが、このファイルは何なのでしょうか。
ググってみたところこんな記事を見つけました。

About Windows Azure Publish Settings File and how to create your own Publish Settings File

A publish settings file is an XML file which contains information about your subscription. It contains information about all subscriptions associated with a user’s Live Id (i.e. all subscriptions for which a user is either an administrator or a co-administrator). It also contains a management certificate which can be used to authenticate Windows Azure Service Management API requests. Typically a publish settings file look something like this:

確かにmmcを起動して証明書の[個人]-[証明書]を見てみると[Windows Azure Tools]という証明書が入っているではないですか。 有効期限は1年のようですね。つまり1年に1回は更新する必要があるということですね。 f:id:taitioooo:20150812221019j:plain

ちなみに、PublishsettingsFileをインポートすると、下記に設定ファイル(.json)が作られるようです。

%UserProfile%\AppData\Roaming\Windows Azure Powershell
f:id:taitioooo:20150812221644j:plain

jsonファイルの中身はこんな感じです。 (個人情報は削っています)
自動ログインに必要がなくなったら、下記のファイルと証明書を削除すればよさそうですね。

{  
  "Environments": [],  
  "Subscriptions": [  
    {  
      "Id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",  
      "Name": "従量課金",  
      "Environment": "AzureCloud",  
      "Account": "xxxxxxxxxxxxxxxxxxxxxxxx",  
      "Properties": {  
        "SupportedModes": "AzureServiceManagement",  
        "Default": "True"  
      }  
    }  
  ],  
  "Accounts": [  
    {  
      "Id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",  
      "Type": 0,  
      "Properties": {  
        "Subscriptions": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"  
      }  
    }  
  ]  
}  

*1:管理者権限・ユーザー権限どちらでも構いません

Azure - Powershellを使ってAzureに接続してみる - 準備編

Windows 10の環境にMicrosoft Azureへ接続するための環境を構築します。  

そもそもMicrosoft Azureってなによ?という方はGoogle先生に聞いてみるとわかりやすい説明があると思います。(簡単に言うと、マイクロソフトが提供するクラウドサービスです。)

Azureの管理画面は、お馴染み(?)のこんな画面ですよね。
慣れてくると使いやすいような錯覚に陥るのですが、基本的に使いにくいです。
f:id:taitioooo:20150806210445j:plain

それに何かの値を一括で取得しようとしてもレポート出力機能などなく規模が大きくなると集計作業などほぼ不可能に近いです。
これは最近のMicorsoftのクラウドサービス全般にいえることなのですが、画面は最低限の機能(時には最低限の機能もない)が表示されており、使い倒したい人やカスタマイズしたい人はPowershell使ってね!!というスタンスをとっています。

つまりPowershellがないと、Microsoftクラウドサービスを使いきれないってことなんですね。
もちろんPowershellなしでも、ある程度までは十分に使えますが、この業界で食べていくにはPowershellは必須でしょう。

What is needed to connect Azure using Powershell?

PowershellでAzureに接続する方法は、実はいろいろあります。。
それぞれ用途が微妙に違い混乱のものとなっています。

  1. Microsoft Online Services Sign-In Assistant for IT Professionals RTW
  2. Azure Active Directory Module for Windows PowerShell
  3. Mixorosft Azure Powershell

今回は、Azure管理画面をコマンドで操作できるMicrosoft Azure Powershellモジュールを導入します。

How do you setup Microsoft Azure powershell ?

このモジュールの導入はとても簡単。

1. Get Web Platform Installer

まずMicrsoft Web Platform installerのダウンロードページにアクセスして、Web Platformインストーラーを入手します。
f:id:taitioooo:20150806211941j:plain

2. Install Azure Powershell module

ダウンロードが完了したら、インストーラーを起動して、Microsoft Azure Powershellを追加し、インストールを押します。
f:id:taitioooo:20150806213620j:plain
f:id:taitioooo:20150806213621j:plain
f:id:taitioooo:20150806213623j:plain
f:id:taitioooo:20150806213624j:plain

3. Import Azure Powershell Module

インストールが完了したらPowershellを起動します。2の手順でMicrosoft Azure PowershellモジュールがPCにインストールされてるので、Powershellコンソールで以下のコマンドを実行してモジュールを読み込みます。

Import-Module Azure

f:id:taitioooo:20150806214014j:plain

これでAzureに接続する準備が整いました。何が入ったか気になる方は以下のコマンドを実行してみてください。
かなりのCmdletが追加されているので、びっくりしますw

  • インポートしたCmdletを確認する
get-Module -moduletype Azure

  • 追加されたCmdletの個数を調べる(737個も追加されています><)
(get-Module -moduletype Azure).count
  • モジュールのバージョンを調べる
(Get-Module -name "azure").version

あっという間にインストール完了ですね。次回は実際にAzureに接続してみたいと思います。

Windows - UAC無効化のススメ

Windows10をインストールしてまず最初にやったこと。 それは、UAC(ユーザーアクセス制御)の無効です。  

What is UAC ?

UACと言われてもなかなかピンと来ない人が多いのではないでしょうか。*1    では、下の画像に見覚えがあるかと聞かれたら、大体の人は「ある」と答えるのではないでしょうか。  

そうです。これがUACと呼ばれるアクセス制御の仕組みです。

UACとは、Windows Vista以降のWindowsに搭載されているセキュリティ機能の一つ。管理者(アドミニストレータ: Administrator)権限を持つユーザに普段は一般ユーザと同じ権限しか与えず、ソフトウェアが管理者権限の必要な 処理を実行しようとした際に警告ダイアログを表示して本当に実行してよいかユーザに確認する機能。*2

f:id:taitioooo:20150729232520j:plain

コンピューターには大きく分けて2種類の権限があります。(実際はものすごく細かく権限が分かれていますが)

  • 管理者権限(root, administrator)
  • ユーザー権限

家庭などで個人がWindowsを使う場合の多くは、ログインしているアカウントは管理者権限を持っています。
管理者権限とは、あらゆる設定を変更できあらゆるソフトウェアをインストールできる権限のことです。*3

管理者権限を持つと、何でもできるので使い勝手の面では申し分ないのですが、セキュリティ面で不安なところもあります。   そのため、管理者権限を持つアカウントも通常時はもてる権限を制限し、必要な時だけ管理者権限に昇格する仕組みが設けられました。それがUACという仕組みです。

LinuxUNIXの世界では、何十年も前からこの仕組み*4が実装されていましたが、Windowsに実装されたのは、10年前のWindows Vistaからです。

普段使う分には、UACが有効になっていても手間さえ気にならなければ、利用に支障はないのですが、スクリプトなどを書く場合には、この仕組みがあだとなる場合があります。
スクリプトで様々な処理を書く場合、大抵管理者権限がないと実行できない処理をするため、UACが有効になっていると、管理者権限で実行しているつもりが、ユーザー権限で実行していたという状態になり処理が失敗します。

というわけで、私はUACを無効にしています。 無効にする方法は下記のとおりです。

How do you disable UAC ? (case of Windows 10)

  1. 画面左下のウインドウズマークの上で右クリックをして、管理メニューを呼び出し、[コントロールパネル]を開きます。
    ※画像はメニューを表示する前の状態です。 f:id:taitioooo:20150729234656j:plain

  2. コントロールパネルの[ユーザー] - [ユーザーアカウント] - [ユーザーアカウント制御方法の変更]を開きます
    f:id:taitioooo:20150729234910j:plain
    f:id:taitioooo:20150729234914j:plain
    f:id:taitioooo:20150729234916j:plain

  3. デフォルトで下から3番目に設定されているので、1番下に設定してOKを押します。
    f:id:taitioooo:20150729234919j:plain
    f:id:taitioooo:20150729234922j:plain

  4. コンピューターを再起動すれば、UACが完全に無効になった状態で利用することができます。


以上がUAC無効化の方法でした。 (セキュリティレベルを下げることになるので、設定変更は自己責任で)

*1:ピンときた人も結構いるかな?

*2:抜粋: http://e-words.jp/w/UAC.html

*3:かなりざっくり言いました

*4:sudoなど