プログラム

駆け出したプログラマからの調査報告 #6~AWSでWPをインストール④~

hayashida

暑いのは苦手ですが、昼休みに外に出て夏をつまみ食うのは好きです。林田です。

今回は、前回の記事で立てたEC2インスタンスにSSHで接続して、サーバーの環境構築をするところの解説をしてみようと思います。コマンドプロンプトでの作業となりますが大丈夫、まだコピペの範疇です。

EC2にSSH接続

SSHでサーバーに接続するためのツールをご準備ください。GUIでラッピングされているツールもありますが、慣れればコマンドで打ってしまった方が速いですし、この記事ではそれほど難しい操作も出てこないので、コマンドラインツールを使った場合の解説をさせていただくことにします。

Macをお使いの方はterminalを使っていただければ結構です。
Windowsは、まあ何でもいいのですが僕はGit for Windowsを使っています。gitも一緒にインストールできますし、今いるブランチをプロンプトに出してくれたりいろいろ便利なのでおすすめです。

まあ、どんなツールを使うにせよ、やることは変わりません。コマンドラインツールを開いて、こうです。

1つずつ見ていきましょう。

まず「ssh」というのが「ssh接続でどこかのサーバーにつなぐよ」という意味のコマンドで、その後はそのコマンドに付随するオプションです。

-i」はssh接続の認証に使うファイルを指定するオプションで、その後の「~/.ssh/keyfile_name.pem」の部分でキーファイルの場所を指定しています。このキーファイルはEC2のインスタンスを作ったときにダウンロードさせられたあのファイルなので、そのファイルの場所を指定してあげればそれで大丈夫です。置き場所はどこでもいいのですが、Windowsにログインしているユーザーのディレクトリ直下の.ssh内に置くのが通例なので、そこに置いておけばいいのではないでしょうか。

ユーザーのディレクトリというのは、コマンドラインツールを開いたときに最初にいる場所です。「cd ~/」でアクセスできます。エクスプローラなどで開く場合、「C:\Users\admin」です(管理者ユーザーの場合)。そこに.sshというディレクトリがあるので、そこに置いてください。

それから、ダウンロードしてきたpemファイルはパーミッションが全開なので、そのまま使おうとすると「セキュリティが甘い!」と突っぱねられてしまいます。制限を加えてあげましょう。

でOKです。「chmod」がファイルのパーミッションを書き換えるコマンド、「400」は「管理者のみ書き込み可能」を意味します。守られているってことです。

さて、次は最後の「ubuntu@12.345.678.987」の部分です。これは簡単にいうと「IPが12.345.678.987のサーバーにubuntuというユーザーでログインしたい!」という意味になります。ubuntuはデフォルトのユーザー名がubuntuなのでこう書きます(Windowsのadminに当たります)。
IPアドレスはEC2のインスタンス一覧で、接続したいインスタンスを選択すると右下の方に表示される「パブリックIP」という項目の値をコピペしてください。

ちなみに、EC2に割り当てられるIPアドレスはインスタンスが再起動する度に変わってしまうので注意しましょう。同じIPを使い続けたい場合はElastic IPというサービスを利用する必要がありますが、今回は割愛させていただきます。

さあ、sshコマンドが出来上がったらEnterを押してコマンドを実行しましょう。初めて接続したときは、

という確認メッセージが出ますが、恐れず「yes」といいましょう。そうすれば「~/.ssh/known_hosts」というファイルに今回接続したEC2の情報が書き加えられ、次回からは「知ってるサーバーだ!」ということですんなり通してくれることでしょう。
yes」といって下記のようなログが表示されたら接続は成功です。

aws_wp04_02

サーバーの環境構築、とは

コンソール上で「おぎゃあ」といったばかりのEC2はOS(今回はubuntu)がインストールされただけの、まっさらな状態です。それを他のレンタルサーバーなどと同じようにブラウザでアクセスできる立派なサーバーに育て上げるためには、必要なものをインストールしてLAMP環境というものを構築してあげる必要があるのです。サーバーからコンテンツを配信するために最低限必要なものが4つあるのですが、”LAMP“はそのそれぞれについて最もよく使われているものの頭文字をつなげてつくられた言葉です。

LAMPのL、それはLinuxのL

つまりサーバーを動かすOSのことです。現在世の中にあるほとんどのサーバーはubuntuCentOSといったLinux系のOSで動いています。LAMPのLはそれを指します。
そうです、お気づきのように今回はubuntuがインストールされているイメージでEC2を立てているので、OSをインストールする必要はありません。やった!

LAMPのA、それはApacheのA

