Hatena::ブログ(Diary)

しがないプログラマ の日記 RSSフィード Twitter

0000 | 00 |
2004 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2005 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 10 | 11 |
2011 | 01 | 03 | 05 | 06 | 07 | 08 | 09 | 11 |
2012 | 01 | 02 | 04 |

2012年4月23日(月)

Windows Azure で、対象ホスト毎にVMサイズを変更する方法

だいぶ間が空きましたが、 Windows AzureでSSL接続を行うためには - しがないプログラマ の日記 のさらに続きです。

今回は、Production環境ではVMサイズが SだけどDevelopment環境ではVMサイズを XSにしたい場合の設定方法を書いて行きたいと思います。

しかし、インスタンス数はVisualStudioから各環境別に設定可能ですが、VMサイズは全体としてしか設定できません。もちろん、管理ポータルからもインスタンス数は「構成」から変更可能ですが、VMサイズはデプロイ時にしか変更できません。そのため、VMサイズの変更は「ServiceDefinition.csdef」ファイルビルド時に書き換えるという、強引な手段で解決することにしました。

結論から言いますと、Azureプロジェクトプロジェクトファイル(拡張子が ccproj)に、以下のTargetを追加することで構成ファイルを変更できます。

  <Target Name="HogehogeTransformBuildConfig" AfterTargets="CopyServiceModel">
    <FileUpdate Condition=" '$(Configuration)' == 'Release-XSmall' " Files="$(ProjectDir)ServiceDefinition.build.csdef" Regex="( vmsize=")Small"" ReplacementText="$1ExtraSmall"" />
  </Target>

この例ですと、ビルドターゲットが「Release-XSmall」だった場合に、VMサイズの項目をExtraSmallに書き換えています。注意点としては、デフォルトではvmsizeが記述されていないため、うまく動きませんので明示的にVMサイズを設定する必要があります。VisualStudioプロパティVMサイズを何か変更してからSmallに戻せばOKです。

これで何をしているのかの解説は以下で。

続きを読む

2012年2月3日(金)

Windows Azure でSSL証明書を複数ホストで別々に設定する方法

Windows AzureでSSL接続を行うためには - しがないプログラマ の日記 の続きです。

1つのWebRoleに対して、Azure上に複数環境用意することは良くあると思います。例えば、Production環境とDevelopment環境等。

この場合「サービス構成」を変更することで、それぞれの環境毎にデプロイできるようにするのが一般的だと思います。少なくとも、自分はそういうやり方をしていました。その際に、それぞれの環境向けにSSL証明書を取得した後、どう設定するのかが分かりづらかったので、追加メモです。

準備

Production環境とDevelopment環境の2つ環境があり、それぞれに対してドメイン名をCNAMEで prod.example.com, dev.example.com と設定したことにします。さらに、それぞれのドメイン向けにワイルドカード証明書ではなく、通常の証明書を発行した場合を想定しています*1

設定方法

WebRoleのプロパティを開き、証明書の追加を行います。この時、名称はどちらのドメインでも使用するので分かりづらくならないように気をつけます。証明書は一旦 LocalMachine/My に入っている prod.example.com証明書を選択します。次に、エンドポイントを追加を行います。これは前回と同じで、Input/https/443 として 先ほど追加した証明書を選択します。

これで、prod.example.comHTTPSで接続できるようになりますが、dev.example.comには接続できません。ここで、証明書の設定タブに戻り、上部にある「サービス構成」をdev向けにします。すると、ほとんどの設定項目がグレイアウトしますが、サムプリントだけは変更可能なのです。後はサムプリントで dev.example.com向けの証明書を選択すれば完了です。

これで、それぞれの環境毎に証明書が設定できました。ポイントは、1つのエンドポイントに対して1つの証明書しか設定できませんが、証明書の中身は環境毎に選択できるので、問題ないってことですね。

*1ワイルドカード証明書の場合には、どちらの環境でもそれを使用するように設定すればOKです

2012年2月2日(木)

Windows AzureでSSL接続を行うためには

Azureを使う際に、HTTPSアクセスするためには結構面倒な手続きが必要だったのでメモメモ。

証明書の発行について

