開発したWebサービスをどこで公開するか、これが意外と悩ましい。選択肢としては
共用サーバサービス
VPSサーバサービス
専用サーバサービス
自宅サーバ
などがあると思う。体感的には共用サーバは0〜5,000円/月、VPSは5,000〜20,000円/月、専用サーバは8,000〜100,000円/月くらいだろうか。自宅サーバはもちろん月額費用はかからないが、初期のサーバ代金、月々のネットワーク費用+電気代、熱対策、障害時の対応などを計算しておく必要がある。個人的には割に合わないと感じている。
外部のリソースを使うサービスでは、大抵初期費用がかかってくる。その後の費用は月額のみだが、品質や障害時の対応などで各社ばらつきがある(それが金額に反映されるのだが)。多少大きめのサービスを構築しようと思ったときには、これらでは役不足になることも多い。
特に複数台の構成(Web + App + DBなど)を考えると、専用サーバサービスであってもオプションを使う必要があったり、そもそもオプションがないこともある。そうしたことを踏まえると、価格の割に十分でない気がしている。
それではローカル開発後の公開までの道のりで断念しかねない。そこでAmazon EC2の利用を考えたい。Amazon EC2を使えば、仮想サーバでありながら十分なパワーを備え、Amazonレベルのサービス品質を誇るサーバを短時間で手に入れられる。まず今回はAmazon EC2を利用する前までの準備を説明したい。
アカウントの登録
まず最低限の準備としてAmazon EC2のアカウントを取得する必要がある。Amazon EC2はAmazon Elastic Compute Cloudの略で、仮想サーバを使ったルート権限のあるホスティングサービスだ。有料のサービスとなっており、利用にはクレジットカードが必要だ。登録はここから行う。
Amazon EC2のトップページ
次に気になる料金体系だ。
インスタンス料
インスタンスは次の3つが用意されている。
Small 1.7GB / 1CPU / 160GB HDD / 32bit ($0.1/時間)
Large 7.5GB / 2CPU / 850GB HDD / 64bit ($0.4/時間)
Extra Large 15GB / 4CPU / 1690GB / 64bit ($0.8/時間)
CPUは1.0〜1.2GHzのXeonとなっている。
データ転送料
データ転送料は次の通り。
$0.1/GB(受信)
$0.18/GB(送信)※ 最初の10TB/月まで
$0.16/GB(送信)※ 次の40TB/月まで
$0.13/GB(送信)※ それ以上
ということで2種類の料金が発生する。データ転送料は、よほど巨大なデータ(動画など)を連続して流さない限り問題はないだろうが、画像などを多用する場合は注意しておきたい。
Smallインスタンスを一ヶ月間使用した場合、$73/月($0.1×24時間×365日÷12ヶ月)かかる計算になる。後は転送料により料金が前後する。同様にLargeインスタンスを使った場合は$292/月($73×4)かかる計算になる。これが高いとみるか、安いとみるかは人によって違うだろうが、保守や初期費用を考えると十分ペイできると思われる。
アカウント&証明書
アカウントを取得したら、重要なIDに関する情報をメモしておこう。それは右上のメニューの「AWS Account Activity」と「AWS Access Identifiers」に表示されている。
メニュー。マウスを重ねると表示される。
アカウントID:数字12桁
アクセスキーID:数字/英大文字20桁
アクセス秘密キー:英数字40桁
AWS Account Activityには以下の場所にアカウントIDが記載されている。
モザイク処理している箇所に数字が記載されている
AWS Access Identifiersには次の箇所にアクセスキーID、アクセス秘密キーが記載されている。
アクセス秘密キーはクリックして表示される。
これらは忘れないようにしよう。次に必要なものをダウンロード&インストールする。初回の場合は証明書が作成されていないと思われるので、Create Newから作成する。
X.509証明書およびX.509秘密鍵(AWS Access Identifiersのページ下部)
専用のJavaツール(ここからダウンロード可能)
Java
AWS Access Identifiersの下の方に証明書関連のリンクがある。
次はダウンロードしたツールを配置していく。ホームディレクトリにフォルダ(例:ec2-keys)を作成し、その中に先ほどのX.509証明書ならびにX.509秘密鍵を入れる。 そして、環境変数に各種設定を行う。Windowsであれば、
EC2_PRIVATE_KEY:X.509秘密鍵のパス
EC2_CERT:X.509公開鍵のパス
Path:Javaツールのパスを加える
になる。LinuxやMac OSXであれば、
export EC2_HOME=~/ec2-keys
export PATH=$PATH:$EC2_HOME/bin
export [...]
Continue Reading