Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
ラベル AWS の投稿を表示しています。 すべての投稿を表示
ラベル AWS の投稿を表示しています。 すべての投稿を表示

2013-03-05

Amazon EC2 ファースト・トライ (4) Elastic IP Address — 固定 IP アドレスの落とし穴

上記の続き。Amazon EC2 ファースト・トライ記事はこれで一区切りの予定。

Apache の起動時にハマったことだけど、EC2 インスタンスは起動毎に Public DNS が変わる。つまり、再起動するたびにログイン・サーバーが変わるし、Apache で表示させるウェブ・ページも別の URL に変わる。

Elastic IP Address の設定を行なうと、固定 IP アドレスを取得できる。インスタンスと IP アドレスが紐付けされている限り、課金はされない。

設定

EC2 のダッシュボードから、Elastic IPs を選択。

You do not have any Elastic IP addresses allocated.
Click the Allocate New Address button to reserve an Elastic IP address.

固定 IP アドレスが振られてないよ、下のボタンを押しな。とメッセージが出る。

「Allocate New Address」ボタンを押下。

設定そのままで「Yes, Allocate」をクリック。

IP アドレスが決まった。今回は 54.249.248.51。でも、まだ固定アドレスを取得したにすぎない。複数のインスタンスを持っていたら、どのインスタンスに固定アドレスを振るか設定しなくちゃいけない。この設定はインスタンスの数が一個でも同じ。

画面右上の「Associate Address」ボタンをクリック。IP アドレスを振るインスタンスを選んで「Yes, Associate」を押す。

これで設定終了。

テスト

インスタンスを停止させる、その後、開始する。今までなら、これで Public DNS が変わってた。今は IP アドレスからアクセスできるはず。

$ ssh -i ~/.ssh/name.pem ec2-user@54.249.248.51

ログインできた!!

$ sudo /etc/init.d/httpd start

ウェブ・サーバーを起動して、http://54.249.248.51 にアクセス。ウェブページが見れた!!

気をつけたいこと

こんな記事をつけた。

アタッチしていないElasticIPには1時間あたり$0.01課金される模様。 使っていないから無料と思いきや、遊ばせておくと課金ってことね。

take some notes 【システム開発メモ Flex AWS DB WEB Android etc】 AWS ElasticIP 料金 ご注意 より引用

確かに「IP アドレスを紐付け」していると無料と書いてあった。それは逆を返せば、Elastic IP Address の設定をしてインスタンスを停止させていると、料金が発生するということ。

サービスが安定してほぼ 24 時間動くならまだしも、日曜プログラミングしている人やもう使わなくなったけどただ残してあるサービスなんかに Elastic IP Address 設定をしておくのはもったいないかもしれない。少額だけどね。

Elassonic IP Address を解放する

Elassonic IPs の設定画面で、解放したいアドレスを右クリック。「Disassociate」を選択。その後、「Release Address」ボタンを押す。以上。

これでもう、54.249.248.51 でアクセスしても何も起きない。

あとがき

今回、簡単に EC2 で遊んでみた。遊びなので、固定 IP アドレスは解放した。

一度やり方が分かれば 10 分ちょっとで設定が終わる。その代わり、初めての人は知らない概念に悩まされたり、値段体系を調べたりと時間を喰うと思う。時間のあるうちに一度試しておけると、後々のためになるかもしれない。

本を一冊くらい読んどく方が良いのかな〜?

Amazon Web Services クラウドデザインパターン実装ガイド
大澤 文孝 玉川 憲

4822211983
日経BP社 2013-02-07
Amazonで詳しく見る
by G-Tools

Amazon EC2 ファースト・トライ (3) Amazon EBS にファイルを保存

上記の続き。Amazon EC2 ではインスタンスを停止すると、ファイルが消えるという。これに対して Amazon は EBS と S3 という二種類の外部ストレージ・サービスを持つ。上記スライドでは EBS が使われていたので、これを使ってみる。

EBS とは...

EBS は Elastic Block Store の略。Amazon S3 が単体で使えるストレージなのに対して、EBS は EC2 と一緒に使うことが前提なストレージか。EBS の特徴は Amazon の公式ページに詳しい。

ボリューム・タイプは 2 つ。「スタンダード・ボリューム」と「プロビジョンド IOPS ボリューム」。前者はコスト重視、後者はパフォーマンス重視。

費用はスタンダード・モデルで 1 GB ごとに月 0.1 ドル。ただし、値段は「リージョン」によって徴妙に変わる。米国バージニアでは $0.1 だけども、アジアパシフィック (東京) では $0.12 になる。微々たる違いだけど、あんまり言及してるサイトがなかった。

ぼくが使ってる無料利用枠では EBS が 30 GB 提供される。無料期間が終わると、30 * 0.12 = $3.6/月 となるので注意が必要かな。まだ Amazon Web Service を使い初めたばかりで右も左も分からない。一年後には何が最良なのか分かる様になってる... といいな。

ログインして確認

前のエントリーでインストールした Apache がまだあるかどうか確認。