【Azure for ITPRO】サービス証明書の準備 - フィールドSEあがりの安納です - Site Home - TechNet Blogs ここを参考に進めたので、序盤はほとんど同じです。

そんな訳で、AzureHTTPSアクセスするためにはSSL証明書が必要となりますが、自己証明書を使う場合にはこの先の話は関係ないので飛ばして下さい。

証明書を発行するためには、ドメイン名が必要ですが Azureのホステッドサービスに割り当てられるドメイン名hoge.cloudapp.netとなっています。この *.cloudapp.netMicrosoftが管理しているドメインとなるため、hoge.cloudapp.netに対して他の人が証明書発行を行うことはできません。そのため独自のドメインを用意し、DNSのCNAMEによってドメインの別名を割り当て、その割り当てたドメインに対して証明書の発行を行うことになります。これによって、https://fuga.example.com のようなURLAzureアクセスできるようになります。

証明書の発行手続

Azureで使用できる証明書の形式は決まっているためIISを使用する必要があります。

IISインストールは完了した後、管理ツール→「インターネット インフォメーション サービス (IIS) マネージャー」を起動します。機能ビューの中の「サーバ証明書」を選択し、「証明書の要求の作成...」を実行します。

最初に表示される「識別名プロパティ」は証明書に使われる情報なので、正しく入力します。「一般名」にはFQDN(つまり、上記の場合 fuga.example.com)、「組織」には申請団体の正式な英語組織名を、「市区町村」「都道府県」にはそれぞれ住所をローマ字表記で、「国/地域」はデフォルトJP でOKです。

次に、「暗号サービスプロバイダプロパティ」の画面が表示されます。暗号サービスプロバイダは「Microsoft RSA Schannel Cryptographic Provide」のままで、ビット長を申請先の指定長より長いものにして下さい(通常は、2048か1024になるでしょう)。

最後に、CSRをどこに保存するかを聞かれるので、適当な場所を指定し保存します。中身はテキストファイルなので拡張子は、txtなり csrなり適当に。

後は、SSL発行手続きでこのCSRを提出し、サーバソフトウェアでは Microsoft IISを選択すればOKです。

手続きが終わるとCSRと似たようなテキストデータが発行されます。このデータファイルに保存し、また「インターネット インフォメーション サービス (IIS) マネージャー」を起動します。先ほどと同様に「サーバ証明書」を開き、「証明書の要求の完了...」を実行します。後は、先ほどん保存したデータファイルを指定し、「フレンドリ名」には表示名称入力します。これは証明書を表示した際の名称に使われるので、何でも良いですが適切な名前をつけて下さい。

Azure環境への適用

ここまでの流れで、ローカル環境にはSSL証明書インストールされた状態になります。しかし、証明書をAzureで使うためには管理ポータルからの登録が必要となります。そのためには、登録した証明書をエクスポートし管理ポータルで証明書の追加を行うことになります。

それでは、まずは証明書のエクスポートを行います。ファイル名を指定して実行から、「mmc」を実行します。ファイルメニュー→スナップインの追加と削除 を選択し、選択画面の「利用できるスナップイン」の一番下にある「証明書」を選択し利用ボタンをクリック。「証明スナップイン」というダイアログが開くので「コンピューターアカウント」を選択し「次へ」、さらに「ローカルコンピューター」を選択し「完了」。以上で、OKボタンをクリック

これでローカルコンピューターに登録されている証明書が全て見れます。左のペインにあるツリーから、「個人」→「証明書」を選択すると、登録したSSL証明書があると思います。右クリックし、「全てのタスク」→「エクスポート」を選びます。

証明書のエクスポートウィザード」が開くので、「次へ」をクリック。「秘密キーのエクスポート」では「はい、秘密キーをエクスポートします」を選択し「次へ」。「エクスポートファイルの形式」は、Azureでは PFX形式しか使用できないので「Personal Information Exchange」を選択し「証明のパスにある証明書を可能であればすべて含む」にチェックを入れて「次へ」。「パスワード」ではこの証明書を使用する際のパスワードを決めて入力します。最後に出力するファイル名を入力して完了です。これで、pfxファイルが作成されました。

次に、ブラウザから Welcome to Windows Live へ行きます。後はホステッドサービスで「証明書の追加」を選び、pfxファイルと自分で決めたパスワード入力すれば登録完了です。

