ステップ 2: Amazon Linux または Red Hat エンタープライズ Linux Amazon EC2 インスタンスにデプロイされるようにソースコンテンツを設定します。 - AWS CodeDeploy

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

ステップ 2: Amazon Linux または Red Hat エンタープライズ Linux Amazon EC2 インスタンスにデプロイされるようにソースコンテンツを設定します。

ここでは、アプリケーションのソースコンテンツを設定し、インスタンスにデプロイできるものを用意します。

ソースコードの取得

このチュートリアルでは、開発マシンからターゲット Amazon EC2 インスタンスに WordPress コンテンツ発行プラットフォームをデプロイします。WordPress のソースコードを入手するには、組み込みのコマンドラインの呼び出しを使用できます。または、開発マシンに Git をインストールしている場合は、代わりにそれを使用します。

これらのステップでは、WordPress ソースコードのコピーを開発マシンの /tmp ディレクトリにダウンロードすることを前提としています (任意のディレクトリを選択できますが、ステップで /tmp が指定されている場合は、その場所に必ず置き換えてください)。

次の 2 つのオプションのいずれかを選択して、開発マシンに WordPress ソースファイルをコピーします。最初のオプションでは、組み込みのコマンドラインの呼び出しを使用します。2 番目のオプションでは、Git を使用します。

