2016/12/09

AWSでWebサービスを構築05 EC2インスタンス起動

前回はサーバ作成の前準備を行った。
今回は実際に仮想サーバを立ち上げる。
具体的には、サーバ起動からSSH接続、Apacheなどのインストールを行なって動作確認、その後にバックアップまで行う。



AMIについて


このシリーズの冒頭で、マシンイメージの説明をした。
仮想サーバのバックアップがマシンイメージで、そのマシンイメージからサーバを復元したり、あるいは複製したりする。



AWSで使用されるマシンイメージはAMIと呼ばれる。

本来だったらサーバ作成には、
まっさらなサーバを用意→OSインストール→各種ソフトインストール→バックアップ作成
という手順を踏むが、AWSではすでにOSインストール済みのAMIを配布しているので、これを元に仮想サーバを復元して、そこから編集を行う。
また、AMIによってはWebサーバに必要なソフトがすでにインストールされているものもある。便利。

今回は、EC2でよく使用されているAmazon LinuxというRed Hat系のLinuxのAMIを使ってサーバを構築する。無料枠だしね。


EC2インスタンス起動


EC2のショートカットを選択すると、EC2の管理画面が開く。
画面左部より「インスタンス」を選択すると、現状で起動しているインスタンスの管理画面が表示される。
画面上部の「インスタンスの作成」ボタンを選択すると、ウィザードが開始する。


AMIの選択




はじめはAMIの選択だ。
OSアイコンの下に「無料利用枠の対象」となっているものだと気楽に試すことができる。
使ったことないけどWindowsとかもあるみたい。無料だっけ?

今回はクイックスタートから「Amazon Linux AMI」を選択する。

インスタンスタイプの選択




ここも重要。タイプごとにスペックと金額が異なる。
うっかり高いものを起動したままほっといたらクレジット残高が死ぬ。

今回は無料利用ができる「t2.micro」を選択する。

ここで、画面下部に「確認と作成」ボタン以外に「次の手順:〇〇〇〇〇〇」ボタンがあるのが確認できるかと思う。
「確認と作成」を選択すると、途中の手順をすっ飛ばしてデフォルトの設定で確認画面に直行するが、もっと細かく設定した方がいいと思う。
「次の手順」を選択しよう。

インスタンスの設定


インスタンスの設定では細かく設定できるが、基本デフォルトの設定で問題ない。
「ネットワーク:以前作成したVPC」だけ変更する。
「サブネット」の項目もよく変更する項目だが、今回はどちらのサブネットでもいいのでこのままとする。
もし、公開・非公開のサブネットをどちらも用意した場合には、公開の方を選択する。

「次の手順」を選択する。

ストレージの追加


このステップでは、仮想サーバにアタッチできる仮想ストレージを設定できる。
ストレージはサーバごとに異なる、というサーバ構成になるケースは多いだろう。そのための機能で、ストレージは付け替えが可能になっている。

今回はデフォルトの設定で問題ないだろう。
「次の手順」を選択する。

Add Tags


どうでもいいことだが、なぜここだけ項目名が訳されてないのだろう?
Add Tagsでは、インスタンスにタグ付けできる。
デフォルトでは「Name」のタグが付けられるようになっている。
適当につける。サービス名+「APTest」とかでいいかと。

「次の手順」を選択する。


セキュリティグループの設定


これから起動するインスタンスをどのセキュリティーグループを選択するか、をここで設定する。

「セキュリティグループの割り当て」で「既存のセキュリティグループを選択する」を選択して、すでに前回登録済みのグループを選択する。
もしセキュリティグループを作成していない場合はここでも作成できるので、新規作成して選択するといい。

画面下部の「確認と作成」を選択する。

インスタンス作成の確認


内容を確認して、問題なかったら画面下部の「作成」ボタンを選択する。

すると、このインスタンスにアクセスするためのキーペアの設定画面となる。
SSHで接続する際に、このキーを持っていないとアクセスできないようになっているセキュリティ機能なので、必ず新規作成か選択を行うこと。
新規作成の場合キーペアをダウンロードできるが、これはきちんとわかる場所に保存しておく。


これでインスタンスの起動が完了。インスタンスの管理画面でリストに追加されているはず。
リスト内の「インスタンスの状態」がrunninngになったら起動完了。


Elastic IPの関連付け


