AWS Cloud9
ユーザーガイド

AWS Cloud9 の WordPress サンプル

このサンプルでは、AWS Cloud9 開発環境 内で WordPress を実行することができます。

このサンプルを作成すると、AWS アカウントに課金される場合があります。このような請求には、Amazon Elastic Compute Cloud (Amazon EC2) などのサービスに対して発生する料金も含まれます。詳細については、「Amazon EC2 料金表」を参照してください。

前提条件

このサンプルを使用する前に、以下の前提条件を満たしていることを確認します。

  • 既存の AWS Cloud9 EC2 開発環境 がある。 このサンプルでは、Amazon Linux または Ubuntu Server を実行する Amazon EC2 インスタンスに接続された EC2 環境 が既にあることを前提としています。別のタイプまたはオペレーティングシステムの 環境 がある場合、このサンプルの手順を調整して関連ツールをセットアップする必要がある場合があります。詳細については、「AWS Cloud9 で 環境 を作成する」を参照してください。

  • 既存の環境に既に開いている AWS Cloud9 IDE がある。 環境 を開くと、AWS Cloud9 によってその 環境 の IDE がウェブブラウザで開かれます。詳細については、「AWS Cloud9 で環境を開く」を参照してください。

ステップ 1: 必要なツールをインストールする

このステップでは、WordPress で使用する以下のツールをインストールします。

  • Apache HTTP Server: WordPress ウェブサイトをホストします。

  • PHP: WordPress でウェブサイトのスクリプティングに使用します。

  • MySQL: WordPress でウェブサイトの情報を保存および取得するために使用します。

このステップを終了するには、Apache HTTP サーバーおよび MySQL を起動後、WordPress をインストールします。

  1. 最新のセキュリティ更新およびバグ修正がインストールされていることを確認します。そのためには、AWS Cloud9 IDE のターミナルセッションで、yum update コマンド (Amazon Linux の場合)、または apt update コマンド (Ubuntu Server の場合) を実行します。(新しいターミナルセッションを開始するには、メニューバーで、[Window (ウィンドウ)]、[New Terminal (新しいターミナル)] の順に選択します。)

    複数 Amazon Linux:

    sudo yum -y update

    Ubuntu Server の場合:

    sudo apt -y update
  2. Apache HTTP Server が既にインストールされているかどうかを確認します。確認するには、httpd -v コマンド (Amazon Linux の場合) または apache2 -v (Ubuntu Server の場合) コマンドを実行します。

    成功すると、Apache HTTP Server のバージョン番号が出力に表示されます。

    エラーが発生する場合は、install コマンドを実行して Apache HTTP Server をインストールします。

    複数 Amazon Linux:

    sudo yum install -y httpd24

    Ubuntu Server の場合:

    sudo apt install -y apache2
  3. php -v コマンドを実行して PHP が既にインストールされているかどうかを確認します。

    成功すると、出力に PHP のバージョン番号が表示されます。

    エラーが発生する場合は、install コマンドを実行して PHP をインストールします。

    複数 Amazon Linux:

    sudo yum install -y php56

    Ubuntu Server の場合:

    sudo apt install -y php libapache2-mod-php php-xml
  4. mysql --version コマンドを実行して MySQL が既にインストールされているかどうかを確認します。

    成功すると、出力に MySQL のバージョン番号が表示されます。

    エラーが発生する場合は、install コマンドを実行して MySQL をインストールします。

    複数 Amazon Linux:

    sudo yum install -y mysql-server

    Ubuntu Server の場合:

    sudo apt install -y mysql-server
  5. Apache HTTP Server、PHP、および MySQL をインストールしたら、Apache HTTP Server を起動後、次のコマンドを実行して、起動したことを確認します。

    Amazon Linux の場合 (このコマンドを 2 回実行する必要がある場合があります):

    sudo service httpd start && sudo service httpd status

    Ubuntu Server の場合 (コマンドプロンプトに戻るには、q を押します):

    sudo service apache2 start && sudo service apache2 status
  6. MySQL を起動後、次のコマンドを実行して、起動したことを確認します。

    複数 Amazon Linux:

    sudo service mysqld start && sudo service mysqld status

    Ubuntu Server の場合 (コマンドプロンプトに戻るには、q を押します):

    sudo service mysql start && sudo service mysql status
  7. 次のコマンドを実行して、WordPress をダウンロードします。

    wget http://wordpress.org/latest.tar.gz
  8. 次のコマンドを実行して、WordPress をインストールします。

    tar -xzvf latest.tar.gz

    環境 のデフォルトの場所から上記のコマンドを実行する場合は、AWS Cloud9 IDE の [環境] ウィンドウの wordpress というフォルダ内にある、WordPress のインストールファイルを使用します。また、次の場所に変更して、ターミナルセッションでこれらのファイルを確認することもできます。

    複数 Amazon Linux:

    cd /home/ec2-user/environment/wordpress/

    Ubuntu Server の場合:

    cd /home/ubuntu/environment/wordpress/

