asuka0708japan
@asuka0708japan

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

「TypeScript の基礎から始める AWS CDK 開発入門」Webサーバにアクセス拒否される...

解決したいこと

CDKで立てたWeb Serverにアクセスブロックされている原因が分からないので知りたいです。よろしくお願いします。

表題のワークショップを進めていた所、Apacheを入れたEC2をPublic Subnetに立ててアクセスしようとした所でブロックされました。コンソールで確認した所、SGは狙い通りに全てのIPからポート80のトラフィックを受け入れる設定に出来ています。

発生している問題・エラー

スクリーンショット 2023-05-27 220430.png

該当するソースコード

import { Stack, StackProps } from 'aws-cdk-lib';
import { Construct } from 'constructs';
import * as ec2 from "aws-cdk-lib/aws-ec2";

import { readFileSync } from "fs";

export class CdkWorkshopStack extends Stack {
  constructor(scope: Construct, id: string, props?: StackProps) {
    super(scope, id, props);

    const vpc = new ec2.Vpc(this, "BlogVpc", {
      ipAddresses: ec2.IpAddresses.cidr('10.0.0.0/16'),
    });

    const webServer1 = new ec2.Instance(this, "WordpressServer1", {
      vpc,
      instanceType: ec2.InstanceType.of(ec2.InstanceClass.T2, ec2.InstanceSize.SMALL),
      machineImage: new ec2.AmazonLinuxImage({
        generation: ec2.AmazonLinuxGeneration.AMAZON_LINUX_2,
      }),
      vpcSubnets: { subnetType: ec2.SubnetType.PUBLIC },
    });

    const script = readFileSync("./lib/resources/user-data.sh", "utf8");
    webServer1.addUserData(script);

    // port80, 全ての IP アドレスからのアクセスを許可
    webServer1.connections.allowFromAnyIpv4(ec2.Port.tcp(80));
  }
}

また、ユーザデータの設定で以下のuser-data.shを読み込ませています

#!/bin/bash

yum -y update
yum -y install php httpd mysql

PHP_VERSION=`php -v | head -n 1 | awk '{print $2}' | awk -F "." '{print $1}'`
while [  ${PHP_VERSION} -ne 7 ]
do
amazon-linux-extras install php7.4 -y
PHP_VERSION=`php -v | head -n 1 | awk '{print $2}' | awk -F "." '{print $1}'`
done

yum -y install php-mbstring php-xml

wget http://ja.wordpress.org/latest-ja.tar.gz -P /tmp/
tar zxvf /tmp/latest-ja.tar.gz -C /tmp
cp -r /tmp/wordpress/* /var/www/html/
chown apache:apache -R /var/www/html

systemctl enable httpd.service
systemctl start httpd.service

自分で試したこと

・SGの確認
・タイプミスの確認

0

1Answer

ユーザーデータを普通のApacheサーバー起動のテンプレートに変更した所、普通に接続出来ました。
WordPressの設定かインストールが上手くいっていなさそうです。

0Like

Comments

  1. /var/www/html/test.php
    <?php phpinfo(); ?>
    

    wget -SO- http://ipaddres:80/test.php

    先ずはサーバとphpの正常性を確認してはどうでしょうか?

    普通のApacheサーバーのphpinfoを表示し
    不足しているモジュールをインストールして下さい。

    yum -y install php-session php-gd
    
  2. @asuka0708japan

    Questioner

    コメントありがとうございます!
    以下のコマンドで管理者権限で実行する事でWordPressの起動を確認出来ました。
    ...
    sudu su -
    ...
    まだCDKで起動したEC2へのアクセス仕方も分からず、ユーザデータでしか設定編集が出来ない状態です。
    SessionManagerなどで後からでもログインして管理が出来るようになりたいです(_)

  3. chown -R apache:apache /var/www/html
    または、
    chmod -R 777 /var/www/html
    

    php-fpmのfastcgiの設定かも?

    chown -R apache:apache /run/php-fpm/

Your answer might help someone💌