CodeZine(コードジン)

特集ページ一覧

PDC 2010で明らかになったWindows Azureの新機能(前編)

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2011/01/27 14:00

目次

リモートデスクトップ

 Windows Azureへデプロイした個別のロールインスタンスにリモートデスクトップ接続が可能になりました。

 これにより、個別のインスタンスへログオンしてOSの状況確認や障害調査、さらにはOSの構成変更操作も行うことができます。ただし、これらの変更は、ゲストOSのアップグレード、VMの停止による自動リカバリなど外的要因によって再起動したタイミングで失われてしまいます。したがって、デプロイ後に構成変更を行い運用するといった用途にはお勧めできません。

 リモートデスクトップの利用は、検証やテスト、障害調査、ロールインスタンスの状態監視などの利用に限定しましょう。

 リモートデスクトップへの接続設定は、デプロイ時に行います(図8)。認証には証明書が必要で、あらかじめリモートデスクトップ接続を行うホストサービスに配置しておく必要があります。

図8:リモートデスクトップの構成ダイアログ
図8:リモートデスクトップの構成ダイアログ

 リモートデスクトップの接続は、デプロイ完了後に管理ポータルから行います。接続したいインスタンスを選択し、Connectをクリックすることによってリモートデスクトップ接続が開始されます(図9)。

図9:リモートデスクトップ接続画面
図9:リモートデスクトップ接続画面

 ゲストOS 2.xにリモートデスクトップ接続をした画面です(図10)。Windows Server 2008 R2 Enterpriseと表示されているのが確認できます。

図10:ゲストOS接続画面
図10:ゲストOS接続画面

権限昇格

 権限昇格(Elevated Privileges)は、今まで管理者(Admin)モードと呼ばれていた管理者権限を付与する機能です。管理者権限を付与には2通りの方法があります。

スタートアップタスク

 ロールインスタンス起動時に任意のコマンドを実行でき、同時に権限を昇格できる仕組みになっています。

 これらにより、インストーラの起動、OSやIISの構成変更、レジストリの書き込みなど、管理者権限が必要な操作を実施できるようになります。

 スタートアップタスクは、サービス定義ファイル(ServiceDefinition.csdef)のStartup要素に記述できます(リスト1)。管理者権限の有無は、executionContext属性で指定します。elevatedなら管理者権限、limitedなら標準ユーザーの権限で実行されます。taskTypeは実行時の振る舞いを指定し、simpleはコマンドの実行が終了するまで待ち合わせを行う同期実行を、backgroundは待ち合わせをしない非同期実行を意味します。

[リスト1]スタートアップタスクの定義例
<WebRole name="WebRole1">
  <!-- Startup 要素にTaskを定義する -->
  <Startup>
    <!-- task1.cmdを管理者権限で同期実行 -->
    <Task commandLine="task1.cmd" executionContext="elevated"
          taskType="simple"/>
    <!-- task2.cmdを標準ユーザー権限で非同期実行 -->
    <Task commandLine="task2.cmd" executionContext="limited"
          taskType="background"/>
  </Startup>
  ....
</WebRole>

ランタイム

 サービス定義ファイル(ServiceDefinition.csdef)のRuntime要素のexecutionContext属性にelevatedを指定することで、RoleEntryPointクラス(※注意)を管理者権限で実行できます(リスト2)。これによって、OnStart/Run/OnStopメソッドで管理者権限の必要な操作を実行できます。

 管理権限には直接関係ありませんが、Environment要素で環境変数の定義も可能となっています。

 ASP.NETなどのWebアプリケーションは、IISのワーカープロセス上で実行されるため、管理者権限が付与されるわけではありません。

[リスト2]ランタイム権限の定義例
<WebRole name="WebRole1">
  <!-- Runtime要素のexecutionContext属性で実行権限を指定できます。-->
  <Runtime executionContext="elevated">
    <Environment>
      <!-- 環境変数も定義できます -->
      <Variable name="var1" value="statemachine"/>
      <Variable name="var2" value="yyamada"/>
    </Environment>
  </Runtime>
  ....
</WebRole>
※注意

 OnStart/Run/OnStopメソッドが定義されているロールインスタンスの起動クラスです。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

連載:PDC 2010で明らかになったWindows Azureの新機能

著者プロフィール

  • 山田 祥寛(ヤマダ ヨシヒロ)

    静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト」代表。 主な著書に「入門シリーズ(サーバサイドAjax/XM...

  • WINGSプロジェクト statemachine(statemachine)

    <WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂...

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5