WebRoleの設定

ここまで設定しても、まだAzureへのHTTPSでの接続はできません。WebRole側に、エンドポイントの追加+HTTPSの場合にどの証明書を使うか、を設定する必要があります。この設定を行うためには、VisualStudioから設定できますが証明書がインストールされている必要があります。そのため、複数人で開発する場合には作成したpfxファイルを各々のPCインストールすることが必要となります。

それでは、VisualStudioを立ち上げて設定をしていきます。WebRoleのプロパティ*1を開き、「証明書」のタブを開きます。ここで「証明書の追加」をクリックSSL証明書を登録します。名前は、次のエンドポイントの設定で使うのでわかりやすい名称を付けておきます。サムプリントがAzureへ登録したものと同じであることを確認できたら証明書の設定は完了です。

次に、「エンドポイント」のタブを開きます。通常でしたら、ここには Input/http/ポート80 だけしか無いと思われます。「エンドポイントの追加」をクリックし Input/https/443 を追加します。この時、SSL証明書の名前の欄で先程追加した証明書の名称が選択できるはずなので、それを選択して完了です。

あとは、このプロジェクトデプロイすれば httpsで接続できるようになります。

2012年1月4日(水)

あけましておめでとうございます

三が日を過ぎてしまいましたが、今年もよろしくお願いします。

今日から、もう仕事始めです。UIE Japanで働き出してからもう4ヶ月も経ち、だいぶ慣れてきました。

去年は、あまり技術書を読む余裕がなくサボり気味だったので、初心忘れず1年1言語の心積もりで勉強していきたいと思います。まずは、ScalaHaskellをもうちょっと勉強しようかな?

2011年11月10日(木)

ランダムな文字列の生成

pythonのFlaskを使う際に、SECRET_KEYを作らないとならかなったので、作り方を忘れないようにメモ

$ python
>>> import os
>>> os.urandom(24)
'\xf8\x01s\x87\xba\xb8U\\\x88\xec\x99]\x12\xf3\x93O\xd4y\x1cK\xd4\xfb"%'

os.urandom を使うと、指定した文字数分 /dev/urandom を使って、ランダム文字列を生成してくれるらしい。

しばらく更新していなかったですが、9月から UIE Japan という会社で働いてます。

2011年9月7日(水)

DevQuiz

先週末、とりあえずチャレンジ以外のとこだけ終わらせて、平日に入ってからちまちまとスライドパズルに挑戦しているんですが、難しいですね。

とりあえず、3x3を全探索で解くことはできたけど、このままじゃ3x6でも全然終わらないので枝刈りを考えないとダメですね。

2011年8月14日(日)

Horiuchi_H2011-08-14

トルコ旅行記 8日目

8日目はサフランボルを出発して、トルコ一番の都市でありアジアヨーロッパの間にある都市でもあるイスタンブールへ。

f:id:Horiuchi_H:20110814154055j:image

こんなルートで、トルコの西部から中央にかけてをグルッと回ってきたわけです。そして、最初に飛行機で着いたイスタンブールへ戻ってきました。イスタンブールは、歴史がある場所でローマ時代から都市があり、ビザンチン帝国首都であるコンスタンティノープルもここのヨーロッパ側にありました。オスマントルココンスタンティノープルを攻略した際に、オスマントルコ首都もこの場所に移されたそうです。

そんなイスタンブールの旧市街には、ビザンティン時代に作れたアヤ・ソフィアとその後オスマントルコの時代に作られた最大級のモスクであるスルタン・アフメット・ジャーミー(通称 ブルーモスク)が並んで作られており、隣には15世紀から19世紀まで使われていたトプカプ宮殿があります。その三カ所を今回は見てまわりました。

f:id:Horiuchi_H:20110731200634j:image

まずは、ブルーモスク。ここは現在もモスクとして使われており、礼拝時間は見学ができなくなっています。

f:id:Horiuchi_H:20110731203038j:image

中は大きな空間となっており、ここで大勢の人が礼拝を行うわけです。壁にはイズニックタイルが貼られ、たくさんの窓にはステンドグラスがはまっています。高い天井と大きなドームを支えている柱の太さは凄いことになってました。

