見出し画像

日本語MAMPハンズオンをAWSでLAMPにした備忘録

こんにちは!YanekaraインターンのSと申します!

ここでは、過去私が自主学習として取り組んだ、日本語MAMPハンズオンのAWSによるLAMP化についてご紹介します!

日本語MAMPハンズオン

私は過去「未経験者のためのPHPとMySQLを用いたWebデータベースシステム入門」というオンライン講座を受講した経験を持っています。

オンライン講座自体は2020年度の開講でしたが、当時のダウンロード
サイト(https://st.jmooc.jp/php/)は2022年4月現在でも閲覧可能でした。

講座内容はMAMP(Mac+Apache+MySQL+PHP)で「JMOOCベーカリー在庫管理システム」を作成するというもので、最終的に完成するソースコードは「Week6」の最終版としてWebでも公開されていたと記憶しております。

講座最終成果物の画面遷移図(筆者作成)
講座最終成果ファイルの相互依存関係(筆者作成)

MAMPハンズオンをAWSでLAMPハンズオン化

上記のハンズオンですが、さらなる学習のためにAWSでソースコードを稼働させることを考えました。以下の手順に従いLAMP(Linux+Apache+MySQL+PHP)化することで、無事AWSでの稼働に成功しました。

参考Webサイト:https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2-lamp-amazon-linux-2.html

  1. Amazon Linux 2 インスタンスを起動する。

  2. 「sudo yum update -y」でソフトウェアパッケージを最新の状態に

  3. 「sudo amazon-linux-extras install -y lamp-mariadb10.2-php7.2 php7.2」「sudo yum install -y httpd mariadb-server」でApache ウェブサーバー、MariaDB(MySQL)、PHPをインストール

  4. 「sudo systemctl start httpd」でApache ウェブサーバーを起動

  5. 「sudo systemctl enable httpd」でシステムがブートするたびに Apache ウェブサーバーが起動するように設定

  6. インバウンド HTTP (ポート 80) 接続をインスタンスに許可するセキュリティルールを追加(特定の IP アドレスからのみ接続を許可することが推奨される)

  7. 「ec2-user」をapache グループに追加し、/var/www ディレクトリの所有権を apache グループに付与し、グループへの書き込み権限を割り当てる

  8. 「sudo yum install git -y」でgitをインストール

  9. あらかじめMAMPハンズオンで作成した最終ソースコードを「cd /var/www/html/」「git clone [レポジトリのURL]」で外部からアクセスした際に表示される場所に取得

  10. 「http://[インスタンスIP]/[レポジトリの名前]/index.html」をブラウザに打ち込むとMAMPハンズオンで作成したWebサービスをAWSに移植できた(らしい)ことが確認できる

ただ、このままですと、DBが空のため操作が成立しません。そのため、以下のようにDBの初期設定はMariaDBに入って改めて行う必要がありました。

  1. 「mysql -u root -p」でMariaDBに入る

  2. 「CREATE USER test_user IDENTIFIED BY [パスワード];」でユーザーを作成

  3. 「GRANT ALL ON stock.* TO test_user;」で権限付与後、「quit;」「mysql -u test_user -p」で再ログイン

  4. 「CREATE TABLE stockUser(...);」のようにMAMPハンズオンと同様のテーブルと初期データを準備し直す

AWS EC2でLAMP化したシステムの構成図

Yanekaraインターンスタート後、このハンズオンを振り返る

フロントについて、このハンズオンで作成するWebサービスは画面全体が更新される回数が多くなっています。Yanekaraインターンでは「SPA (Single Page Application)」という考え方を初めて知りました。

AWSについても、このハンズオンで使ったのはEC2のみでしたが、Yanekaraインターンを始めて「ECS」「Lambda」「Fargate」という言葉に初めて触れました。

Yanekaraのクラウド周りは私にとって新しく学ぶことばかりで、もっと成長しなければならないと強く感じております。

最後に

ここまでお読みいただき、ありがとうございました!Yanekaraのnoteでは、事業内容やメンバー紹介、テックブログなど多様な情報を発信していきたいと考えています。フォローしていただけると嬉しいです。今後ともよろしくお願いいたします!


この記事が気に入ったらサポートをしてみませんか?