0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

なんちゃってエンジニアがAWSでそれっぽいことをしてみた part2

Last updated at Posted at 2023-10-18

前回のご紹介と今回やること

  part1はこちらです
  前回ネットワーク環境を作ったので、
  今回はweb/DBサーバを立てて、wordpress入れて起動するところまでを行います。

  注釈として、今回はどこかに公開することなどは想定しないため
  ドメイン取得はせず、冗長化もしません。

レシピ

 2.webサーバ構築

  (1)Linuxサーバを立てる。

   EC2のインスタンスメニューからインスタンス起動を選択して
   ポチポチ選択していって、Linuxサーバを立てます。

   自分で色々試作するための環境なのでリソースは最小構成でいきます。
   ネットワーク設定はpart1で作成したものを使います。
   AMIはAmazon Linuxです。
   制限周りはssh(port22)だけ解放して、後から必要なものを開けていくようにしています。

   ・名前:odin-web 適当な名前で
   ・Amazon マシンイメージ (AMI):Amazon Linux 2023 AMI
   ・インスタンスタイプ:t2.micro
   ・キーペア:任意のpemを作成 ※保存忘れずに
   ・ネットワーク設定:part1で作成したVPCとpublicサブネットを指定
   ・パブリックIPの自動割り当ては有効化
   ・セキュリティグループはセキュリティグループ名を任意で作成
   ・ルールはとりあえずssh(port22)だけ解放
   ・ストレージはいじらない(8GB)

   でインスタンスの起動
   ↓↓↓↓↓↓↓↓↓↓
   こんな感じでインスタンスが「実行中」になれば完了です。
image.png

  (2)sshで接続してみる

   インスタンスが起動したら、接続確認します。
   コマンドプロンプトから

   ssh -i "hogehoge.pem(作成したキーペア)" ec2-user@(IPアドレス)

   こんな感じでログインできたらOKです
image.png

  (3)Apacheをインストール

   インスタンスを立てたら、Apacheインストールします

   #ec2インスタンスのライブラリをupdateする(お作法)
    sudo yum update -y
   #Apacheインストール
    sudo yum -y install httpd
   #Apache起動
    sudo systemctl start httpd.service
   #Apache起動確認
    sudo systemctl status httpd.service

   こんな感じでactiveだったらOKです
image.png

  (4)ファイアウォール設定

    現状publicサブネットはssh(port22)しか許可していないので
    Webアクセスするために80port許可をする

    EC2のメニュー「セキュリティグループ」から作成したセキュリティグループ
    odin-webを探す
    「インバウンドルールを編集」でインバウンドルールに
    タイプhttpでポート範囲80のインバウンドルールを追加する
    (ソースは一旦、Anywhereで)

    作成されるとこんな感じになります。
image.png

    これでapacheが起動した状態で80portを受け付けられるようになったので
    Webアクセスができるようなったはずです。

    ブラウザからIP直指定でアクセスすると…
image.png
    Apacheが「It works!」を返してくれました。

  (5)ElasticIPを設定

    今回ドメインは取得しませんが、IPだけは固定しておきます。でないと面倒なので。
    (課金あり)

    Elastic IP アドレスのメニューから「Elastic IP アドレスを割り当てる」
    で「割り当て」したら、割り当てられたIPアドレスを「アクション」メニューから
    すでに作成済のwebインスタンス(とプライベートIPアドレス)に関連付けます。

 3.DBサーバ構築

    Webサーバがあれば大体遊べるのですが、wordpress立てるためDBサーバも用意します。
    今回はmysqlで構築することにしました。

  (1)セキュリティグループを作成する

    DBサーバへのアクセスはWebからのみとします。
    EC2のセキュリティグループメニューから「新規セキュリティグループを作成」

    ・インバウンドルールを編集する
    ・タイプにMYSQL/Auroraを選択
    ・ソースを「Webサーバのセキュリティグループ」で指定する

  (2)RDSを構築する

    aurora-mysql8.0を使います。

    ①サブネットグループ
     アベイラビリティゾーンとサブネットにDBサーバ用に作成したものを
     指定する。冗長構成を取りたい場合は、もう一つDBサーバ用のサブネットを
     用意して指定します。

     こんな感じ。CIDRは10.0.21.0/24としました。

image.png

    ②パラメータグループ
    パラメータグループファミリーにaurora-mysql8.0を指定
    あとは特にいじらない
