

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Windows の機能のインストール: IIS
<a name="cookbooks-101-opsworks-install-software-feature"></a>

**重要**  
この AWS OpsWorks Stacks サービスは 2024 年 5 月 26 日にサポート終了となり、新規および既存のお客様の両方で無効になっています。できるだけ早くワークロードを他のソリューションに移行することを強くお勧めします。移行についてご質問がある場合は、[AWS re:Post](https://repost.aws/) または[AWS プレミアムサポート](https://aws.amazon.com/support)を通じて AWS サポート チームにお問い合わせください。

 Windows の機能は、.NET Framework や Internet Information Services (IIS) など、一連のオプションのシステムコンポーネントです。このトピックでは、一般的に使用される機能として Internet Information Services (IIS) をインストールするクックブックを実装する方法について説明します。

**注記**  
「[パッケージのインストール](cookbooks-101-opsworks-install-software-package.md)」では、MSI ファイルなどのインストーラパッケージに付属していて、インスタンスにダウンロードして実行する必要のあるソフトウェアをインストールする方法を示しています。[IIS クックブック](https://github.com/opscode-cookbooks/iis) 

「[Windows インスタンスでのレシピの実行](cookbooks-101-opsworks-opsworks-windows.md)」では、`powershell_script` リソースを使用して Windows の機能をインストールする方法を示しています。この例では、別のアプローチとして、Chef の [Windows クックブック](https://github.com/opscode-cookbooks/windows)の `windows_feature` リソースを使用しています。このクックブックには、[デプロイイメージサービスおよび管理](https://technet.microsoft.com/en-us/library/dd744256%28v=ws.10%29.aspx)を使用して Windows でさまざまなタスク (機能のインストールなど) を実行する一連のリソースが含まれています。

**注記**  
Chef には、IIS の管理に使用できる IIS のクックブックも用意されています。詳細については、「[IIS クックブック](https://github.com/opscode-cookbooks/iis)」を参照してください。

**クックブックをセットアップするには**

1. [windows cookbook GitHub リポジトリ](https://github.com/opscode-cookbooks/windows)に移動し、`windows` クックブックをダウンロードします。

   この例では、`windows` リポジトリを .zip ファイルとしてダウンロードしますが、必要に応じてリポジトリを複製できることも前提としています。

1. [chef\$1handler cookbook GitHub リポジトリ](https://github.com/opscode-cookbooks/chef_handler)に移動し、`chef-handler` クックブックをダウンロードします。

   `windows` クックブックは `chef_handler` に依存しており、直接使用することはありません。この例では、`chef_handler` リポジトリを .zip ファイルとしてダウンロードしますが、必要に応じてリポジトリを複製できることも前提としています。

1. `windows` と `chef_handler` という名前のディレクトリに `windows` および `chef_handler` クックブックを抽出します。

1. `install-iis` という名前のクックブックディレクトリ内にディレクトリを作成し、そのディレクトリに移動します。

1. `install-iis` に、次のコンテンツを含む `metadata.rb` ファイルを追加します。

   ```
   name "install-iis"
   version "0.1.0"
   
   depends "windows"
   ```

   `depends` ディレクティブにより、レシピで `windows` クックブックのリソースを使用できます。

1. `recipes` ディレクトリを `install-iis` に追加し、以下のレシピコードを保存した `default.rb` という名前のレシピファイルをそのディレクトリに追加します。

   ```
   %w{ IIS-WebServerRole IIS-WebServer }.each do |feature|
     windows_feature feature do
       action :install
     end
   end
   
   service 'w3svc' do
     action [:start, :enable]
   end
   ```

   レシピによって `windows` クックブックの `windows_feature` リソースが使用されて、以下のものがインストールされます。

   1. [IIS Web Server ロール](https://technet.microsoft.com/en-us/library/cc770634.aspx)

   1. [IIS Web Server](https://technet.microsoft.com/en-us/library/cc753433%28v=ws.10%29.aspx)

   その後、レシピによって [https://docs.chef.io/chef/resources.html#service](https://docs.chef.io/chef/resources.html#service) リソースが使用されて、IIS サービス (W3SVC) が有効になります。
**注記**  
利用可能な Windows の機能の完全なリストについては、[RDP を使用してインスタンスにログイン](workinginstances-rdp.md)し、コマンドプロンプトウィンドウを開き、以下のコマンドを実行してください。リストは非常に長くなっています。  

   ```
   dism /online /Get-Features
   ```

1. `install-iis`、`chef_handler`、および `windows` クックブックを含む `.zip` アーカイブを作成し、アーカイブを S3 バケットにアップロードします。アーカイブを公開し、後で使用できるようにその URL を記録します。この例では、アーカイブ名を `install-iis.zip` としています。詳細については、「[クックブックリポジトリ](workingcookbook-installingcustom-repo.md)」を参照してください。

   Amazon S3 バケットに配信されるコンテンツには、カスタマーコンテンツが含まれている場合があります。機密データの削除の詳細については、[「S3 バケットを空にする方法」](https://docs.aws.amazon.com/AmazonS3/latest/userguide/empty-bucket.html)または[「S3 バケットを削除する方法」](https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-bucket.html)を参照してください。

以下のようにこの例のスタックを作成します。既存の Windows スタックを使用することもできます。後で説明するように、クックブックを更新するだけです。

**Stack を作成する**

1. [OpsWorks スタックコンソール](https://console.aws.amazon.com/opsworks/)を開いて [**Add Stack**] を選択します。以下の設定を指定し、その他の設定はデフォルト値を受け入れて、[**Add Stack**] を選択します。
   + **Name** (名前) – InstallIIS
   + **リージョン** – 米国西部 (オレゴン)

     この例はいずれのリージョンでも動作しますが、チュートリアルでは米国西部 (オレゴン) を使用することをお勧めします。
   + **Default operating system** (デフォルトのオペレーティングシステム) – Microsoft Windows Server 2012 R2

1. [**Add a layer**] を選択し、以下の設定を使用してスタックに[カスタムレイヤーを追加](workinglayers-custom.md)します。
   + **Name** (名前) – IIS
   + **Short name** (短縮名) – iis

1. デフォルト設定で IISレイヤーに [24/7 インスタンスを追加](workinginstances-add.md)し、[起動](workinginstances-starting.md)します。

これで、クックブックをインストールし、レシピを実行できるようになりました。

**クックブックをインストールし、レシピを実行するには**

1. [カスタムクックブックを有効にするようにスタックを編集](workingcookbook-installingcustom-enable.md)し、以下の設定を指定します。
   + **Repository type** (リポジトリタイプ) – **S3 Archive** (アーカイブ)
   + **Repository URL** (リポジトリの URL) – 前の手順で記録したクックブックのアーカイブの URL

   その他の設定ではデフォルト値を受け入れ、[**Save**] を選択してスタック設定を更新します。

1. [[**Update Custom Cookbooks**] スタックコマンド](workingstacks-commands.md)を実行します。スタックのオンラインインスタンスにカスタムクックブックの最新バージョンがインストールされます。以前のバージョンのクックブックがある場合は、このコマンドによって上書きされます。

1. カスタムクックブックの更新が終了したら、**実行するレシピ**を **install-iis::default** に設定して**レシピの実行**スタックコマンドを実行することで、レシピを実行します。このコマンドによって Chef 実行が開始され、指定したレシピが実行されます。
**注記**  
この例では、便宜上 **Execute Recipes** を使用していますが、通常 OpsWorks 、適切なライフサイクルイベントに割り当てることで、 スタックで[レシピを自動的に実行](workingcookbook-assigningcustom.md)します。このようなレシピは、イベントを手動でトリガーすることによって実行できます。Setup および Configure イベントをトリガーするにはスタックコマンドを使用し、Deploy および Undeploy イベントをトリガーするには[デプロイコマンド](workingapps-deploying.md)を使用できます。

1. インストールを確認するには、[RDP を使用してインスタンスに接続](workinginstances-rdp.md)し、Windows Explorer を開きます。ファイルシステムに `C:\inetpub` ディレクトリがあることを確認できます。[Administrative Tools Control Panel] アプリケーションでサービスのリストを確認する場合、IIS は末尾近くで見つかります。ただし、IIS ではなく World Wide Web Publishing Service という名前になります。