ステップ 2: Amazon Linux または Red Hat Enterprise Linux Amazon EC2インスタンスにデプロイするソースコンテンツを設定する - AWS CodeDeploy

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

ステップ 2: Amazon Linux または Red Hat Enterprise Linux Amazon EC2インスタンスにデプロイするソースコンテンツを設定する

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

ソースコードの入手

このチュートリアルでは、 WordPress コンテンツ発行プラットフォームを開発マシンからターゲット Amazon EC2インスタンスにデプロイします。 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、My SQL、および をインストールしますPHP。また、 に MySQL Support も追加されますPHP。

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

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

    #!/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. create_test_db.sh/tmp/WordPress/scripts ファイルを作成します。ファイルに以下の行を追加します。この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 フォルダのアクセス権限が更新されました。これは、 が 中にデータベースに WordPress 書き込むために必要ですステップ 5: 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 ファイル) を追加します。これは、 が使用する YAML形式のファイルで、次の CodeDeploy 操作を行います。

  • アプリケーションリビジョンのソースファイルをターゲット 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フォルダ内のすべてのファイルをターゲット Amazon EC2インスタンス上の/var/www/html/WordPressフォルダにコピーします。デプロイ中、 は、デプロイライフサイクル中に指定されたイベントで、ターゲット Amazon EC2インスタンスの /var/www/html/WordPress/scriptsフォルダrootにある として、 BeforeInstallや など、指定されたスクリプト CodeDeploy を実行しますAfterInstall。これらのスクリプトのいずれかの実行に 300 秒 (5 分) 以上かかる場合、 はデプロイ CodeDeploy を停止し、デプロイを失敗としてマークします。

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

重要

このファイルの項目間のスペースの場所と数は重要です。間隔が正しくない場合、 はデバッグが難しいエラーを CodeDeploy レイズします。詳細については、「AppSpec ファイル間隔」を参照してください。