$ ls /etc/init.d/httpd
/etc/init.d/httpd

あれ、あるね。

試しにホーム・ディレクトリーに foo.txt を作成して、インスタンスを停止・開始してみる。

$ touch foo.txt

EC2 のダッシュボードから、インスタンスを停止。その後、開始。再ログイン。

$ ls
foo.txt

う〜ん、これは、どういうことかな? スライドの説明を読むと

今回立ち上げたEC2インスタンスのAMIは、仮想外部ディスク(EBS)を伴うAMI(EBS-bootと呼ばれる)なので...

というあたりが肝かな? 最初から EBS を使ってる?!

そうじゃないモデルを選んだ場合は、ファイルが消えるのかな。後でまた調べよう。

EBS のアタッチ

EC2 のダッシュボードから「Volumes」タブを選択。すると、一つ何か Volume が動いてる。スライドの説明だと、ここから State が Available な Volume をアタッチするんだけど、ぼくの手元では State が既に in-use になっていて「Attach Volume」なる選択肢が出ない。

テストなんで、新しくボリュームを作ってみる。

左上の「Create Volume」をクリック。最小 1 GB のボリュームを作る。

新しく作ったボリュームは State が available なまま。右クリックから「Attach Volume」を選択。古い Volume のチェックを外すのがコツ。そうしないと、右クリックしても「Attach Volume」が現れない。

インスタンスを指定。Device が /dev/sdf なことを確認。「Yes, Attach」をクリック。

State がすぐに in-use になった。

インスタンスから作成したボリュームにアクセスできるようにする。手順は次の通り:

  1. ファイル・システムの作成
  2. マウント用ディレクトリーの作成
  3. マウント
$ sudo mkfs -t ext4 /dev/sdf
mke2fs 1.42.3 (14-May-2012)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
65536 inodes, 262144 blocks
13107 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=268435456
8 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376

Allocating group tables: done
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

$ sudo mkdir /ebs
$ sudo mount /dev/sdf /ebs

/dev/sdf を ext4 でフォーマット。/ebs にアクセス・ポイントを作って、mount コマンドでマウント。

これで EBS で作った新しいボリュームに /ebs からアクセスできる。EBS が壊れない限り、/ebs 以下に置いたファイルは削除されない。

あとがき

EBS の正体が分からずに困った。今も、実は良く分かっていない。とりあえず、無料期間は最大 30 GB のファイル・ストレージを持てたということで納得しよう。

Amazon EC2 ファースト・トライ (2) Apache の起動

Amazon EC2 ファースト・トライ 〜サインアップから EC2 開始・終了まで〜 の続き。

先のエントリーで参考にしたスライドに Web サーバーを公開する方法が書いてあったので、試してみる。

ログイン

まずは停止した Amazon EC2 インスタンスを起動。

前エントリーを参考に Amazon EC2 にログイン。

おっと、ログインに失敗。EC2 のダッシュボードから Instances を選び Public DNS をチェックしてみると、前回と違う。コレか。新しい Public DNS をコピーして、ログイン。成功! インスタンスを停止するたびに Public DNS は変わるのかな?

httpd のインストール

yum コマンドを使ってウェブ・サーバー Apache をインストール。Apache を起動する。

$ sudo yum -y install httpd
$ sudo /etc/rc.d/init.d/httpd start

yum の -y オプションは、インストール中に yum が聞いてくることにデフォールトで yes を返すオプションらしい。rpm と apt-get は使ったことあるけど、yum はほとんど初めてなので勝手が分からない〜。

ウェブ

http://Public DNS にウェブ・ブラウザーからアクセスしてみる。

ほい。ウェブ・ページが表示された。

あとがき

ログインには見事にハマッた。意外な盲点。初めてのユーザーはよく躓きそう。あと、ssh -i key ec2-user@PUBLIC_DOMAIN とすべき所を、勢いあまってユーザー名を消してしまうミスもやりそう ssh -i key PUBLIC_DOMAIN。

Amazon EC2 ファースト・トライ 〜サインアップから EC2 開始・終了まで〜

Amazon EC2 の名前ばかり知っていて、どんなことができるのか分かっていない人間がここに一人。重い腰を上げて Amazon EC2 の設定をしてみた。公式料金表によると、「新規ユーザー」は「マイクロ・インスタンス」の 750 時間使用が一年間タダとのこと。

サービス開始に必要なものは以下の通り (無料ユーザーであっても):

  • クレジット・カード
  • 電話 (Amazon から電話がかかってくる)

設定は、下記スライドを参考にした。

EC2 の起動からログインまでを書く。

詳細な解説及びスクリーン・ショットはスライドにあるので極力省略。作業手順を書いてゆく。