ステップ 2: MySQL をセットアップする

このステップでは、MySQL セキュリティのベストプラクティスに従うように MySQL を設定します。これらのセキュリティ上のベストプラクティスには、root アカウントのパスワードの設定、ローカルホストの外部からアクセス可能な root アカウントの削除、匿名ユーザーアカウントの削除、テストデータベースの削除、test_ で始まる名前を含むデータベースへのアクセスを許可する特権の削除などがあります。

新しい WordPress のウェブサイトの情報を保存および取得するように MySQL を設定して、このステップを終了します。

  1. MySQL をインストールするための MySQL セキュリティのベストプラクティスを実装するには、AWS Cloud9 IDE のターミナルセッションで次のコマンドを実行します。

    sudo mysql_secure_installation
  2. プロンプトが表示されたら、指定されたとおりに次の質問に回答します。

    複数 Amazon Linux:

    1. root の現在のパスワードを入力 (ない場合は Enter キー)Enter を押してください (パスワードがない場合)。

    2. root のパスワードの設定Y と入力し、Enter を押してください。

    3. 新しいパスワード – パスワードを入力し、Enter を押してください。

    4. 新しいパスワードの再入力 – パスワードを再入力し、Enter を押してください。(後に使用できるように、パスワードは安全な場所に保存してください。)

    5. 匿名ユーザーの削除Y と入力し、Enter を押してください。

    6. root のリモートログインを禁止Y と入力し、Enter を押してください。

    7. テストデータベースを削除し、アクセスするY と入力し、Enter を押してください。

    8. 権限テーブルを再ロードY と入力し、Enter を押してください。

    Ubuntu Server の場合:

    1. パスワード検証プラグインのセットアップy と入力し、Enter を押してください。

    2. パスワード検証ポリシーには 3 つのレベルがあります01、または 2 と入力し、Enter を押してください。

    3. 新しいパスワード – パスワードを入力し、Enter を押してください。

    4. 新しいパスワードの再入力 – パスワードを再入力し、Enter を押してください。(後に使用できるように、パスワードは安全な場所に保存してください。)

    5. 提供されたパスワードを続行しますか?y と入力し、Enter を押してください。

    6. 匿名ユーザーの削除y と入力し、Enter を押してください。

    7. root のリモートログインを禁止y と入力し、Enter を押してください。

    8. テストデータベースを削除し、アクセスするy と入力し、Enter を押してください。

    9. 権限テーブルを再ロードy と入力し、Enter を押してください。

  3. 次のコマンドを実行して、root ユーザーとして MySQL コマンドラインクライアントを起動します。プロンプトが表示されたら、先ほど設定した root ユーザーのパスワードを入力し、Enter を押します。(MySQL コマンドラインクライアントを使用している場合、プロンプトは mysql> に変更されます。)

    sudo mysql -uroot -p
  4. 使用する WordPress サイトの MySQL データベースを作成します。そのためには、次のコマンドを実行し、my_db_name を新しいデータベースの名前 (例: mysite) に置き換えます。(後に使用できるように、このデータベース名は安全な場所に保存してください。)

    CREATE DATABASE my_db_name;
  5. 使用する WordPress サイトの MySQL ユーザーを作成します。そのためには、次のコマンドを実行し、my_user_name をユーザー名 (例: wordpress-user) に、my_password をユーザーのパスワードに置き換えます。(後に使用できるように、このユーザー名とパスワードは安全な場所に保存してください。)

    GRANT ALL PRIVILEGES ON *.* TO 'my_user_name'@'localhost' IDENTIFIED BY 'my_password';
  6. 次のコマンドを実行して、MySQL コマンドラインクライアントを終了します。(プロンプトは $ に戻ります。)

    exit;

