ヌートリ日記

開発というより環境構築系のブログ

EC2の立ち上げとWebサーバ公開まで

EC2とは?

Amazon Elastic Compute Cloud(Amazon EC2)とは、クラウド内で規模の変更が可能なコンピュータ処理能力を提供するウェブサービスです。
そして、ウェブスケールな処理能力を開発者が簡単に利用できるよう設計されています。

簡単に説明

今までのレンタルサーバでは移行する場合新しくサーバを借りて現在のデータを移行先に移動する必要がありました。 Amazon Elastic Compute Cloud(以降、EC2と省略)では数クリック程度でサーバの移行が可能です。

気になる料金

サーバをどこに置くか選べるため、場所ごとに若干価格は違う。
東京であれば一番安い物で、マイクロ 「1時間あたり$0.027」

24(時間) * 30(日) * 0.027($) * 90(円) = 1749.6(円) + α(トラフィック) (2013年1月10日現在)

トラフィック
データ転送受信 0円

データ転送送信
最初の1GB/月 $0.000 GB あたり
10 TBまで/月 $0.201 GB あたり
次の 40 TB/月 $0.158 GB あたり
次の 100 TB/月 $0.137 GB あたり
次の 350 TB/月 $0.127 GB あたり
次の524 TB/月 お問い合わせ
次の 4 PB/月

トラフィック量とは

データ転送受信
ユーザーがサーバに画像をアップロードした。
外部サイトからデータを持ってきた。

データ転送送信
ユーザーがサイトを見た
ユーザーが画像を見た

つまり、ユーザーが1Mある画像に2000回アクセスした場合
0.201($) * 2(G) * 90(円) = 36.18(円) の料金が発生します。

今回ポイントとなるキーワード

インスタンス
Key Pair
Security Group

インスタンス : サーバ本体
Key Pair : インスタンスに接続するのに必要なもの
Security Group : インスタンスに接続可能なPortを設定するもの

EC2のインスタンスを立ち上げる

  • 右上のリージョン(サーバの置いてある場所)がTokyoになっているか確認
  • 左側のメニューからInstancesを選択
  • Launch Instance → Classic Wizardを選択し次へ進む
  • 今回はAmazonが用意しているデフォルトの「Amazon Linux AMI 2012.09」の64bitを使用します。

  • 特に変更をする必要はありませんが重要な点だけ説明しておきます。
    Instance Type : サーバのスペック、EC2の料金体型
    Availability Zone : 日本国内のサーバの場所

  • 特に変更する必要はない

  • 管理しやすいように名前をつける

  • Key Pairの作成、名前は立ち上げるサーバに関連するものにした方が良い(このファイルは紛失すると再発行ができないのでしっかりと管理する)

  • Security Groupの作成、こちらもサーバに関連するものにした方が良い
    とりあえず今回は名前だけつけて次に進む

  • 完了、サーバが立ち上がるまで2,3分かかります。
  • 左側のメニューよりInstancesを選択すると、先ほどまでなかったインスタンスが立ち上がっています。

サーバに接続する

筆者の環境 : MacOSX 10.6.8

  • まず接続先の情報を取得します。 先ほどAWSの管理画面より、インスタンスが立ち上がったのを確認したと思いますが、そちらをクリックしてください。
    このような文字列が画面下の方に現れると思います。
ec2-***-***-***-***.ap-northeast-1.compute.amazonaws.com

こちらが接続先です。

  • 次に接続するためのキーを少し修正します。
    先ほどダウンロードしたKey Pairを使用します。(.pemファイル)
    Key Pairのパーミッションを変更します。
    ターミナルを開いて
    chmod 600 [Key Pairの場所]

  • SSHで接続するためにPortの22番を開放する
    左側のメニューから「Security Groups」を選択
    先ほど作ったSecurity Groupをクリック
    下部にInboundというタブが出てくるのでそちらをクリック
    Create a new rule: Custom TCP rule (通信方式)
    Port range : 22 (ポート番号)
    Source: 0.0.0.0/0 (接続を許可するIP)
    Add Ruleをクリックし、右側に画像のように追加されたのを確認する
    Apply Rule Changesをクリックし、反映させる(忘れがち)

  • 接続 ターミナル上で以下のコマンドを入力してください
    ssh -i [Key Pairの場所] ec2-user@[接続先]
    (例) ssh -i key_pair/test.pem ec2-user@ec2----.ap-northeast-1.compute.amazonaws.com
    Are you sure you want to continue connecting (yes/no)? と聞かれた場合は「yes」

  • エラー例

  • 何も反応しない
    Security Groupの設定が間違っている

  • WARNING: UNPROTECTED PRIVATE KEY FILE!
    Key Pairのパーミッションの変更ができていない

  • Permission denied (publickey).
    Key Pairを選択できてない

  • 接続成功した場合
       __|  __|_  )
       _|  (     /   Amazon Linux AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-ami/2012.09-release-notes/
There are 3 security update(s) out of 43 total update(s) available
Run "sudo yum update" to apply all updates.
[ec2-user@ip-***-***-***-*** ~]$

ブラウザでサーバにアクセスできるようにする

sudo yum -y install httpd (Apacheのインストール)
sudo service httpd start (Apacheの起動)
先ほど22番を開けたSecurity Groupと同じように80番も開ける(ブラウザでアクセスする場合デフォルトでは80番になる)
ec2-***-***-***-***.ap-northeast-1.compute.amazonaws.com にブラウザでアクセス

以下のようなページが表示されれば無事完了です。
お疲れ様でした。

関連記事