LoginSignup
0
0

EC2とRDSでWeb環境構築するよ!(最終回:Web環境の構築編)

Posted at

EC2とRDSのWeb環境構築の最終回です。
第4回:RDS編はこちら
https://qiita.com/kikurage2030/items/82205ab72742a5ee5b85

サービスの全体象

作りたいサービスの概要はこんな感じです。
image.png

EC2にWebサーバを立ててPHPのプログラムがMySQLにアクセスしてテーブルの情報を表示する画面を作ります。
いわゆる一般的なWebシステムの構成でWebサーバはPublicサブネットに公開し、DBサーバはPrivateサブネットで冗長構成としてEC2のみのアクセスを許可する制御とします。また独自ドメインを取得してDNSでの名前解決も行えるようにします。

このシリーズで取り組む内容は
第1回:VPC・サブネット周りの作業
第2回:EC2の構築
第3回:Route53の登録 
第4回:RDSの構築
第5回(最終回):Web環境の構築 ここ!
を予定しています。今回は第5回(最終回):Web環境の構築編となります。


Web構築作業概要

EC2環境とRDS環境が作成されたので後はEC2のTomcat上で動くプログラムを作成して動作確認をするのみです。プログラムの実行環境であるPHPのインストール作業と簡易的なWeb画面の表示処理を実装し、WebサービスがRDSにアクセスして必要な情報を取得し画面に表示できることを確認します。

順序としては
1.PHPのインストール
2.PHPの簡易プログラムの実装
の順番で実施。

1.PHPのインストール

Webシステムが動作するためのランタイム環境(PHP)をインストールします。
EC2にログインして以下のコマンドを実行

PHPのインストールを実施
$sudo dnf install -y php php-mysqli php-fpm php-json php-devel php-gd

PHP関連のライブラリをインストール
$sudo yum install -y php php-mbstring

これでPHPのブログラムが動作する環境が作成されました。

2.PHPの簡易プログラムの実装

ここではMySQLにアクセスしてユーザーテーブルから情報を取得して画面に表示する簡易的な画面を作成します。
実装内容は以下の通りです。

test.PHP
<?php
// MySQLの接続エンドポイント、ユーザー名、パスワードを定義
$dsn = 'mysql:host=aws-mysql-db.ctg84chzcg8w.ap-northeast-1.rds.amazonaws.com;charset=utf8mb4';
$username = 'admin';
$password = 'XXXXXXXXX';


// try-catch
try {
        // データベースへの接続PDOインスタンスを生成
        $pdo = new PDO($dsn, $username, $password);

        // SQL文
        $sql = "select user,host from mysql.user where user='rdsadmin'";

        // プリペアドステートメントを作成
        $stmt = $pdo->prepare($sql);
        $stmt->execute();
        $dataset = $stmt->fetch(PDO::FETCH_ASSOC);
        // 接続を閉じる
        //$pdo = null; 
} catch (PDOException $e) {
        // UTF8に変換します
        exit(mb_convert_encoding($e->getMessage(), 'UTF-8', 'SJIS-win'));
}
function escape1($str)
{
        return htmlspecialchars($str, ENT_QUOTES, 'UTF-8');
}
?>
<!DOCTYPE html>
<html lang="ja">
<head>
        <meta charset="utf-8">
        <title>DataSelect</title>
</head>
<body>

        <?php foreach ($dataset as $a) : ?>
                <?= escape1($a) ?>
        <?php endforeach; ?>

</body>
</html>


こちらのtest.phpファイルをApacheの実行環境フォルダに配置してあげます。(/var/www/html配下)

実行結果、MySQLで取得したユーザー名(rdsadmin)とホスト(localshot)の情報が画面に表示されました。

image.png

以上で5回にわたって開設したEC2とRDS関係のWebサービスの構築概要の説明は以上です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0