f:id:Horiuchi_H:20110731203803j:image

その中央に位置するドームがこちら。遠近感が狂うほどの大きいドームです。直径が26mあるらしいです。壁や天井でタイルが貼られていない箇所にはくまなくフラスコ画が描かれていました。

f:id:Horiuchi_H:20110731204746j:image

次はアヤソフィア聖堂。こちらはビザンティン時代には大聖堂だったものが、オスマントルコ占領されてからはモスクに改修され使われていました。大聖堂だった時代のモザイク画は、改修された際に漆喰などで埋められていたため、結果的に保存状態もよく現在でも見られるようになっていました。

f:id:Horiuchi_H:20110731211030j:image

こちらも中は広大な空間になってます。モスクとして使われなくなった現在も、大きな円盤は入り口から出せないため、壁にかかったままになっているそうです。中央のドームは33mあるらしく、下から見上げても大きさがよく分からないくらい途方もない大きさでした。

f:id:Horiuchi_H:20110731211414j:image

2階の壁に描かれている『デイシス』と呼ばれるモザイク画です。下部は失われてしまっているけれど、幸い人物の顔の辺りは残っています。中心にイエスが描かれており、左側にマリア、右に洗礼者ヨハネが描かれています。

f:id:Horiuchi_H:20110731211808j:image

こちらは2階の奥の壁に描かれている『キリスト皇帝コンスタンティノス9世、皇后ゾエ』のモザイク画。

f:id:Horiuchi_H:20110731211816j:image

その隣に描かれている『聖母子と皇帝ヨハネス2世コムネノス、皇后エイレーネー(イリニ)』のモザイク画。中央のマリアに抱かれている子どもイエス。上の画と同じ手の形をしてます。

f:id:Horiuchi_H:20110731213155j:image

東側の半ドームに描かれている『聖母子と大天使』。左側にも大天使が描かれていたと見られていますが、現在は残っていません。右側の天使もだいぶ欠けてしまっていますね。

f:id:Horiuchi_H:20110731222148j:image

最後に、トプカプ宮殿へ。ここは入り口の門です。奥にブルーモスクが見えるのですが、いまいち写ってませんね。。。

中は広く、いくつもの建物があります。増改築が繰り返されていたらしく、建築当時からだいぶ変わっているようです。

f:id:Horiuchi_H:20110731223259j:image

謁見の間として使われていた建物。

f:id:Horiuchi_H:20110731223745j:image

上の建物の内装です。綺麗な絵が描かれ、タイルが貼られ、豪華な内装でした。さすが世界の半分を支配したオスマントルコ帝国の宮殿ですね。

この後、スルタン(王)の自画像や宝物庫、聖遺物を収めた部屋等を見て回ったのですが、撮影禁止だったのでそれらの写真はありません。しかし、宝物庫にはオスマントルコが栄華を極めたのが分かるほど、貴重な宝石や装飾品玉座などが展示されており、1つ1つがいくらするのか分からない宝石が大量に飾られた剣やツボやら宝石箱やらがいくつもありました。あまりにも多いので、それぞれについているルビーエメラルドトルコ石などがただのガラス玉に見えてくるほど。

その中でも極めつけは「トプカプの短剣」と呼ばれる大粒のエメラルドが3粒付いている短剣と「スプーン職人ダイヤモンド」と呼ばれる 86カラットもある涙滴型のダイヤモンドです。どちらも宝石が大きすぎて現実感がなくなるほどの代物でした。ダイヤモンドは綺麗にカットされており、光の具合によって色々な見え方をするのでしばらく眺めてました。

f:id:Horiuchi_H:20110731232158j:image

一通り見て回った後に、宮殿のバルコニーで休憩。右側が金角湾で奥にボスポラス大橋が見えてます。いい景色ですね。

f:id:Horiuchi_H:20110731233530j:image

宮殿の最後に、中庭にあった水道。どこもこんな感じで豪華でした。

f:id:Horiuchi_H:20110801022644j:image

ホテルに向かう途中のバスから、「ヴァレンス水道橋」が見れました。ローマ時代のの水道橋で、コンスタンティノープルが作られた際に作られたものだそうです。

PV: 485930