CentOS7とApache2.4とTomcat8.5でAWS上にWebサーバ構築


1.目的

AWSのEC2でインスタンスを作成しApache、Tomcat、JDKをインストールしてJavaアプリケーションが動作するWebサーバを構築します。
#ドメインはRoute53で事前に取得済み

2.環境

Centos7.5
Apache2.4
JDK1.8
Tomcat8.5

3.ツール、端末OS

AWS EC2
TeraTerm
Windows10

4.Apacheのインストール

4-1.インスタンスの作成

AWSのEC2でインスタンス作成します。スペックは無料の範疇で。
EIPも割り当てます。

  • スペック

    • AMIの選択:CentOS7 #AWS Marketplaceから選択
    • インスタンスタイプの選択:t2.micro
    • インスタンスの設定:すべてデフォルト
    • ストレージの追加:30GB
    • タグの追加:キー Name、値 Webserver
    • セキュリティグループの設定:新しいセキュリティグループを作成する
  • EIPの割り当て

    • EC2ダッシュボード→Elastic IP→新しいIPの割り当て→割り当て
    • 割り当てたIPを選択→アクション→アドレスの関連付け→作成したインスタンスを選択

4-2.インスタンスにsshしパスワード認証に変更

①centos / 認証キーでログイン
②sudo su - でrootユーザに移行
③passwdでpassを設定
④vi /etc/ssh/sshd_configを書き換え(PasswordAuthentication yes , permitRootLogin yes)
※sshのソースを限定した開発環境のためRootユーザのログインを許可しています
※書き換え後にsshdの再起動が必要

■参考
https://qiita.com/uhooi/items/ab845b06b136e623e51d

4-3.apacheのダウンロード、サービスの起動

rootユーザでCLIからapacheをyum installする。
このサイトの手順に倣います。
Tomcatインストール&連携モジュールの際も参考にさせていただきました。

5.Tomcatのインストール

5-1.JDKのインストール

Tomcatを動かすためにJava環境を構築。
このサイトに倣ってインストールします。

5-2.Tomcat本体のダウンロード・解凍・配置、ユーザとグループの作成

$ cd /usr/local/src #srcディレクトリにTomcatのアーカイブをダウンロード
$ yum install wget
$ wget http://ftp.jaist.ac.jp/pub/apache/tomcat/tomcat-8/v8.5.33/bin/apache-tomcat-8.5.33.tar.gz
$ tar zxf apache-tomcat-8.5.33.tar.gz
$ mv apache-tomcat-8.5.33 /usr/tomcat #tomcatディレクトリを作成し解凍したモジュールを配置
$ echo -e "export CATALINA_HOME=/usr/tomcat\nexport CATALINA_BASE=/usr/tomcat" > /etc/profile.d/tomcat.sh #Tomcatで使用する環境変数×2の設定
$ source /etc/profile.d/tomcat.sh #上記設定の確認
$ /usr/tomcat/bin/version.sh 
$ useradd -M -d /usr/tomcat tomcat
$ chown -R tomcat:tomcat /usr/tomcat #tomcatユーザを作成しtomcatインストールディレクトリをchown

※wgetで404エラーが出た場合はtomcatのバージョンが上がっていますので、/tomcat-8/配下のバージョン部分を適宜修正します。

5-3.サービスの作成と登録、Tomcatの起動

環境変数(CATALINA_HOME、CATALINA_BASE)とTomcatインストールフォルダはご自身の環境に合わせて書き換えてください(本記事の場合だとtomcat8)。

$ vi /etc/systemd/system/tomcat.service

Description=Apache Tomcat 8
After=network.target

[Service]
Environment="CATALINA_HOME=/usr/tomcat8"
Environment="CATALINA_BASE=/usr/tomcat8"

User=tomcat
Group=tomcat
Type=oneshot
PIDFile=/usr/tomcat8/tomcat.pid
RemainAfterExit=yes
ExecStart="/usr/tomcat8/bin/startup.sh"
ExecStop="/usr/tomcat8/bin/shutdown.sh"
ExecReStart="/usr/tomcat8/bin/shutdown.sh;/usr/tomcat8/bin/startup.sh"
[Install]
WantedBy=multi-user.target

$ systemctl enable tomcat (自動起動の設定
$ systemctl is-enabled tomcat (自動起動の確認
$ systemctl start tomcat (サービスの起動

5-4.ブラウザで確認

Welcomeページが表示されれば完了。
※インスタンスの8080ポートを開けていない場合、現在の設定ですとエラーになるのでセキュリティグループに追加してください

■参考
・Tomcatインストール
https://weblabo.oscasierra.net/installing-tomcat8-centos7-1/

・apacheがどうやってページを表示しているか?は以下のサイトでお勉強。
https://www.task-notes.com/entry/20150629/1435546800

補足①:ドメイン取得

Route53を使いました。※有料ですのでご注意ください
以下のサイトでお勉強し、手順に倣って完了。
http://exrecord.net/how-to-register-aws-route53

補足②:IPv6の遮断

おまけ:AWSの構築手順を学習する

某SIerのクラウドを運用保守していたので馴染みはあるのですが、
いかんせん構築スキルがなさすぎるので書籍でお勉強。
AWS関連の技術書にしては版も新しく、内容もわかりやすい(TCP/IPの理解があると尚よし)、かつ目的とマッチしていたこともあり大変勉強になりました。
ピンポイントで欲しい知識はグーグル、体系的に学びたい場合は書籍をよく利用します。
8時間程度で読み終えるボリュームでした。

Amazon Web Services 基礎からのネットワーク&サーバー構築 改訂版