

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

# チュートリアル: CodeDeploy (Windows サーバー、Ubuntu サーバー、または Red Hat エンタープライズ Linux) を使用してオンプレミスインスタンスにアプリケーションをデプロイします。
<a name="tutorials-on-premises-instance"></a>

このチュートリアルでは、Windows サーバー、Ubuntu サーバー、または Red Hat エンタープライズ Linux (RHEL) を実行する単一のオンプレミスインスタンス (つまりは、Amazon EC2 インスタンスではない物理デバイス) へのサンプルアプリケーションリビジョンのデプロイをガイドすることで、CodeDeploy の経験を得ることができます。オンプレミスインスタンスについての情報、および CodeDeploy の使用方法については、[CodeDeploy 用のオンプレミスインスタンスを用いての作業](instances-on-premises.md) を参照してください。

お探しのものではありませんか。
+ Amazon Linux または RHEL を実行する Amazon EC2 インスタンスへのデプロイの演習を行うには、[チュートリアル: Amazon EC2 インスタンスに WordPress をデプロイする (Amazon Linux または Red Hat エンタープライズ Linux および Linux、macOS、または Unix)](tutorials-wordpress.md) を参照してください。
+ Windows サーバーを実行する Amazon EC2 インスタンスへのデプロイの演習を行うには、[チュートリアル: 「Hello, World\$1」 CodeDeploy を使用したアプリケーション (Windows Server)](tutorials-windows.md) を参照してください。

**Topics**
+ [前提条件](tutorials-on-premises-instance-prerequisites.md)
+ [ステップ 1: オンプレミスインスタンスを設定する](tutorials-on-premises-instance-1-configure-instance.md)
+ [ステップ 2: サンプルのアプリケーションリビジョンを作成する](tutorials-on-premises-instance-2-create-sample-revision.md)
+ [ステップ 3: アプリケーションリビジョンをバンドルし、Amazon S3 にアップロードする](tutorials-on-premises-instance-3-bundle-sample-revision.md)
+ [ステップ 4: アプリケーションリビジョンをデプロイする](tutorials-on-premises-instance-4-deploy-sample-revision.md)
+ [ステップ 5: デプロイを確認する](tutorials-on-premises-instance-5-verify-deployment.md)
+ [ステップ 6: リソースをクリーンアップする](tutorials-on-premises-instance-6-clean-up-resources.md)

# 前提条件
<a name="tutorials-on-premises-instance-prerequisites"></a>

このチュートリアルを開始する前に、ユーザーの設定[CodeDeploy の開始方法](getting-started-codedeploy.md)、 のインストールまたはアップグレード、サービスロールの作成など AWS CLI、 の前提条件を満たす必要があります。前提条件で説明したように、IAM インスタンスプロファイルを作成する必要はありません。オンプレミスインスタンスは、IAM インスタンスプロファイルを使用しません。