WordPress のソースコード (組み込みのコマンドライン呼び出し) のコピーを入手するには

  1. wget コマンドを呼び出して、WordPress のソースコードのコピーを .zip ファイル形式で現在のディレクトリにダウンロードします。

    wget https://github.com/WordPress/WordPress/archive/master.zip
  2. unzipmkdircprm コマンドを呼び出して、以下を実行します。

    • master.zip ファイルを /tmp/WordPress_Temp ディレクトリ (フォルダ) に解凍します。

    • 解凍された内容を、/tmp/WordPress 宛先フォルダにコピーします。

    • 一時的な /tmp/WordPress_Temp フォルダと master ファイルを削除します。

    コマンドを一度に 1 つずつ実行します。

    unzip master -d /tmp/WordPress_Temp
    mkdir -p /tmp/WordPress
    cp -paf /tmp/WordPress_Temp/WordPress-master/* /tmp/WordPress
    rm -rf /tmp/WordPress_Temp
    rm -f master

    これにより、/tmp/WordPress フォルダに WordPress ソースコードファイルのクリーンなセットが配置されます。

WordPress ソースコード (Git) のコピーを入手するには

  1. 開発マシンで Git をダウンロードしてインストールします。

  2. /tmp/WordPress フォルダで git init コマンドを呼び出します。

  3. git clone コマンドを呼び出してパブリック WordPress レポジトリのクローンを作成し、その独自のコピーを /tmp/WordPress 宛先フォルダで作成します。

    git clone https://github.com/WordPress/WordPress.git /tmp/WordPress

    これにより、/tmp/WordPress フォルダに WordPress ソースコードファイルのクリーンなセットが配置されます。

アプリケーションを実行するスクリプトを作成する

次に、ディレクトリでフォルダとスクリプトを作成します。CodeDeploy はこれらのスクリプトを使用して、ターゲット Amazon EC2 インスタンスでアプリケーションリビジョンをセットアップしデプロイします。スクリプトの作成には任意のテキストエディタを使用できます。

  1. WordPress ソースコードのコピーでスクリプトディレクトリを作成します。

    mkdir -p /tmp/WordPress/scripts
  2. install_dependencies.sh/tmp/WordPress/scripts ファイルを作成します。ファイルに以下の行を追加します。この install_dependencies.sh スクリプトは Apache、MySQL、および PHP をインストールします。また、PHP に MySQL のサポートを追加します。

    #!/bin/bash sudo amazon-linux-extras install php7.4 sudo yum install -y httpd mariadb-server php
  3. /tmp/WordPress/scriptsstart_server.sh ファイルを作成します。ファイルに以下の行を追加します。この start_server.sh スクリプトは Apache および MySQL を起動します。

    #!/bin/bash systemctl start mariadb.service systemctl start httpd.service systemctl start php-fpm.service
  4. /tmp/WordPress/scriptsstop_server.sh ファイルを作成します。ファイルに以下の行を追加します。この stop_server.sh スクリプトは Apache および MySQL を停止します。

    #!/bin/bash isExistApp=pgrep httpd if [[ -n $isExistApp ]]; then systemctl stop httpd.service fi isExistApp=pgrep mysqld if [[ -n $isExistApp ]]; then systemctl stop mariadb.service fi isExistApp=pgrep php-fpm if [[ -n $isExistApp ]]; then systemctl stop php-fpm.service fi
  5. /tmp/WordPress/scriptscreate_test_db.sh ファイルを作成します。ファイルに以下の行を追加します。この create_test_db.sh スクリプトは、MySQL を使用して、WordPress で使用する test データベースを作成します。

    #!/bin/bash mysql -uroot <<CREATE_TEST_DB CREATE DATABASE IF NOT EXISTS test; CREATE_TEST_DB
  6. 最後に、/tmp/WordPress/scriptschange_permissions.sh スクリプトファイルを作成します。これは Apache のフォルダのアクセス権限を変更するために使用されます。

    重要

    このスクリプトにより、誰でも書き込めるように、/tmp/WordPress フォルダのアクセス権限が更新されました。これは、「ステップ 5: WordPress アプリケーションを更新して再デプロイする」で WordPress がそのデータベースに書き込みを行うために必要です。WordPress アプリケーションがセットアップされたら、次のコマンドを実行して、アクセス権限をよりセキュアな設定に更新します。

    chmod -R 755 /var/www/html/WordPress
    #!/bin/bash chmod -R 777 /var/www/html/WordPress
  7. すべてのスクリプトに実行可能権限を付与します。コマンドラインで、次のように入力します。

    chmod +x /tmp/WordPress/scripts/*

アプリケーション仕様ファイルの追加

次に、アプリケーション仕様ファイル (AppSpec ファイル) を追加し、YAMLCodeDeploy によって使用されるフォーマットされたファイル:

  • アプリケーションリビジョンのソースファイルを、ターゲット Amazon EC2 インスタンスの宛先にマッピングする。

  • デプロイされたファイルのカスタムアクセス権限を指定する。

  • デプロイ中にターゲット Amazon EC2 インスタンスで実行するスクリプトを指定する。

AppSpec ファイルの名前を指定する必要があります。appspec.yml。アプリケーションソースコードのルートディレクトリに配置する必要があります。このチュートリアルでは、ルートディレクトリは /tmp/WordPress です。

テキストエディタで appspec.yml という名前のファイルを作成します。このファイルに次の行を追加します。

version: 0.0 os: linux files: - source: / destination: /var/www/html/WordPress hooks: BeforeInstall: - location: scripts/install_dependencies.sh timeout: 300 runas: root AfterInstall: - location: scripts/change_permissions.sh timeout: 300 runas: root ApplicationStart: - location: scripts/start_server.sh - location: scripts/create_test_db.sh timeout: 300 runas: root ApplicationStop: - location: scripts/stop_server.sh timeout: 300 runas: root

CodeDeploy はこのAppSpec ファイルを使用して、/tmp/WordPress開発マシン上のフォルダを/var/www/html/WordPressターゲット Amazon EC2 インスタンスのフォルダ。デプロイ中、CodeDeploy は指定されたスクリプトを次のように実行します。root/var/www/html/WordPress/scriptsデプロイライフサイクル (など) 中の指定されたイベントで、ターゲット Amazon EC2 インスタンスのフォルダBeforeInstallそしてAfterInstall。これらのスクリプトのいずれかで実行に 300 秒 (5 分) 以上かかる場合、CodeDeploy はデプロイを停止し、デプロイを失敗としてマークします。

これらの設定の詳細については、「CodeDeploy AppSpec ファイルリファレンス」を参照してください。

重要

このファイルの項目間のスペースの場所と数は重要です。間隔が正しくない場合、CodeDeploy はデバッグが困難な可能性のあるエラーを発生させます。詳細については、AppSpec ファイル間隔を参照してください。