AWS上にNginxインストール


こんばんは、毒きのこです。

今回はAWS上にNginxをインストールする手順をば。
自社で新たにサーバーを立てる機会があったので、せっかくですし手順を書いておけば誰かの役にたつかも、ということで。

まずNginxって何? って人もいるかもしれないので、簡単に。

[Nginx]
nginx

簡単にいうとオープンソースのHTTPサーバーです。軽量で高いスケーラビリティを誇っていて近年Apacheなどと比べてもそのシェアは非常に高まってきています。C10K問題に耐えうる設計だったり、I/O Multiplexing、ノンブロッキングI/Oなど備え、少ないリソースでも大量の処理をさばけるなど大変魅力的なサーバーの1つです。

と今回はNginxの詳細を説明するアレではないので、知らない方向けにはこれぐらいにして、とにかくこの凄いサーバーを自分とこにインストールしてみましょう、ということで早速AWS側の設定からやっていきます。

サーバーの設定(AWS)

まず前提としてAWSは契約済みかつログイン出来る状態ということで、EC2インスタンスから作成していきます。

インスタンス(EC2)の作成

トップ画面からEC2を選択、左側ダッシュボードからインスタンスを選択し「インスタンスの作成」からやってってみましょう。

aws01

AMIを選択するよう言われるので今回は「Ubuntu」を選択してみましょう。

aws02
インスタンスのタイプはt2.microを選択。このタイプについては公式など参考にしてください。とりあえず無料利用枠の対象にもなってるt2.microを選んでおきましょう。

aws03
こちら選んだインスタンスタイプの詳細を設定するページですがVPCやサブネットなどは各々好きに… 初めて使う方はDefault VPCになってたり他も自動で空いてるものを勝手に選んでくれてるはずなのでわからない場合は特にいじらないで次を。

aws04

次にサーバーの主に容量を決めるとこですね。こちら後から変えられますしとりあえず何もいじらずに次へ行ってみましょう。

aws05
次に作るインスタンスに名前をつけるところですが、こちらも後からいくらでも編集可能なのでよくわからなければ適当に「TEST_SERVER」とかにでもして次へ。

aws06
セキュリティグループの設定です。こちらは仮想ファイアウォールとして機能するもので、インバウンドトラフィック、アウトバウンドトラフィックの制御などを行う箇所で、初期設定としてはSSHだけ表示されてると思うのでここも「確認と作成」で先に進んでしまいましょう。セキュリティグループも後で単体で設定し、それを当てることができるのでここでは最低限SSHだけあれば問題なし。

aws07

確認画面が出るので特に変更なければ「作成」をクリック。

aws08
上図のようなダイアログが出たと思いますが、これはSSHで接続する際のキーペア、パブリックキー(公開鍵)プライベートキー(秘密鍵)をどうするか聞かれているので、初めてAWSでインスタンスを立てるならば新しいキーペアを作り、既にキーペアがあれば既存のを選択し「インスタンスの作成」をクリック。

aws09
はい、無事作成されましたね。あとは数分まてばダッシュボード上にもちゃんと表示されるようになります。(pending状態からrunningに)

Elastic IPの割り当て

はい、作成したUbuntuサーバー(インスタンスですね)はこのままだと停止・起動するたびにIPアドレスが変わってしまいます。その度に調べてはSSH接続するのも面倒ですよね。そこでAWSにはEIPといって静的なIPを割り当てるサービスが用意されています。

では早速割り当ててみましょう。

インスタンスを作成した時と同じくAWSマネージメントコンソールからEC2->Elastic IPを選択選択し「新しいアドレスの割り当て」をクリック。確認のためのダイアログが出るはずなので「関連付ける」をクリックします。

eip_02

すると成功したとのメッセージが表示されますので、そうしたら作成し表示されたEIPを右クリックし「アドレスの関連付け」を選択。

eip_03
先ほど作成したインスタンスを選択し関連付けすればElastic IPが割り当てられます。これで停止・再開してもIPが常に固定されます。

Nginxのインストール

なんかAWSのインスタンス作成がメインみたいになってしまいましたが、ようやく本題のNginxのインストールを。

まず作ったインスタンスに入ってインストール作業をする必要があるので、Macで先ほどAWSコンソールより作成したキーペアを使いSSH接続を行います。
(作成した際に言い忘れましたがそのキーペアはPCのどこかに保存して大事にしまっておきましょう。)

では作ったインスタンスにSSH接続してみましょう。
ダッシュボードのインスタンスを選択、作成したインスタンスをクリックし上の「接続」ボタンをクリックしてみましょう。ダイアログで接続の例が出てるのでそれに従って繋いでみます。

はい、とりあえずログインできましたね。ちなみにSSHでログインする時のユーザー名はAmazin Linuxを使用してる時と違い「ec2-user」ではなく「ubuntu」になるのでそこに注意。

ビルド環境の構築

インストール方法ですがパッケージとソースコードがあり、ここはソースコードからインストールするようにしてみます。ちなみに一般的なWebサービスなんかだとパッケージで十分ですが、ソースファイルからだとNginxを最適化できます。(無駄なモジュールを省いたり様々なパスをカスタマイズしたり)Nginxをビルドする前にCコンパイラとMakeユーティリティ、その他ライブラリなどをインストールする必要があるのでまずはそこから。

以下のコマンドでまずCコンパイラや基本的な開発環境を以下のコマンドでインストールします。

インストールが終わりましたら、次にPerl互換正規表現のためのライブラリをインストール。

次はgzip圧縮などに使われるzlibライブラリのインストール。

最後にHttpsに必要なOPenSSLライブラリのインストール。

これで事前準備が完了しましたので次はNginxのソースを持ってきてインストールします。

Nginxソースコード入手とインストール

以下のコマンドでNginxの最新版を持ってきます。(執筆時点では1.11.1がMainline版最新)

DLしてきたら以下のコマンドで一気にインストールまで行います。

はい、これでインストール周りは完了です。ちゃんとインストールされているか以下のコマンドで確認してみましょう。

nginxのバージョンやビルドに利用したコンパイラバージョン、configureスクリプトのオプションなど確認出来ましたね。


とりあえず今回はインストールということでここまで。また実際Ubuntuの設定などもしてなく(rootでログインしてたり)その辺も実際運用してくなら諸々設定変更してきましょう。

ではではまた。

スポンサーリンク
336 x 280 レクタングル(大)
336 x 280 レクタングル(大)