オンプレミスインスタンスとして設定する物理デバイスでは、「[CodeDeploy エージェントで対応するオペレーティングシステム](codedeploy-agent.md#codedeploy-agent-supported-operating-systems)」に示したいずれかのオペレーティングシステムを実行している必要があります。

# ステップ 1: オンプレミスインスタンスを設定する
<a name="tutorials-on-premises-instance-1-configure-instance"></a>

オンプレミスインスタンスにデプロイする前に、設定を行う必要があります。「[CodeDeploy 用のオンプレミスインスタンスを用いての作業](instances-on-premises.md)」の指示に従ってから、このページに戻ります。

## CodeDeploy エージェントをインストールします。
<a name="tutorials-on-premises-instance-1-configure-instance-agent"></a>

オンプレミスインスタンスを設定したら、[CodeDeploy エージェントのインストール](https://docs.aws.amazon.com/codedeploy/latest/userguide/codedeploy-agent-operations-install.html) のオンプレミスインスタンスのステップに従い、このページに戻ります。

# ステップ 2: サンプルのアプリケーションリビジョンを作成する
<a name="tutorials-on-premises-instance-2-create-sample-revision"></a>

このステップでは、オンプレミスインスタンスにデプロイするサンプルのアプリケーションリビジョンを作成します。

オンプレミスインスタンス上に既にインストールされている、または組織のポリシーによってインストールが許可されているソフトウェアと機能を知るのは難しいため、オンプレミスインスタンスの場所にテキストファイルを書き込むために、ここで提供するサンプルアプリケーションリビジョンでは、バッチスクリプト (Windows Server の場合) またはシェルスクリプト (Ubuntu Server および RHEL の場合) を使用します。**Install**、 **AfterInstall**、 **ApplicationStart** および **ValidateService** を含む、複数の CodeDeploy デプロイライフサイクルイベントごとに 1 つのファイルが書き込まれます。**BeforeInstall** デプロイライフサイクルイベント中にスクリプトが実行され、このサンプルの前のデプロイ中に書き込まれた古いファイルを削除し、新しいファイルを書き込むオンプレミスインスタンス上に場所を作成します。

**注記**  
以下のいずれも該当しない場合、このサンプルのアプリケーションリビジョンはデプロイに失敗することがあります。  
オンプレミスインスタンスで CodeDeploy エージェントを起動するユーザーには、スクリプトを実行する権限がありません。
ユーザーに、スクリプトにリストされている場所でフォルダを作成または削除する権限がない。
ユーザーに、スクリプトにリストされている場所でテキストファイルを作成する権限がない。

**注記**  
Windows Server インスタンスを設定し、別のサンプルをデプロイする場合は、[ステップ 2: Windows Server の Amazon EC2 instance インスタンスにデプロイするソースコンテンツを設定する](tutorials-windows-configure-content.md) チュートリアルの「[チュートリアル: 「Hello, World\$1」 CodeDeploy を使用したアプリケーション (Windows Server)](tutorials-windows.md)」のサンプルを使用することをお勧めします。  
RHEL インスタンスを設定し、別のサンプルをデプロイする場合は、[ステップ 2: Amazon Linux または Red Hat エンタープライズ Linux Amazon EC2 インスタンスにデプロイされるようにソースコンテンツを設定する](tutorials-wordpress-configure-content.md) のチュートリアルの [チュートリアル: Amazon EC2 インスタンスに WordPress をデプロイする (Amazon Linux または Red Hat エンタープライズ Linux および Linux、macOS、または Unix)](tutorials-wordpress.md) のサンプルを使用することをお勧めします。  
現在、Ubuntu サーバー用の代替サンプルはありません。

1. 開発マシンで、サンプルのアプリケーションリビジョンのファイルを保存する、`CodeDeployDemo-OnPrem` という名前のサブディレクトリ (サブフォルダ) を作成し、そのサブフォルダに切り替えます。この例では、`c:\temp` のフォルダを Windows サーバーのルートフォルダとして使用するか、`/tmp` のフォルダを Ubuntu サーバーおよび RHEL のルートフォルダとして使用することを前提としています。別のフォルダを使用する場合は、このチュートリアル全体でそのフォルダに置き換えてください。

   Windows の場合:

   ```
   mkdir c:\temp\CodeDeployDemo-OnPrem
   cd c:\temp\CodeDeployDemo-OnPrem
   ```

   Linux、macOS、Unix の場合:

   ```
   mkdir /tmp/CodeDeployDemo-OnPrem
   cd /tmp/CodeDeployDemo-OnPrem
   ```

1. `CodeDeployDemo-OnPrem` サブフォルダのルートで、テキストエディタを使用して `appspec.yml` および `install.txt` という 2 つのファイルを作成します。

   Windows サーバーのための `appspec.yml`

   ```
   version: 0.0
   os: windows
   files:
     - source: .\install.txt
       destination: c:\temp\CodeDeployExample
   hooks:
     BeforeInstall:
       - location: .\scripts\before-install.bat
         timeout: 900
     AfterInstall:
       - location: .\scripts\after-install.bat     
         timeout: 900
     ApplicationStart:
       - location: .\scripts\application-start.bat  
         timeout: 900
     ValidateService:
       - location: .\scripts\validate-service.bat    
         timeout: 900
   ```

   Ubuntu ServerとRHELのための `appspec.yml`：

   ```
   version: 0.0
   os: linux
   files:
     - source: ./install.txt
       destination: /tmp/CodeDeployExample
   hooks:
     BeforeInstall:
       - location: ./scripts/before-install.sh
         timeout: 900
     AfterInstall:
       - location: ./scripts/after-install.sh
         timeout: 900
     ApplicationStart:
       - location: ./scripts/application-start.sh
         timeout: 900
     ValidateService:
       - location: ./scripts/validate-service.sh
         timeout: 900
   ```

   AppSpec ファイルの詳細については、「[CodeDeploy 用のアプリケーション仕様ファイルをリビジョンに追加](application-revisions-appspec-file.md)」および「[CodeDeploy AppSpec ファイルのリファレンス](reference-appspec-file.md)」を参照してください。

   `install.txt`:

   ```
   The Install deployment lifecycle event successfully completed.
   ```

1. `CodeDeployDemo-OnPrem` サブフォルダのルートの下に、`scripts` サブフォルダを作成し、そのサブフォルダに切り替えます。

   Windows の場合:

   ```
   mkdir c:\temp\CodeDeployDemo-OnPrem\scripts
   cd c:\temp\CodeDeployDemo-OnPrem\scripts
   ```

   Linux、macOS、Unix の場合:

   ```
   mkdir -p /tmp/CodeDeployDemo-OnPrem/scripts
   cd /tmp/CodeDeployDemo-OnPrem/scripts
   ```

1. `scripts` のサブフォルダのルートで、テキストエディタを使用して、 Windows サーバーの場合は `before-install.bat`、`after-install.bat`、`application-start.bat`、 `validate-service.bat`、あるいは Ubuntu サーバーおよび RHEL の場合は、`before-install.sh`、`after-install.sh`、`application-start.sh`、`validate-service.sh` という名前の 4 つのファイルを作成します。

   Windows サーバーの場合

   `before-install.bat`:

   ```
   set FOLDER=%HOMEDRIVE%\temp\CodeDeployExample
   
   if exist %FOLDER% (
     rd /s /q "%FOLDER%"
   )
   
   mkdir %FOLDER%
   ```

   `after-install.bat`:

   ```
   cd %HOMEDRIVE%\temp\CodeDeployExample
   
   echo The AfterInstall deployment lifecycle event successfully completed. > after-install.txt
   ```

   `application-start.bat`:

   ```
   cd %HOMEDRIVE%\temp\CodeDeployExample
   
   echo The ApplicationStart deployment lifecycle event successfully completed. > application-start.txt
   ```

   `validate-service.bat`:

   ```
   cd %HOMEDRIVE%\temp\CodeDeployExample
   
   echo The ValidateService deployment lifecycle event successfully completed. > validate-service.txt
   ```

   Ubuntu Server と RHEL の場合:

   `before-install.sh`:

   ```
   #!/bin/bash
   export FOLDER=/tmp/CodeDeployExample
   
   if [ -d $FOLDER ]
   then
    rm -rf $FOLDER
   fi
   
   mkdir -p $FOLDER
   ```

   `after-install.sh`:

   ```
   #!/bin/bash
   cd /tmp/CodeDeployExample
   
   echo "The AfterInstall deployment lifecycle event successfully completed." > after-install.txt
   ```

   `application-start.sh`:

   ```
   #!/bin/bash
   cd /tmp/CodeDeployExample
   
   echo "The ApplicationStart deployment lifecycle event successfully completed." > application-start.txt
   ```

   `validate-service.sh`:

   ```
   #!/bin/bash
   cd /tmp/CodeDeployExample
   
   echo "The ValidateService deployment lifecycle event successfully completed." > validate-service.txt
   
   unset FOLDER
   ```

1. Ubuntu サーバーおよび RHEL の場合のみ、4 つのシェルスクリプトに実行権限があることを確認します。

   ```
   chmod +x ./scripts/*
   ```

# ステップ 3: アプリケーションリビジョンをバンドルし、Amazon S3 にアップロードする
<a name="tutorials-on-premises-instance-3-bundle-sample-revision"></a>

アプリケーションリビジョンをデプロイする前に、ファイルをバンドルし、ファイルバンドルを Amazon S3 バケットにアップロードしておく必要があります。「[CodeDeploy でアプリケーションを作成する](applications-create.md)」および「[Amazon S3 に CodeDeploy のリビジョンをプッシュする (EC2/オンプレミスのデプロイのみ)](application-revisions-push.md)」の手順に従います。(アプリケーションとデプロイグループには任意の名前を付けることができますが、アプリケーション名に「`CodeDeploy-OnPrem-App`」、デプロイグループ名に「`CodeDeploy-OnPrem-DG`」を使用することをお勧めします)。これらの手順を実行したら、このページに戻ります。

**注記**  
または、GitHub リポジトリにファイルバンドルをアップロードし、そこからデプロイできます。詳細については、「[GitHub と CodeDeploy との統合](integrations-partners-github.md)」を参照してください。

# ステップ 4: アプリケーションリビジョンをデプロイする
<a name="tutorials-on-premises-instance-4-deploy-sample-revision"></a>

アプリケーションリビジョンを Amazon S3 バケットにアップロードしたら、オンプレミスインスタンスへのデプロイを試します。「[CodeDeploy でデプロイを作成する](deployments-create.md)」の指示に従ってから、このページに戻ります。

# ステップ 5: デプロイを確認する
<a name="tutorials-on-premises-instance-5-verify-deployment"></a>

デプロイが成功したことを確認するには、「[CodeDeploy デプロイの詳細を表示する](deployments-view-details.md)」の手順に従い、このページに戻ります。

デプロイが成功している場合は、`c:\temp\CodeDeployExample` のフォルダ (Windows の場合) または `/tmp/CodeDeployExample` (Ubuntu サーバーおよび RHEL の場合) に、 4 つのテキストフォルダが見つかります。

デプロイが失敗した場合は、「[CodeDeploy を用いてインスタンスの詳細の表示](instances-view-details.md)」および「[インスタンスの問題のトラブルシューティング](troubleshooting-ec2-instances.md)」のトラブルシューティングステップに従ってください。必要な修正を行い、アプリケーションリビジョンを再バンドルしてアップロードしてから、デプロイを再試行します。

# ステップ 6: リソースをクリーンアップする
<a name="tutorials-on-premises-instance-6-clean-up-resources"></a>

このチュートリアル用に作成したリソースの料金が継続的に発生しないようにするため、それ以上使用しない場合は Amazon S3 バケットを削除します。CodeDeploy とオンプレミスインスタンス中のアプリケーションおよびデプロイグループレコードのような関連リソースを、クリーンアップすることもできます。

 AWS CLI または CodeDeploy コンソールと Amazon S3 コンソールの組み合わせと を使用して、リソース AWS CLI をクリーンアップできます。

## リソースのクリーンアップ (CLI)
<a name="tutorials-on-premises-instance-6-clean-up-resources-cli"></a>

**Amazon S3 バケットを削除するには**
+ バケット (例: `--recursive`) に対して、`amzn-s3-demo-bucket` のスイッチを用いて [rm](https://docs.aws.amazon.com/cli/latest/reference/s3/rm.html) コマンドを呼び出します。バケットとバケット内のすべてのオブジェクトが削除されます。

  ```
  aws s3 rm s3://your-bucket-name --recursive --region region
  ```

**CodeDeploy 中のアプリケーションとデプロイグループレコードを削除するには**
+ アプリケーションに対して [delete-application](https://docs.aws.amazon.com/cli/latest/reference/deploy/delete-application.html) コマンドを呼び出します (例: `CodeDeploy-OnPrem-App`)。デプロイおよびデプロイグループのレコードが削除されます。

  ```
  aws deploy delete-application --application-name your-application-name
  ```<a name="tutorials-on-premises-instance-6-clean-up-resources-deregister-cli"></a>

**オンプレミスインスタンスを登録解除し、IAM ユーザーを削除するには**
+ オンプレミスインスタンスとリージョンに対して [deregister](https://docs.aws.amazon.com/cli/latest/reference/deploy/deregister.html) コマンドを呼び出します。

  ```
  aws deploy deregister --instance-name your-instance-name --delete-iam-user --region your-region
  ```
**注記**  
このオンプレミスインスタンスに関連付けられた IAM ユーザーを削除しない場合は、代わりに `--no-delete-iam-user` のオプションを使用します。

**CodeDeploy エージェントをアンインストールし、オンプレミスインスタンスから設定ファイルを削除するには**
+ オンプレミスインスタンスから [uninstall](https://docs.aws.amazon.com/cli/latest/reference/deploy/uninstall.html) コマンドを呼び出します。

  ```
  aws deploy uninstall
  ```

これで、このチュートリアルで使用したリソースをクリーンアップするすべてのステップが完了しました。

## リソースのクリーンアップ (コンソール)
<a name="tutorials-on-premises-instance-6-clean-up-resources-console"></a>

**Amazon S3 バケットを削除するには**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) で Amazon S3 コンソールを開きます。

1. 削除するバケットの横にあるアイコン (例: `amzn-s3-demo-bucket`) を選択します。ただし、バケット自体を選択しないでください。

1. **[アクション]**、**[削除]** の順に選択します。

1. バケットを削除するように求められたら、[**OK**] を選択します。

**CodeDeploy 中のアプリケーションとデプロイグループレコードを削除するには**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/codedeploy](https://console.aws.amazon.com/codedeploy) で CodeDeploy コンソールを開きます。
**注記**  
「[CodeDeploy の開始方法](getting-started-codedeploy.md)」で設定したのと同じユーザーでサインインします。

1. ナビゲーションペインで、[**アプリケーション**] を選択します。

1. 削除するアプリケーションの名前 (`CodeDeploy-OnPrem-App` など) を選択し、[**アプリケーションの削除**] を選択します。

1. プロンプトが表示されたら、アプリケーションの名前を入力して削除することを確定し、[**削除**] を選択します。

 AWS CodeDeploy コンソールを使用してオンプレミスインスタンスの登録を解除したり、CodeDeploy エージェントをアンインストールしたりすることはできません。「[オンプレミスインスタンスを登録解除し、IAM ユーザーを削除するには](#tutorials-on-premises-instance-6-clean-up-resources-deregister-cli)」の手順に従います。