これだと会えないと開発の機会がなくなります。困ります。
ということで、
「インターネット上にテスト環境が欲しい!」
と思い、Amazon EC2 の無料使用範囲を利用してテスト環境(ステージング環境?)を作ってみることにしました。
初めの一歩
多分このドキュメントなんだと思います:Get Started with EC2 with a Linux/UNIX Instance
手順として
- サインアップ
- インスタンス(仮想マシン)の作成と起動
- インスタンスへのアクセス
- インスタンスの terminate
サインアップ
サインアップは普通にweb上のサービスを利用する感じで進みます。途中、ケータイへ Amazon さんから自動着信&webページに表示された4桁の番号入力を求められるのが普通でない感じ。サインアップが終わると、AWS Management Console というWebサイトが使えるようになると思います。このWebサイトでインスタンスの管理(作成、起動、一時停止、停止などなど)を行えます。
あ。ssh の鍵生成はこのタイミングでやっておくとよいと思います。
インスタンスの作成と起動
インスタンスの作成のプロセスも、Web上のクリックぽちぽちで進められます。今回は Quick Launch Start のウィザードを使って、AMI Linux 2011.9 x86_64 を立ち上げてみました。
Amazon Linux AMI についてのドキュメント を読んでみると、
Amazon Linux AMI is similar to CentOS in file system layout and package management. Applications built for CentOS should run without recompilation on the Amazon Linux AMI.と書いてあって、「CentOS と同様のファイル構造とパッケージ管理」というところを重視して思わず選びました。手元の環境(CentOS 6 on VMware & Thinkpad)に近い方が楽だと思ったので…。
Quick だとほとんど選ぶことは無いのですが、インスタンスのタイプが micro (= 無料使用範囲で使えるインスタンス)であることだけはしっかりと確認しました。
インスタンスの起動はAWS management console から行います。これも「クリックぽち」です。
インスタンスへのアクセス…の前に
インスタンスが持っているFQDNの確認と、セキュリティグループの概念の理解が(多分)必要です。インスタンスのFQDNを確認するには、AWS management conslole から確認します。これがないとsshできませんし…。
セキュリティグループは、「ネットワークの口に存在するファイアウォール(のルールセット)」に相当するものだと思っています。
定義するものはファイアウォールルールそのもので、そのルールをセキュリティグループとしてまとめ、各インスタンスにどのセキュリティグループに属させるかを設定します。
複数の同様のサーバを運用する場合にセキュリティグループが威力を発揮しそうです。今は一台なので、OS上でiptables を走らせても(セキュリティレベルと言う意味では)あまり変わりないかもしれません。
インスタンスへのアクセス
SSH の鍵があって、FQDN が分かっていれば、後は ssh コマンドを走らせるだけです。…が、一度引っかかりました。AWS management console で生成した ssh の秘密鍵をダウンロードするんですが、そのパーミッションを 6xx から 400 にしないといけません。秘密鍵ですもんね。
普段 ssh-keygen で作ると自動的に 400 だと思いますが、ダウンロードファイルだから普通のパーミッションになってました。
インスタンスのterminate
「停止」と言う言葉を使わずに terminate と書いたのは、ちょっと悲しい体験をきちんと伝えたかったからです…。停止っていうと、僕の中では再開できるものだったんです。が、ご存知の通り、インスタンスを terminate するとそのインスタンス上のデータは破棄され、再利用することはできません。
"Get started" を読むと Note として、
You cannot restart a terminated instance. However, you can launch additional instances of the same AMI.と書いてあるのでちゃんと読めという話なんですが、ドキュメントの手順どおり terminate してパニックになりました。
「このインスタンスをしばらく使わないから課金されない状態にしたいわー」と言うときはインスタンスに対する操作として stop というのがあるので、そちらを使うと start ←→ stop を行き来できます。
こんな感じで Amazon EC2 に Linux サーバを立てて、その上で rails の環境を動かしています。
立ち上がった Linux サーバはいろいろひどい状況なので、もう少しマトモな環境にしていかねば…。
0 件のコメント:
コメントを投稿