Apacheとは、ブラウザからのHTTPリクエストなどを文字通りサバいてくれるWebサーバーです。これがないとブラウザからいくら呼びかけられてもサーバーは上手く受け答えをすることができません。
試しにブラウザでEC2のURLにアクセスしてみましょうか。先ほどの「パブリックIP」の一つ上の「パブリック DNS」という項目の値がこのEC2に割り当てられているURLになりますので、そこにアクセスします。

aws_wp04_01

やっぱり上手くいきませんね。サバいてくれる人がいないからです。

LAMPのM、それはMySQLのM

リレーショナルデータベース管理システム(RDBMS)、まあ要するにデータベースのことです。WordPressに投稿された記事などの情報を記憶しておいてくれます。
これもレンタルサーバーなどではそのサーバーの中にインストールされたものを使うことが多いかと思いますが、EC2インスタンス一台では冗長性に不安がありますので、その中にインストールするのではなくDBサーバー専用のインスタンスが立てられるRDSというサービスを使うことにします。そこでこれもインストールしなくて大丈夫です。やったやった!

LAMPのP、それはPHPのP

サーバーの中で動くスクリプト言語。RubyやPerlといった他のスクリプト言語に比べて、書きにくく読みにくい言語なのでプログラマからの嫌われ具合には他を圧倒するものがあるのですが、どういうわけかサーバー界でのシェアもまた圧倒的です。
レンタルサーバーでも何もしなくてもPHPは動きますよね?それはPHPがデフォルトでインストールされているからです。
今回インストールを目指しているWordPressもPHPで動くCMSなので、これはインストールしておく必要があります。

さあそれでは実際にApachePHPをEC2にインストールしてみましょう。

ApacheとPHPをインストール

まずはApacheをインストールします。

 「sudo」は「super user do」の略で、「何気なく実行できてしまっては困る操作」はこれを付けないと実行できないことになっています。
apt-get」がubuntuのパッケージ管理コマンドです。CentOSだと「yum」であったり、OSによっていろいろあります。
apt-get update」すると、apt-getのパッケージリストが更新されます。最新のパッケージをインストールするために、「apt-get install」などを実行する前には常に流すようにしておきましょう。
apt-get install」がパッケージをインストールするコマンドで、「apache2」のようにパッケージを指定することができます。

Apacheのように大きいサイズのパッケージをインストールしようとすると、途中で

というように訊かれることがありますが、「Y」と答えておけばそのまま流れます。

エラーなく最後まで流れたら、リクエストをサバいてくれるApacheがインストールできたということなので、この時点でもう一度ブラウザでアクセスしてみると、今度は先ほどとは違う返事が返ってくるはずです。

aws_wp04_03

こんな画面が表示されたらApacheのインストールは成功です。おめでとうございます。

Apacheは初期状態では「/var/www/html」をrootとするように設定されているので、パッケージをインストールするときにそこに配置されたindex.htmlというファイルが呼ばれてこのように表示されるのです。

それではPHPもササッとインストールしてしまいましょう。折角なので最新版のPHP7.0を使ってみたいですよね。下記のようにするといけます。

 一行目はパッケージを参照するリポジトリを追加するコマンドです。ppaというのは「Personal Package Archive」の略で、一般の人が作ったubuntu向けのパッケージが置かれているリポジトリのことです。ppaは誰でも自由に作ることができるので、add-apt-repositoryする際には注意が必要ですが、ondrej/phpはよく使われているリポジトリなので今回はそれを使わせていただくことにします。

新しいリポジトリを追加したので一応updateもしておきましょう。

そしてinstallです。

滞りなく流れたらphpが正常に動いているか確認しておきましょう。

 touchコマンドで先ほどの「/var/www/html」の中に空のtest.phpが作成されます。「vi」はvimエディターで指定したファイルを開くコマンドです。test.phpを下記のように編集します。

これで「(パブリックDNS)/test.php」にアクセスして、「Hello Nice World!!」と表示されればOKです。

確認が済んだらいらないものはいらないので、削除しておきましょう。

 以上で、LAPがそろいました。MはAWSのコンソール上での作業になりますので、次回に回させていただこうと思います。

おわりに

今回はコマンドラインでの作業がメインでしたので、慣れない方には少し難しく感じられたかもしれません。

でも普段PCで何気なくやっている、ファイルのダウンロードや削除などといった操作も実は裏でこんなコマンドが走っているのかと思うと、驚嘆と感謝の念で一杯になりますよね。

GUIに乾杯。

このシリーズの記事

AWSでWPをインストール①~AWSを利用するうえで必要な知識~

AWSでWPをインストール②~IAM設定について~

AWSでWPをインストール③~EC2インスタンスの立ち上げ~

AWSでWPをインストール④~EC2インスタンスの環境構築~