アプリケーションの作成、アップロード、デプロイ - AMS アドバンストオンボーディングガイド

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

アプリケーションの作成、アップロード、デプロイ

まず、WordPress アプリケーションバンドルを作成し、CodeDeploy CT を使用してアプリケーションを作成してデプロイします。 CTs

  1. WordPress をダウンロードし、ファイルを抽出して ./scripts ディレクトリを作成します。

    Linux コマンド:

    wget https://github.com/WordPress/WordPress/archive/master.zip

    Windows: ブラウザウィンドウhttps://github.com/WordPress/WordPress/archive/master.zipに貼り付け、zip ファイルをダウンロードします。

    パッケージをアセンブルする一時ディレクトリを作成します。

    Linux:

    mkdir /tmp/WordPress

    Windows: WordPress」ディレクトリを作成します。後でディレクトリパスを使用します。

  2. WordPress ソースをWordPress」ディレクトリに抽出し、./scripts ディレクトリを作成します。

    Linux:

    unzip master.zip -d /tmp/WordPress_Temp cp -paf /tmp/WordPress_Temp/WordPress-master/* /tmp/WordPress rm -rf /tmp/WordPress_Temp rm -f master cd /tmp/WordPress mkdir scripts

    Windows: 作成したWordPress」ディレクトリに移動し、そこに「scripts」ディレクトリを作成します。

    Windows 環境の場合は、スクリプトファイルのブレークタイプを Unix (LF) に設定してください。Notepad ++ では、これはウィンドウの右下にあるオプションです。

  3. WordPress ディレクトリに CodeDeploy appspec.yml ファイルを作成します (例をコピーする場合は、インデントと各スペース数を確認します)。重要: WordPress ファイル (この場合は WordPress ディレクトリ) を目的の宛先 (/var/www/html/WordPress) にコピーするための WordPress 「ソース」パスが正しいことを確認します。この例では、appspec.yml ファイルは WordPress ファイルを含む ディレクトリにあるため、「/」のみが必要です。また、Auto Scaling グループに RHEL AMI を使用した場合でも、「os: linux」行はそのままにしておきます。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/config_wordpress.sh timeout: 300 runas: root ApplicationStart: - location: scripts/start_server.sh timeout: 300 runas: root ApplicationStop: - location: scripts/stop_server.sh timeout: 300 runas: root
  4. WordPress ./scripts ディレクトリに bash ファイルスクリプトを作成します。

    まず、次の内容config_wordpress.shで を作成します (必要に応じて、wp-config.php ファイルを直接編集できます)。

    注記

    DBName を HA スタック RFC で指定された値 (例: ) に置き換えますwordpress

    DB_MasterUsername を HA スタック RFC で指定されたMasterUsername値 ( などadmin) に置き換えます。

    DB_MasterUserPassword を HA スタック RFC で指定されたMasterUserPassword値 (例: ) に置き換えますp4ssw0rd

    DB_ENDPOINT を HA スタック RFC の実行出力のエンドポイント DNS 名 (例: ) に置き換えますsrt1cz23n45sfg.clgvd67uvydk.us-east-1.rds.amazonaws.com。これは、GetRfc オペレーション (CLI: get-rfc --rfc-id RFC_ID) または以前に送信した HA スタック RFC の AMS コンソール RFC の詳細ページで確認できます。

    #!/bin/bash chmod -R 755 /var/www/html/WordPress cp /var/www/html/WordPress/wp-config-sample.php /var/www/html/WordPress/wp-config.php cd /var/www/html/WordPress sed -i "s/database_name_here/DBName/g" wp-config.php sed -i "s/username_here/DB_MasterUsername/g" wp-config.php sed -i "s/password_here/DB_MasterUserPassword/g" wp-config.php sed -i "s/localhost/DB_ENDPOINT/g" wp-config.php
  5. 同じディレクトリに、次の内容install_dependencies.shで を作成します。

    #!/bin/bash yum install -y php yum install -y php-mysql yum install -y mysql service httpd restart
    注記

    HTTPS は、ヘルスチェックを最初から機能させるために、起動時にユーザーデータの一部としてインストールされます。

  6. 同じディレクトリに、次の内容start_server.shで を作成します。

    • Amazon Linux インスタンスの場合は、以下を使用します。

      #!/bin/bash service httpd start
    • RHEL インスタンスの場合は、以下を使用します (追加のコマンドは、SELINUX が WordPress を受け入れることを許可するポリシーです)。

      #!/bin/bash setsebool -P httpd_can_network_connect_db 1 setsebool -P httpd_can_network_connect 1 chcon -t httpd_sys_rw_content_t /var/www/html/WordPress/wp-content -R restorecon -Rv /var/www/html service httpd start
  7. 同じディレクトリに、次の内容stop_server.shで を作成します。

    #!/bin/bash service httpd stop
  8. zip バンドルを作成します。

    Linux:

    $ cd /tmp/WordPress $ zip -r wordpress.zip .

    Windows: WordPress」ディレクトリに移動し、すべてのファイルを選択して zip ファイルを作成します。必ず wordpress.zip という名前を付けます。

  1. アプリケーションバンドルを S3 バケットにアップロードします。

    スタックのデプロイを続行するには、バンドルを設定する必要があります。

    作成した S3 バケットインスタンスに自動的にアクセスできます。踏み台または S3 コンソールからアクセスし、WordPress バンドルをdrag-and-dropでアップロードするか、zip ファイルを参照して選択できます。

    シェルウィンドウで次のコマンドを使用することもできます。zip ファイルへの正しいパスがあることを確認してください。

    aws s3 cp wordpress.zip s3://BUCKET_NAME/
  2. WordPress アプリケーションバンドルをデプロイします。

    開始する前に次のデータを収集すると、デプロイがより速くなります。

    必須データ:

    • VPC-ID: この値により、S3 バケットの場所が決まります。以前に使用したものと同じ VPC ID を使用します。

    • CodeDeployApplicationName および CodeDeployApplicationName: HA 2-Tierスタック RFC で使用したApplicationName値は、CodeDeployApplicationName と CodeDeployDeploymentGroupName を設定します。この例では「WordPress」を使用していますが、別の値を使用した可能性があります。

    • S3Location: にはS3BucketBucketName以前に作成した を使用します。S3BundleTypeS3Keyは、S3 ストアに配置したバンドルのものです。

    1. CodeDeploy アプリケーションデプロイ CT の実行パラメータ JSON スキーマを DeployCDAppParams.json.

      aws amscm get-change-type-version --change-type-id "ct-2edc3sd1sqmrb" --query "ChangeTypeVersion.ExecutionInputSchema" --output text > DeployCDAppParams.json
    2. スキーマを次のように変更し、 として保存します。コンテンツを削除して置き換えることができます。

      { "Description": "DeployWPCDApp", "VpcId": "VPC_ID", "Name": "WordPressCDAppDeploy", "TimeoutInMinutes": 60, "Parameters": { "CodeDeployApplicationName": "WordPress", "CodeDeployDeploymentGroupName": "WordPress", "CodeDeployIgnoreApplicationStopFailures": false, "CodeDeployRevision": { "RevisionType": "S3", "S3Location": { "S3Bucket": "BUCKET_NAME", "S3BundleType": "zip", "S3Key": "wordpress.zip" } } } }
    3. CreateRfc の JSON テンプレートを、現在のフォルダの DeployCDAppRfc.json:

      aws amscm create-rfc --generate-cli-skeleton > DeployCDAppRfc.json
    4. DeployCDAppRfc.json ファイルを変更して保存し、コンテンツを削除して置き換えることができます。RequestedStartTimeRequestedEndTimeはオプションになりました。これらを除外すると、承認されるとすぐに実行される ASAP RFC が作成されます (通常は自動的に実行されます)。スケジュールされた RFC を送信するには、これらの値を追加します。

      { "ChangeTypeVersion": "1.0", "ChangeTypeId": "ct-2edc3sd1sqmrb", "Title": "CD-Deploy-For-WP-RFC" }
    5. DeployCDAppRfc ファイルと DeployCDAppParams 実行パラメータファイルを指定して、RFC を作成します。

      aws amscm create-rfc --cli-input-json file://DeployCDAppRfc.json --execution-parameters file://DeployCDAppParams.json

      レスポンスで新しい RFC の RfcId を受け取ります。後続のステップの ID を保存します。

    6. RFC を送信します。

      aws amscm submit-rfc --rfc-id RFC_ID

      RFC が成功した場合、出力は受信されません。

    7. RFC ステータスを確認するには、 を実行します。

      aws amscm get-rfc --rfc-id RFC_ID