アカウント作成

  1. Amazon のページからアカウントの作成を行なう (例えば料金表ページに「今すぐサインアップ」ボタンがある)
  2. 既存の Amazon アカウントを使うか、新規作成するか問われる。
  3. 「問い合わせ情報」に「氏名・国・住所・市区町村・都道府村・郵便番号・電話番号」を半角英数字で入力 (日本語は使えない!!)
  4. クレジットカード情報を入力
  5. 番話番号を入力。「確認用に自分に電話をする」ボタンを押す
    • 画面に PIN 番号が表示される
    • 電話が Amazon からかかってくるので、PIN 番号を入力
    • 電話は日本語なので安心されたし
  6. Amazon から確認メールが届く。アカウントにアクセスして、アカウント作成終了。

自分のアカウント・ページに到達。ぼくの環境をスクリーン・ショットに撮った。

AWS のアカウントを作ったはずなのに、画面に AWS アカウントをお持ちではありませんか? 今すぐ申し込む という文言が不安を誘うが、AWS のアカウントはちゃんと作成できているので心配ない。

以降のログインは、下記 URL を使う。

EC2 の起動

EC2 の起動作業に入る。

  1. アカウント画面から「AWS Management Console」をクリック
  2. ログイン画面が現れるので、登録したメール・アドレスとパスワードを入力する
  3. 利用可能な Amazon のウェブ・サービスが並ぶ (ウホッ)
  4. 「EC2」を選択
  5. EC2 のダッシュボードに入る (ここから先は英語の画面)
  6. EC2 を起動する地域を日本国内にする
    • 右上のメニュー、「Help」の隣に EC2 を動かすサーバーのある地域が表示される
    • 無論、日本でサービスを行なうなら、日本でサーバーを動かす方が良い
    • ぼくの場合、「N. Virginia」(アメリカじゃん!!) になっていた
    • 地域を Asia Pacific (Tokyo) に変更
  7. 「Launch Instance」をクリック
  8. 「Classic Wizard」をクリック (Quick Launch Wizard という選択肢もある)
  9. AMI (Amazon Machine Image) の選択画面で「Amazon Linux AMI 2012.09.1 64bit」を選択 (星印は無料使用枠適用を表す)
  10. 「Number of Instances」が 1 に、「Instance Type」が「T1 Micro (t1.micro, 613 MB)」になっていることを確認して次へ
  11. 「Advanced Instance Options」には手を触れず次へ
  12. 「Storage Device Configuration」も手を触れず次へ
  13. 名前付け画面。とりあえず「Value」に「ataka.demo」と入力
  14. ssh の鍵作成。「Create a new Key Pair」を選びキーの名前を入力する
    1. 「Create & Download your Key Pair」をクリック
    2. 秘密キーが「name.pem」という名前でダウンロードされる (name 部分は各自好きな名前を)
    3. 秘密キーを ~/.ssh 以下に保存
      $ mv ~/Downloads/name.pem ~/.ssh
      $ chmod 400 ~/.ssh/name.pem
  15. 「Custom TCP rules」で「HTTP」を選択して、「Add Rule」をクリック
  16. 確認画面が現れるので、「Launch」ボタンを押す
  17. 引き続き設定を... と促されるが、「Close」をクリック

EC2 のダッシュボードに戻る。「Instances」タブが表示されて、今、作った AIM の State が running になっているのを確認。

これで EC2 の設定・起動は終了。

この後のログイン作業のために、Public DNS 情報をコピペしておく。「インスタンス」の行をクリックすると詳細情報が下に現れるので、スクロールして「Public DNS」の中身をコピー。

ssh でログイン

ssh コマンドでログインしてみる。

$ ssh -i ~/.ssh/name.pem ec2-user@YOUR_PUBLIC_DNS
       __|  __|_  )
       _|  (     /   Amazon Linux AMI
      ___|\___|___|

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

ログイン・プロンプトが現れた!!

なんか、セキュリティ・アップデートが必要だと言っているので sudo yum update を実行しておく。

一応、チェック。

$ echo $SHELL
/bin/bash
$ which emacs
/usr/bin/which: no emacs in (/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/aws/bin:/home/ec2-user/bin)
$ which ed
/bin/ed

なるほど、shell は bash。デフォールトで Emacs エディターは入っていない。ed エディターは最低限入ってるから問題なし! と。

EC2 インスタンスの停止

スライドから引用。

EC2インスタンスを立ち上げたままにしておくと課金が続くので、不要になったらEC2インスタンスを止めておきましょう

EC2インスタンスには、終了(Terminate)と停止(Stop)の2種類があります

停止すると、EC2 の稼動料金はかかからないがEBS(ディスク料金)はかかります。しかしデータを保存しておいて、またサーバを立ち上げられます

終了するとサーバー、データともに完全に無くなります

EC2インスタンスの停止方法は次の通り:

  1. ダッシュボードから EC2 インスタンス一覧を表示する
  2. 停止したい EC2 インスタンスを選択し右クリック
  3. 「Instance Lifecycle」から「Stop」を選択
  4. 確認画面に対して「Yes, Stop」を選ぶ

少し時間がかかるけど State が「stopped」になって EC2 インスタンスが終了した。

あとがき

スライドには、HTTP サーバーの起動とか ERB の設定とかあったけど、まずはログインと停止までやっておけば最低限のことは出来るでしょ。続きはまた書く。