今回から実際にクラウドの利用シーンについて解説していきます。まず初回はAmazon Web Services(AWS)を取り上げます。
AWSの現状
AWSは現在最もメジャーであり,おそらく最も利用されているIaaSだと思います。最も利用されているクラウド,と書いてしまうとGmailなどのSaaSが入るので語弊がありそうですが,IaaSであればたぶん間違いなく最も利用されているサービスでしょう。
AWSについて簡単に説明すると,Amazonが運営するクラウドサービスであり,現在はUS,シンガポール,東京,アイルランド,サンパウロにデータセンターがあります。
サービス開始当初はUSのみで,日本で使うにはRTT(Round Trip Time)が遅いのがネックになっていましたが,東京リージョンの開設によってそのデメリットもなくなりました。
用途に応じたさまざまなサービス
また,当初はEC2とS3くらいであったサービスが,今では便利なサービスがたくさんラインナップされています。たとえばロードバランサであるELB,DNSサービスであるR53,HadoopサービスのEMR,NoSQLサービスのDynamo,RDBサービスであるRDSなどがあり,IaaSだけでなくPaaSやSaaSといえるサービスが増えています。
料金は当然従量制で,利用時間,容量,転送量などによって課金されます。
AMIという便利な仕組み
またAMI(Amazon Machine Images)という,マシン(EC2)の起動イメージを管理する仕組みがあることも,AWSの大きなメリットの1つです。
都度パブリックに公開されているAMIから環境を構築しても良いですし,自分で好みの環境を構築してAMIとして登録しておきそれをベースにカスタマイズするのも可能です。
たとえば,無難なAMIとしてはAmazon自身が提供しているAmazon Linuxのamazon/amzn-ami-pv-2012.09.0.x86_64-ebs(AMI ID ami-1624987f)が挙げられます。名前のpvとは,paravirtual(準仮想化),x86_64は64bit版,ebsはrootデバイスがEBSタイプという意味を表します。
32bit/64bitはケースバイケースですが,それ以外は明確な意図でもない限りparavirtual(これに対して完全仮想化はhvm),rootデバイスはEBS(もう1つはinstance store)にしておけば現状ほぼ間違いありません。
AWSの操作方法
ところでAWSを操作するにはいくつか方法があります。
まず1つ目はAWS Management ConsoleなどのWEB管理画面を使う方法。AWS Management Consoleは以前は挙動が不安定でしたがかなり改善されて使いやすくなって来ました。
ちょっとした操作をするときや,とりあえずAWSを触ってみたい時はこちらが良いと思います。
もう1つはEC2 API Toolsなどのコマンドラインのツールを使う方法です。
大量にインスタンスを起動したりシャットダウンしたりなどの処理はコマンドラインツールからでないとかなり厳しいと思います。バッチ化もできるので本番運用はこういったコマンドラインツールか,SDKを用いた自作コマンドの利用になると思います。
まずはKey Pairsを作成,あとはインスタンスを起動
まず最初に行うことはKey Pairsの作成です。これは何かというと起動したインスタンスに接続するためのSSHの鍵です。
次にAMIを選択してインスタンスを起動します。AWSは,無料使用範囲というものがあり,この範囲内であれば無料で利用が可能です。たとえば,EC2はmicroインスタンスであればサインアップしてから12ヵ月までは無料で使えるので活用しない手はありません。
作成したKey Pairsを選んで起動したあと,その鍵を使用してec2-userというユーザでSSH接続してみると普通にサーバにログインしているのととくに変わらないことがわかります。
容易な環境構築
先ほどのAmazon LinuxのAMIの場合デフォルトでは,とくになにもインストールされていませんが,yumは使える状態なので苦労せず環境を構築することができると思います。
最初は戸惑うこともあるかもしれませんが,一旦起動して接続できてしまえばVPSと同じに扱えることがわかるでしょう。
ちなみにインスタンスのIPアドレスはプライベートIPで,それがグローバルIPにマッピングされています。どのグローバルIPにマッピングされているかは,Management ConsoleのPublic DNSのところを見ればわかります。
また,Management ConsoleからCreate Imageを選べば,その時点でのスナップショットをAMIにすることができます。AMIを作成しておけば,同じ環境を大量に構築することが実に簡単にできます。個々のインスタンスの起動時間はだいたい2~3分くらいというところです。
EC2以外にも便利な機能がたくさん
AWSのメリットは,普通のVPSやホスティングと同じ感覚で使える点,そして,便利な機能がたくさん用意されている点でしょう。また,AMIの作成,再利用はもちろん,同じ環境を違うインスタンスタイプで起動したり,ディスクボリュームの容量をあとから変更したりもできます。
また,ここまで紹介したのはすべてAWSの一サービスであるEC2の機能であり,EC2以外にもストレージサービスのS3などもかなり便利で広く使われています。
たとえば,DropboxやTumblrはS3を利用しています。DropboxやTumblrほどのメジャーなサービスが,実はAWSの上で稼働しているというのはある意味驚きです。こういった事例を見ても,ネットサービスは大きくならないとインフラのスケールメリットが出ないというのはもはや時代遅れな考え方であるといえます。
AWSの欠点は?
もちろん欠点というか弱点がないわけではありません。
まず,前回記載したように,やはりシステム構成の自由度ではオンプレミスよりは劣ります。また,システム障害もそれなりの頻度では発生していますので,利用者側でそのあたりをカバーしていくことを念頭に置いておく必要はあります。
その他,クラウドというと必要なときに必要なだけリソースを利用できるというイメージがありますが,一度に大量のIPアドレスやインスタンスが必要になったとき,AWS側のリソース不足により供給が難しい場合もあります。
これらの点は,使用する際に注意しておきたいポイントです。
AWSのサポートについて
最後にAWSのサポートについて補足です。
JAWS-UG(AWS User Group Japan)という活動があり,ここはAmazon Japanのスタッフも深く関わってサポート活動をしています。
各種フォーラムがあることに加えて,Twitterでも#jawsugというハッシュタグで有用な情報が提供されています。こういったローカルな情報が提供されているところもAWSの良い点です。
AWSがワールドワイドで最もポピュラーなクラウドサービスの1つであることは間違いありません。最初にクラウドに触って見るには,AWSが最適解の1つであると言えるでしょう。
- クラウド連携スキルを高める無料ハンズオントレーニング開催!
クラウド環境でのアプリケーション開発事例が増えつつある現状を踏まえ、開発者向けに Windows Azure をテーマとした無料のハンズオントレーニングを連続開催します。
詳細,ご参加はこちらから↓