Amazon EC2インスタンスにDockerとApacheをインストールし、Webサーバーを構築していきます。
↓構築するWebサーバーのイメージ
ApacheはWebサーバーとして長年使われてきた歴史のあるソフトウェアで、LPIC202の試験範囲にもなっています。
ここで少しでも実際のイメージを掴んでください。
インスタンスへSSH
インスタンスへSSHします。
1 |
ssh -i ~/.ssh/hogehoge user_name@fqdn |
~
インスタンスの起動直後は、インストール済みソフトウェアのバージョンが古い場合があります。
その場合、上の画像のように Run “sudo yum update” to apply all updates. と表記されますので、指示通りまとめてアップデートしましょう。
1 |
sudo yum update |
Docker
Dockerはコンテナ型と呼ばれる仮想化技術の一つです。
VirtualBoxはハードウェアレベル(サーバーとOS)で仮想化されますが、DockerはサーバーとOSの仮想化を行わず、アプリケーションを動作させる部分のみ仮想化します。
そのため動作が軽く、効率の良い運用が可能となっています。
コンテナ型の仮想化は複製が簡単なので、開発環境から本番環境へのデプロイ、バックアップやレストア、複数人での開発などに大変便利です。
Dockerのインストール
ではさっそくDockerをインストールしましょう。
1 |
sudo yum install docker |
無事インストールできたか確認します。
1 |
docker -v |
dockerのサービスを起動し、ステータスが active になったことを 確認します。
1 2 |
sudo systemctl start docker systemctl status docker |
コンテナイメージのダウンロード
ここではDocker Hubに公開されているCentOSのimageを利用します。
rootになります。
1 |
sudo su - |
CentOSのimageをダウンロードします。
1 |
docker pull centos |
ダウンロードしたイメージの情報を確認します。
1 |
docker images |
コンテナの起動とログイン
ダウンロードしたイメージを元に、コンテナを作成します。
1 |
docker run -p 80:80 -p 443:443 -d --privileged centos:latest /sbin/init |
下記コマンドでコンテナの情報を確認し、CONTAINER ID をコピーします。
1 |
docker ps |
docker exec コマンドでコンテナへ入ります。
1 |
docker exec -it YOUR_CONTAINER_ID /bin/bash |
コンテナに入ったらソフトウェアを最新の状態にしましょう。
1 |
yum update |
これ以降の操作は、全てコンテナの中で行います。
Apache
Apacheはオープンソースのウェブサーバーソフトウェアです。1995年のWeb黎明期にリリースされて以来、広く使われてきました。
長らくApacheの独壇場が続いていましたが、近年はNginxやLiteSpeedの登場により、シェアに変化がみられます。
特にLiteSpeedはApacheとの互換性が確保されており、性能の高さと相まってApacheとの置き換えが進むと予想されます。
Apacheのシェアは減少傾向にありますが知名度は高く、今でもその情報は世界中で必要とされています(下図グーグルトレンドの比較結果を参照のこと)。
またノウハウがWeb上に数多くあることから、学習に最適なソフトウェアです。
Apacheのインストールと動作確認
それではApacheをインストールしましょう。
1 |
yum install httpd |
インストールが完了したらサービスを起動し、状態が active になっているか確認します。
1 2 |
systemctl start httpd systemctl status httpd |
Apacheが正常に動作しているか、ブラウザで確認してみましょう。
AWSのマネジメントコンソールから、インスタンスのPublic IP(or DNS)を調べ、ブラウザに入力します。
下図のように、Apacheのテスト画面が表示されれば成功です。
Apacheの画面が表示されない場合
Apacheの画面が表示されない場合は次の2点を確認してください。
systemctl status httpd コマンドでサービスのステータスが active になっていること
AWSのセキュリティーグループでPort 80が開いていること
Webページを公開してみよう
試しにシンプルなWebページを作成して公開してみましょう。
/var/www/html/ ディレクトリに index.html を作成します。
1 2 3 4 |
cd /var/www/html/ echo " <h1>Hello world</h1> " > index.html |
ブラウザをリロードし、Hello world が表示されることを確認してください。
演習
1.Apacheの設定ファイル(httpd.conf)がどこにあるのか調べてください。
2.Apacheでは /var/www/html/ 配下のWebページが公開される仕組みとなっています。設定ファイルのどこにその記述があるのか調べてください。
3. /var/www/html/ ディレクトリに home.html という名前のファイルを新規作成し、ブラウザで表示させてください。その時のURLを ルートURL とするにはどうすればいいでしょうか?設定ファイルを修正してみてください(修正前に設定ファイルのバックアップを取ること!)。
まとめ
これでWebサーバーが構築できました。
次回はMySQLとPHPを導入し、WordPressでブログを公開してみましょう。
>>AWSのEC2インスタンスでWordPressブログを公開してみよう
あなたも、Avintonでこのような最先端技術を習得し活用してみませんか?
社員の成長を導きながら、AIやビッグデータなどの最先端技術をプロジェクトに活用していくことが私たちのビジョンです。Avintonの充実した技術研修でスキルアップを図り、あなたのキャリア目標を一緒に達成しませんか?