ステップ 3: WordPress ウェブサイトをセットアップする

このステップでは、MySQL データベース接続情報などの基本設定の詳細を設定して WordPress ウェブサイトを設定します。

ウェブサイトを開き、その表示タイトル、ユーザー名とパスワード、およびその他の設定を指定して、このステップを終了します。

  1. 次のように、WordPress のインストール時に wp-config-sample.php ファイルの名前を wp-config.php に変更します。

    1. [環境] ウィンドウで、wordpress フォルダを展開します。

    2. wp-config-sample.php ファイルを右クリックします。

    3. [名前の変更] を選択します。

    4. wp-config と入力して、このファイルの名前を wp-config.php に変更し、Enter を押します。

  2. WordPress ウェブサイト用に wp-config.php を設定します。そのためには、wp-config.php ファイルをダブルクリックして、エディタで開き、次の値を置き換えて、ファイルを保存して閉じます。

    • database_name_here を、先ほど作成した MySQL データベースの名前 (例: mysite) に置き換えます。

    • username_here を、先ほど作成した MySQL ユーザーの名前 (例: wordpress-user) に置き換えます。

    • password_here を、先ほど作成した MySQL ユーザーのパスワードに置き換えます。

    /** The name of the database for WordPress */ define( 'DB_NAME', 'database_name_here' ); /** MySQL database username */ define( 'DB_USER', 'username_here' ); /** MySQL database password */ define( 'DB_PASSWORD', 'password_here' );
  3. WordPress ウェブサイトを起動します。そのためには、index.php ファイルをダブルクリックして、エディタで開きます。次に、メインメニューバーで [実行] を選択します。[PHP (組み込みのウェブサーバー)] ランナーが起動します。これにより、WordPress ウェブサイトも起動します。

    注記

    WordPress ウェブサイトを停止するには、このランナータブで [停止] を選択します。

  4. AWS Cloud9 IDE 内から WordPress ウェブサイトを表示します。そのためには、メインメニューバーで [Preview, Preview Running Application (プレビュー、実行中のアプリケーションのプレビュー)] を選択します。IDE で新しいウィンドウが開き、[見つかりませんでした] ページが表示されます (正常な動作です)。

  5. AWS Cloud9 IDE と同じウェブブラウザ内の新しいタブで WordPress ウェブサイトを開きます。そのためには、新しいウィンドウのアドレスバーで [Pop Out Into New Window (新しいウィンドウで開く)] を選択します。新しいタブに、[見つかりませんでした] ページが表示されます (ここでも正常な動作です)。

  6. WordPress ウェブサイトの言語、ユーザー名、パスワードなどの設定を行います。これを行うには、AWS Cloud9 IDE と同じウェブブラウザ内の新しいタブで、/wordpress/ を既存 URL の末尾に追加して、Enter を押します。[WordPress > Installation] ウェブページが表示されます。画面上の指示に従って、ウェブサイトの設定の指定を完了します。

    重要

    [Information needed (必要な情報)] の [ユーザー名] および [パスワード] に、使用する WordPress に先ほど設定したユーザー名 (例: wordpress-user) とその MySQL ユーザーのパスワードを入力します。

  7. インストールが終了したら、指定したユーザー名とパスワードを使用して WordPress ウェブサイトにログインします。続いて、画面に表示される指示に従って、ウェブサイトをさらにカスタマイズします。

    このダッシュボードに戻るには、/wordpress/wp-admin/ を既存 URL の末尾に追加して、Enter を押します。(または、ウェブサイトのホームページから、[自分のサイトの名前、ダッシュボード] を選択します。)

    ウェブサイトのホームページに戻るには、/wordpress/ を既存 URL の末尾に追加して、Enter を押します。(または、ウェブサイトのダッシュボードから、[自分のサイトの名前、Visit Site (サイトに移動)] を選択します。

ステップ 4: インターネットで WordPress のウェブサイトを共有する

このステップでは、お客様の WordPress ウェブサイトに推奨されるポート、ファイルの場所、所有者、アクセス許可を Apache HTTP Server に設定します。

次に、この EC2 環境 に 関連付けられている Amazon EC2 のセキュリティグループと Amazon Virtual Private Cloud (Amazon VPC) のネットワークアクセスコントロールリスト (ネットワーク ACL) を設定して、着信ウェブトラフィックでそのウェブサイトを表示できるようにします。各 EC2 環境 は、Amazon EC2 のセキュリティグループと Amazon VPC のネットワーク ACL の両方に関連付ける必要があります。ただし、AWS アカウントのデフォルトネットワーク ACL では 環境 のすべての送受信トラフィックが許可されていますが、デフォルトセキュリティグループでは、ポート 22 経由で SSH を使用した着信トラフィックのみが許可されています。詳細については、「AWS Cloud9 開発環境 の VPC の設定」を参照してください。

その後、AWS Cloud9 IDE の外部からウェブサイトを正常に表示して、このステップを終了します。

  1. WordPress ウェブサイトを停止します。そのためには、AWS Cloud9 IDE の [PHP (組み込みのウェブサーバー)] ランナータブで、[停止] を選択します。

  2. 元のファイルを誤って操作不能にした場合に備えて、この手順の後半で変更する、Apache HTTP Server の主要な設定ファイルのバックアップコピーを作成します。そのためには、以下のファイルをコピーするコマンドを実行します。

    Amazon Linux では、次の 1 つのファイルのみコピーするコマンドを実行します。

    sudo cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.bak

    Ubuntu Server では、次の 3 つのファイルをコピーするコマンドを次の順序で実行します。

    sudo cp /etc/apache2/ports.conf /etc/apache2/ports.conf.bak sudo cp /etc/apache2/sites-enabled/000-default.conf /etc/apache2/sites-enabled/000-default.conf.bak sudo cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf.bak
  3. Apache HTTP Server をデフォルトポートの 80 ではなく、ポート 8080 にバインドします。そのためには、次のファイルの検索および置換を行うコマンドを実行します。

    複数 Amazon Linux:

    sudo sed -i 's/Listen 80/Listen 8080/g' /etc/httpd/conf/httpd.conf

    Ubuntu Server の場合:

    sudo sed -i 's/Listen 80/Listen 8080/g' /etc/apache2/ports.conf
  4. デフォルトのポート 80 ではなく、ポート 8080 で待機するように仮想ホスト設定を追加または変更します。そのためには、次のファイルを添付、または検索と置換を行うコマンドを実行します。

    Amazon Linux では、仮想ホスト設定を既存の設定ファイルに添付します。

    sudo echo -e "<VirtualHost *:8080>\n DocumentRoot /var/www/html\n</VirtualHost>" | sudo tee -a /etc/httpd/conf/httpd.conf

    Ubuntu Server では、既存の設定ファイル内の既存の仮想ホスト設定を検索して置き換えます。

    sudo sed -i 's/<VirtualHost \*:80>/<VirtualHost \*:8080>/g' /etc/apache2/sites-enabled/000-default.conf
  5. 新しい設定を使用するために、Apache HTTP Server を再起動します。これを行うには、次のコマンドを実行します。

    Amazon Linux の場合 (このコマンドを 2 回実行する必要がある場合があります):

    sudo service httpd restart && sudo service httpd status

    Ubuntu Server の場合 (コマンドプロンプトに戻るには、q を押します):

    sudo service apache2 restart && sudo service apache2 status
  6. AWS Cloud9 IDE 内から Apache HTTP Server のデフォルト情報のウェブページを表示します。そのためには、メインメニューバーで [Preview, Preview Running Application (プレビュー、実行中のアプリケーションのプレビュー)] を選択します。IDE で新しいウィンドウが開き、Apache HTTP Server のデフォルト情報のウェブページが表示されます。

  7. 次のファイルの検索と置換を行うコマンドを実行して、WordPress のウェブサイトのルートディレクトリを使用するように Apache HTTP Server を切り替えます。

    複数 Amazon Linux:

    sudo sed -i 's/<Directory "\/var\/www\/html">/<Directory "\/home\/ec2-user\/environment\/wordpress">/g' /etc/httpd/conf/httpd.conf

    Ubuntu Server の場合:

    sudo sed -i 's/<Directory \/var\/www\/>/<Directory \/home\/ubuntu\/environment\/wordpress\/>/g' /etc/apache2/apache2.conf
  8. 次のファイルの検索と置換を行うコマンドを実行して、WordPress のウェブサイトのドキュメントルートを使用するように Apache HTTP サーバーを切り替えます。

    複数 Amazon Linux:

    sudo sed -i 's/DocumentRoot \/var\/www\/html/DocumentRoot \/home\/ec2-user\/environment\/wordpress/g' /etc/httpd/conf/httpd.conf

    Ubuntu Server の場合:

    sudo sed -i 's/DocumentRoot \/var\/www\/html/DocumentRoot \/home\/ubuntu\/environment\/wordpress/g' /etc/apache2/sites-enabled/000-default.conf
  9. 推奨される所有者とアクセス許可を使用して、ウェブサイトのルートを設定します。そのためには、次の 6 個のコマンドを一度に 1 つずつ次の順序で実行します。各コマンドの動作を理解するには、各コマンドの後の # の情報をお読みください。

    複数 Amazon Linux:

    sudo groupadd web-content # Create a group named web-content. sudo usermod -G web-content -a ec2-user # Add the user ec2-user (your default user for this environment) to the group web-content. sudo usermod -G web-content -a apache # Add the user apache (Apache HTTP Server) to the group web-content. sudo chown -R ec2-user:web-content /home/ec2-user/environment/wordpress # Change the owner of /home/ec2-user/environment/wordpress and its files to user ec2-user and group web-content. sudo find /home/ec2-user/environment/wordpress -type f -exec chmod u=rw,g=rx,o=rx {} \; # Change all file permissions within /home/ec2-user/environment/wordpress to user read/write, group read-only, and others read/execute. sudo find /home/ec2-user/environment/wordpress -type d -exec chmod u=rwx,g=rx,o=rx {} \; # Change /home/ec2-user/environment/wordpress directory permissions to user read/write/execute, group read/execute, and others read/execute.

    Ubuntu Server の場合:

    sudo groupadd web-content # Create a group named web-content. sudo usermod -G web-content -a ubuntu # Add the user ubuntu (your default user for this environment) to the group web-content. sudo usermod -G web-content -a www-data # Add the user www-data (Apache HTTP Server) to the group web-content. sudo chown -R ubuntu:web-content /home/ubuntu/environment/wordpress # Change the owner of /home/ubuntu/environment/wordpress and its files to user ubuntu and group web-content. sudo find /home/ubuntu/environment/wordpress -type f -exec chmod u=rw,g=rx,o=rx {} \; # Change all file permissions within /home/ubuntu/environment/wordpress to user read/write, group read-only, and others read/execute. sudo find /home/ubuntu/environment/wordpress -type d -exec chmod u=rwx,g=rx,o=rx {} \; # Change /home/ubuntu/environment/wordpress directory permissions to user read/write/execute, group read/execute, and others read/execute.
  10. 新しい設定を使用するために、Apache HTTP Server を再起動します。これを行うには、次のコマンドを実行します。

    Amazon Linux の場合 (このコマンドを 2 回実行する必要がある場合があります):

    sudo service httpd restart && sudo service httpd status

    Ubuntu Server の場合 (コマンドプロンプトに戻るには、q を押します):

    sudo service apache2 restart && sudo service apache2 status
  11. AWS Cloud9 IDE 内から WordPress ウェブサイトを表示します。そのためには、メインメニューバーで [Preview, Preview Running Application (プレビュー、実行中のアプリケーションのプレビュー)] を選択します。IDE で新しいウィンドウが開き、[見つかりませんでした] ページが表示されます (正常な動作です)。

  12. AWS Cloud9 IDE と同じウェブブラウザ内の新しいタブで WordPress ウェブサイトを開きます。そのためには、新しいウィンドウのアドレスバーで [Pop Out Into New Window (新しいウィンドウで開く)] を選択します。新しいタブに、[見つかりませんでした] ページが表示されます (ここでも正常な動作です)。

  13. AWS Cloud9 IDE と同じウェブブラウザ内の新しいタブで、/index.php を既存 URL の末尾に追加して、Enter を押します。WordPress ウェブサイトのホームページが表示されます。

  14. Amazon VPC のネットワーク ACL と、この EC2 環境 に関連付けられている Amazon EC2 のセキュリティグループを設定して、ポート 8080 経由の着信ウェブトラフィックで新しいウェブページを表示できるようにします。そのためには、次の 8 個のコマンドを一度に 1 つずつ次の順序で実行します。各コマンドの動作を理解するには、各コマンドの # の後に表示される情報をお読みください。

    重要

    次のコマンドを実行すると、この 環境 のセキュリティグループおよびネットワーク ACL に関連付けられているすべての EC2 環境 インスタンスおよび Amazon EC2 インスタンスに対して、ポート 8080 経由の着信ウェブトラフィックが有効になります。これにより、これ以外の EC2 環境 および Amazon EC2 インスタンスに対して、ポート 8080 経由の着信ウェブトラフィックが予期せずに有効になる可能性があります。

    注記

    次の 2 番目から 4 番目のコマンドでは、セキュリティグループのポート 8080 経由の着信ウェブトラフィックが有効になります。ポート 22 経由の着信 SSH トラフィックのみを許可するデフォルトのセキュリティグループがある場合は、最初のコマンドとそれに続く 2 番目から 4 番目のコマンドを実行する必要があります。ただし、カスタムセキュリティグループで、既にポート 8080 経由の着信ウェブトラフィックが許可されている場合は、これらのコマンドの実行をスキップすることができます。

    次の 5 番目から 8 番目のコマンドでは、ネットワーク ACL のポート 8080 経由の着信ウェブトラフィックが有効になります。デフォルトのネットワーク ACL があり、すべてのポート経由ですべての着信トラフィックがすでに許可されている場合は、これらのコマンドの実行をスキップすることができます。ただし、ポート 80 経由の着信ウェブトラフィックを許可しないカスタムネットワーク ACL がある場合は、最初のコマンドとそれに続く 5 番目から 8 番目のコマンドを実行する必要があります。

    MY_INSTANCE_ID=$(curl http://169.254.169.254/latest/meta-data/instance-id) # Get the ID of the instance for the environment, and store it temporarily. MY_SECURITY_GROUP_ID=$(aws ec2 describe-instances --instance-id $MY_INSTANCE_ID --query 'Reservations[].Instances[0].SecurityGroups[0].GroupId' --output text) # Get the ID of the security group associated with the instance, and store it temporarily. aws ec2 authorize-security-group-ingress --group-id $MY_SECURITY_GROUP_ID --protocol tcp --cidr 0.0.0.0/0 --port 8080 # Add an inbound rule to the security group to allow all incoming IPv4-based traffic over port 8080. aws ec2 authorize-security-group-ingress --group-id $MY_SECURITY_GROUP_ID --ip-permissions IpProtocol=tcp,Ipv6Ranges='[{CidrIpv6=::/0}]',FromPort=8080,ToPort=8080 # Add an inbound rule to the security group to allow all incoming IPv6-based traffic over port 8080. MY_SUBNET_ID=$(aws ec2 describe-instances --instance-id $MY_INSTANCE_ID --query 'Reservations[].Instances[0].SubnetId' --output text) # Get the ID of the subnet associated with the instance, and store it temporarily. MY_NETWORK_ACL_ID=$(aws ec2 describe-network-acls --filters Name=association.subnet-id,Values=$MY_SUBNET_ID --query 'NetworkAcls[].Associations[0].NetworkAclId' --output text) # Get the ID of the network ACL associated with the subnet, and store it temporarily. aws ec2 create-network-acl-entry --network-acl-id $MY_NETWORK_ACL_ID --ingress --protocol tcp --rule-action allow --rule-number 10000 --cidr-block 0.0.0.0/0 --port-range From=8080,To=8080 # Add an inbound rule to the network ACL to allow all IPv4-based traffic over port 8080. Advanced users: change this suggested rule number as desired. aws ec2 create-network-acl-entry --network-acl-id $MY_NETWORK_ACL_ID --ingress --protocol tcp --rule-action allow --rule-number 10100 --ipv6-cidr-block ::/0 --port-range From=8080,To=8080 # Add an inbound rule to the network ACL to allow all IPv6-based traffic over port 8080. Advanced users: change this suggested rule number as desired.
  15. ウェブサーバーのルート内にある index.php ファイルへの URL を取得します。これを行うには、次のコマンドを実行し、新しいウェブブラウザタブ、または AWS Cloud9 IDE とは別のウェブブラウザを使用して、表示されている URL に移動します。正常に実行されると、WordPress ウェブサイトのホームページがウェブページに表示されます。

    MY_PUBLIC_IP=$(curl http://169.254.169.254/latest/meta-data/public-ipv4) && echo http://$MY_PUBLIC_IP:8080/index.php # Get the URL to the index.php file within the web server root.

ステップ 5: クリーンアップ

この 環境 を引き続き使用するが、ポート 8080 経由の着信ウェブトラフィックを無効にする場合は、次の 8 個のコマンドを 1 度にひとつずつ次の順序で実行し、環境 に関連付けられているセキュリティグループおよびネットワーク ACL で先ほど設定した該当の着信トラフィックルールを削除します。各コマンドの動作を理解するには、各コマンドの # の後に表示される情報をお読みください。

重要

次のコマンドを実行すると、この 環境 のセキュリティグループおよびネットワーク ACL に関連付けられているすべての EC2 環境 インスタンスおよび Amazon EC2 インスタンスに対して、ポート 8080 経由の着信ウェブトラフィックが無効になります。これにより、これ以外の EC2 環境 および Amazon EC2 インスタンスに対して、ポート 8080 経由の着信ウェブトラフィックが予期せずに無効になる可能性があります。

注記

次の 5 番目から 8 番目のコマンドでは、既存のルールを削除して、ネットワーク ACL でポート 8080 経由の着信ウェブトラフィックが許可されないようにします。デフォルトのネットワーク ACL があり、すべてのポート経由ですべての着信トラフィックがすでに許可されている場合は、これらのコマンドの実行をスキップすることができます。ただし、ポート 8080 経由の着信ウェブトラフィックを許可する既存のルールを含むカスタムのネットワーク ACL があり、それらのルールを削除する場合は、最初のコマンドとそれに続く 5 番目から 8 番目のコマンドを実行する必要があります。

MY_INSTANCE_ID=$(curl http://169.254.169.254/latest/meta-data/instance-id) # Get the ID of the instance for the environment, and store it temporarily. MY_SECURITY_GROUP_ID=$(aws ec2 describe-instances --instance-id $MY_INSTANCE_ID --query 'Reservations[].Instances[0].SecurityGroups[0].GroupId' --output text) # Get the ID of the security group associated with the instance, and store it temporarily. aws ec2 revoke-security-group-ingress --group-id $MY_SECURITY_GROUP_ID --protocol tcp --cidr 0.0.0.0/0 --port 8080 # Delete the existing inbound rule from the security group to block all incoming IPv4-based traffic over port 8080. aws ec2 revoke-security-group-ingress --group-id $MY_SECURITY_GROUP_ID --ip-permissions IpProtocol=tcp,Ipv6Ranges='[{CidrIpv6=::/0}]',FromPort=8080,ToPort=8080 # Delete the existing inbound rule from the security group to block all incoming IPv6-based traffic over port 8080. MY_SUBNET_ID=$(aws ec2 describe-instances --instance-id $MY_INSTANCE_ID --query 'Reservations[].Instances[0].SubnetId' --output text) # Get the ID of the subnet associated with the instance, and store it temporarily. MY_NETWORK_ACL_ID=$(aws ec2 describe-network-acls --filters Name=association.subnet-id,Values=$MY_SUBNET_ID --query 'NetworkAcls[].Associations[0].NetworkAclId' --output text) # Get the ID of the network ACL associated with the subnet, and store it temporarily. aws ec2 delete-network-acl-entry --network-acl-id $MY_NETWORK_ACL_ID --ingress --rule-number 10000 # Delete the existing inbound rule from the network ACL to block all IPv4-based traffic over port 8080. Advanced users: if you originally created this rule with a different number, change this suggested rule number to match. aws ec2 delete-network-acl-entry --network-acl-id $MY_NETWORK_ACL_ID --ingress --rule-number 10100 # Delete the existing inbound rule from the network ACL to block all IPv6-based traffic over port 8080. Advanced users: if you originally created this rule with a different number, change this suggested rule number to match.

このサンプルを使用し終わった後 AWS アカウントで料金が継続的に発生するのを防ぐには、環境 を削除する必要があります。手順については、「AWS Cloud9 で環境を削除する」を参照してください。