image.png

    ③オプショングループ
    エンジンにmysql メジャーエンジンバージョンに8.0を指定
image.png
    ここまでが下準備

    ④データベースの作成
    RDSの「データベース」メニューから「データベースの作成」

image.png
image.png

    テンプレートは開発/テスト
    インスタンス設定は最小
    マルチAZ配置はせず、最小構成で作る

    サブネットグループ、セキュリティグループはこれまで作成したものを指定
    して「データベースの作成」

    無事出来ました。
image.png
    サブネットグループ、セキュリティグループは間違いないか確認しておくのが吉
image.png

  (3)WebサーバからRDSへ接続確認

    DBサーバを構築できたので、Webサーバから接続確認をします。

    #Webサーバに再度接続して、mysqlをインストールする
      sudo yum -y install mysql
    #mysqlコマンドで接続する
      mysql -h (endpoint) -u (user) -p 
    #  endpointはRDSのダッシュボードから確認できます。
    #  ユーザはrootユーザを使用
    #  passwordを求められたら、RDS作成時のpasswordを入れる

image.png
      ログインできるとこんなターミナル画面になります。
      5.へ続きます
image.png

 4.wordpressを立てる

    いよいよ本題に入っていきます。

  (1)wordpress用にDBを作成

    DBサーバにデータベースを作成していきます。
  
    ・CREATE DATABASEコマンドでDB作成
     文字コードや照合順序を指定しています。詳しくはググって下さい…

     CREATE DATABASE [odin] DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

     []がデータベース名
image.png
     Query OKで返ってきたら、一応作成したデータベースを確認する

     SHOW DATABASES;

image.png
    指定したデータベース名で作成できています。
    次にDB接続ユーザを作成します。

    #DB接続ユーザを作成する。
    #odinがユーザ名。IDENTIFIED BYの後が接続時のパスワードになります。
     CREATE USER 'odin'@'%' IDENTIFIED BY '*********' ;
    #DB接続ユーザへデータベースを触る権限を付与。
     GRANT ALL ON odin.* TO 'odin'@'%' ;
    #権限設定を反映させる。
     FLUSH PREVILEGES;
    #ユーザ一覧を表示させて、作成できたことを確認。
     SELECT user ,host FROM mysql.user;

    最後にmysqlへの接続確認。一度mysqlから抜けて、再び接続。

     exit;
     mysql -h (endpoint) -u (user) -p 
     #(user)は先程作成したユーザを指定します。

    接続できたらOK!

  (2)wordpressインストール

   wordpressインストールにあたり
   phpが必要になるので先にインストールしています。

   #phpインストール
    sudo amazon-linux-extras install -y php8.1
   #wordpressインストール
   #ホームディレクトリにダウンロードした後で解凍
    cd ~
    wget https://ja.wordpress.org/latest-ja.tar.gz
    tar xzvf latest-ja.tar.gz
    ls

    wordpressのディレクトリが出来ました。
image.png
    apache配下にwordpressのディレクトリをコピーして
    権限を変更した後に、apache再起動をします。

    cd wordpress
    sudo cp -r * /var/www/html
    sudo chown apache:apache /var/www/html/ -R
    sudo systemctl status httpd.service

    ここでstatusを確認(activeになっているはず。キャプチャlostしました…)

    sudo systemctl restart httpd.service
    sudo systemctl status httpd.service    

    再起動して、再びstatusを確認。activeになっていればOK!
    webブラウザからwebサーバにアクセスすると…
    image.png
    これでwordpressインストールされました。

  (3)wordpress設定

    あと少し。「さあ、始めましょう!」のボタンから設定を行っていきます。
    サイトのタイトルとメールアドレスは任意のものでOK
    ユーザ名、パスワードは構築したDBのものを使う
 image.png
    「Wordpressをインストール」を押下すると
image.png
    OK!
image.png
image.png

    これでwordpressを起動させることが出来ました。

この後どうするの?

    とりあえずwebサービスを提供する環境はできたので、思いつつままに
    やりたいことをやっていきます。

    part3ではWebサーバ側でpythonプログラムを動かしていきます。

    またpart1,2でwordpressを立ち上げるまでの流れが出来ています。
    もしこの記事をみて作りたくなった人は参考にしていただけると
    大変嬉しかったりもします(`・ω・´)
   

0
2
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
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?