Elastic IPとはグローバルなIPの提供機能で、これをサーバに関連付けすることでサーバに直接アクセスできる。
ただし、Elastic IPは数に制限がある。(デフォルドで5つ)
サーバへの関連付けや関連解除は即時にできるので、これから編集するサーバに関連付けて接続する必要がある。

画面左部より「ネットワーク & セキュリティ→Elastic IP」を選択すると、Elastic IPの管理画面が開く。
ここで、画面上部より「新しいアドレスの割り当て」ボタンを選択すると、IPが割り当てるられる。

この段階ではIPが取得できただけで、関連付けられてはいない。
リストに表示されている、さっき割り当てられたIPにチェックを入れて、画面丈夫の「アクション」ボタンから「アドレスの関連付け」を選択すると、関連付けに関するダイアログが表示される。




「インスタンス」の項目のボックスを選択すると、インスタンスリストが表示されるので、ここから先ほど起動したインスタンスを選択する。
あとは自動的に入力される項目なので、修正する必要はない。
「関連づける」のボタンを選択すると、インスタンスにIPが付けられる。


SSH接続


サーバ修正のため、先ほど起動したインスタンスにSSH接続を行う。
SSHクライアントは自由に選んでもらっていい。
WindowsだったらPuttyとか、MacだったらvSSH(有料)なんかが接続先を保存できていい。
接続するにはSSHのキーファイルを指定する必要がある。
Macだったら、さきほどDLしたキーペアをそのまま指定するといいが、PuttyだったらPutty形式に変換する必要があったと思う。(参考

ホストは、先ほどのIPを指定するといい。
自分は割り当てられたIPに、AWS Route53の機能でサブドメインを割り当てているが、それはまた後ほど別記事で説明したい。
とりあえずはIP直指定で問題ない。

ポートは22を、UsernameはAmazon Linuxだったら「ec2-user」となっている。パスワードは、デフォルトでは設定されていない。
接続確認ができたらOK。
接続できない場合は、セキュリティグループの指定が正しいか、セキュリティグループのルール設定が正しいかを確認する。
(特にインバウンドのSSHの設定に関して、項目「送信元」の値が手元のPCのIPになっているかを確認して、なっていない場合は修正する。ドロップダウンリストから「マイIP」を選択すると自動的に手元のPCのIPが設定される)


Apacheのインストール


Apacheのインストールに関してはEC2に限った特殊な操作はないので、簡易に説明する。
別にNginxでもいいよ。
まあ、公式のここを参考にしてもいいし、別のサイトでも参考記事は腐るほどある。


Amazon Linuxはyumでパッケージ管理を行っている。
まずはパッケージのアップデートを行う。
$ sudo yum update -y

次にApacheをインストールする。
$ sudo yum install -y httpd

次にApacheを起動する。
$ sudo service httpd start

ついでに、ブート時に自動起動するように設定しておく。
$ sudo chkconfig httpd on




起動確認


ブラウザに
http://[設定したElasticIP]
と入力してアクセスすると、「Amazon Linux AMI Test Page」の画面が見えたらOK。

見えなかったらセキュリティグループの設定を見直した方がいいかも。


インスタンスからAMI作成


現在のサーバをバックアップする目的で、AMIを作成する。
画面左部から「インスタンス」を選択すると、インスタンスの管理画面が開く。
ここで、先ほど起動したインスタンスにチェックを入れて、画面上部の「アクション」ボタンから「イメージ→イメージの作成」を行う。



イメージ名はプロジェクトがわかるものと、サーバの種類と、あとバージョンを記載するのがいいのではないだろうか。
イメージの説明はGitのログみたいなものなので、何を適用したかを書いておくと後ほど分かりやすい。

画面下部の「イメージの作成」ボタンを選択すると、イメージ作成の「リクエスト」が送られる。
つまり、作成まで少し時間がかかるということ。

しばらくしたら、画面左部のメニューから「イメージ→AMI」を選択すると、先ほど作成したAMIが確認できる。



とりあえずEC2の起動からバックアップまでの一連の構築を説明した。
長かった・・・

ただ、まだ固定IPのままアクセスしたりと使い勝手が悪い。できの悪いレンタルサーバくらいのレベルでしかない。
今後は他サービスを使ったいい運用方法や、簡単なクラスタの構築方法などを説明していく予定。



0 件のコメント:

コメントを投稿