春ということで、Amazon Web Services(AWS)をはじめてみませんか。
AWS盛り上がっていますね。2011年3月に東京リージョンができたことで、そろそろ触ってみようかなというPHPユーザの方も多いかと思います。
そんなあなたへ、AWSをはじめる際に役立つ情報をご紹介です。
1. AWSアカウントを新規作成して、EC2の利用申し込みを行う
まずAWSのアカウントを作成して、EC2の利用申し込みを行います。
手順については、AWSエバンジェリストの @KenTamagawa さんが書かれた以下の資料が参考になります。このとおりに進めていけば、おおよそ問題無いと思います。
進める中で自分が詰まった点は以下。
郵便番号、電話番号にはハイフンを
郵便番号、電話番号はハイフンが必要なので入力するようにして下さい。
書式は日本国内のもの、郵便番号8ケタ(ハイフン入り)、電話番号は12〜13ケタ(ハイフン入り)で大丈夫です。
電話にびびらない
EC2の利用申し込みでAmazonから電話がかかってくる場面があります。
実は、はじめてアカウントを作成して利用しようとした時は申込画面も英語版しか無かったので、英語な人から電話がかかってくるのかと思って、それはそれはびびっていました。気持ちの整理を付けるために2,3日かかった記憶があります:D
まあ冷静に考えてみれば分かりますが、人がかけてくるわけではなく、機械がかけてきます。電話を取るとアナウンスが流れるので、あとは画面に表示された暗証番号をプッシュで入力すればokです。(人がかけてくる場面を想像すると面白いですが:-p)
暗証番号を入力するとすぐに次の画面に遷移するので、これはこれで近未来な感じがして感動しました。
クレジットカードが必要
アカウント作成、EC2の利用申し込みは無料ですし、サービスを利用(EC2インスタンスを起動など)しない限りは費用は発生しませんが、クレジットカードの登録は必須となります。ご注意を。
2. EC2を触ってみる
では実際にブラウザでAWS Management ConsoleへアクセスしてEC2インスタンスを起動してみましょう。
この手順についても、@KenTamagawa さんが書かれた資料が参考になります。
補足としては以下の点あります。
SSHログインユーザ
このスライドのようにAmazon Linuxを利用する場合は「ec2-user」ユーザでSSHログインして下さい。他のOSで起動した際は、rootユーザでログインする場合もあるので間違えないようにご注意を。
SSHコマンドでログイン
SSHでログインするツールは、sshコマンドでも何でも良いです。その際はダウンロードした秘密鍵を -i で指定して下さい。
$ ssh -i /path/to/demo-key.pem ec2-user@PUBLIC_DNS_HOST
なお手元のMacではPublic DNSにあるFQDNを指定すると「ControlPath too long」というエラーが発生します。こういった場合は、Public DNSからIPを引いて、IP直で指定すればログインできます。(ただしIP変更が起こる場合があるので、可能ならFQDNでログインした方が良いです。)
$ dig ec2-xxx-xxx-xxx-xxx.ap-northeast-1.compute.amazonaws.com xxx.xxx.xxx.xxx $ ssh -i /path/to/demo-key.pem [email protected]
PHPのインストール
Amazon LinuxでPHPを利用するには、yumでインストールするだけです。
$ sudo yum -y install php
Amazon LinuxでインストールされるPHPのバージョンは、5.3.6です。(2011/04/12現在)
$ php -v PHP 5.3.6 (cli) (built: Mar 29 2011 19:13:32) Copyright (c) 1997-2011 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies
あとは必要に応じて、yumコマンドやpear、peclコマンドで追加していきましょう。
3. AWS SDK for PHP
まずAWSを利用する準備が整いました。
これからEC2インスタンス(サーバ)のセットアップをして、S3やEBS、RDSなどなどを活用していくと思うのですが、PHPerなら是非おさえておきたいのが「AWS SDK for PHP」です。
AWSはクラウド環境として多種多様なサービスを展開しているのですが、そういったサービスをAPIで操作することができます。例えばEC2インスタンスの起動、停止といった作業がどこからでもAPIで操作できるわけです。このAPIが揃っているのがAWSの特徴で、なかにはR53のようにAPIでのみ操作可能(AWS Management Consoleでは操作できない)なサービスがあるくらいです。
このAPIを活用すれば、独自の管理コンソールを構築することも可能で、実際そういったサービスも外部ベンダーから提供されています。
そんな便利なAPIなのですが、このAPIをPHPから簡単に操作できるようにSDKが提供されています。それが「AWS SDK for PHP」です。
3-1. 要件
AWS SDK for PHPは以下の環境で動作します。
PHPのバージョンさえクリアしておけば、あと必要なのはcURLくらいでしょうか。
ちなみに2.で構築したAmazon Linux環境のPHPでは、下記条件は全て満たされていました。
- PHP5.2以上(5.2.14 or 5.3.x推奨)
- SimpleXML / JSON / PCRE / SPL
- cURL PHPエクステンション(HTTPSサポート)
- file_get_contents() / file_put_contents() でファイルシステムを読み書きできる環境
3-2. インストール
AWS SDK for PHPはPHPソースで書かれたライブラリです。ダウンロードするだけで利用できますので、お好みの方法でインストールして下さい。
- http://aws.amazon.com/sdkforphp からダウンロード
- git
- subversion
- pear
ここではgitでインストールしています。
$ sudo yum -y install git //git のインストール(git環境があれば不要) $ git clone git://github.com/amazonwebservices/aws-sdk-for-php.git AWSSDKforPHP $ ls AWSSDKforPHP
要件やインストール方法はドキュメントがあるのでこちらを参考にして下さい。
=> Getting Started with the AWS SDK for PHP
3-3. 認証情報の取得
AWS SDK for PHPを実際に利用する際はAWSアカウントの認証情報が必要となります。
認証情報はAWSのWebサイトで取得できます。
まずグローバルナビの「アカウント」をクリックします。クリックするとアカウントのメニューが表示されるので下図のように「セキュリティ証明書」をクリックします。
セキュリティ証明書ページが表示されたら(もしログイン画面が表示されたらログインして下さい)、下図の「アクセス証明書」を表示します。ここにある「アクセスキーID」「シークレットアクセスキー」が認証情報となります。
3-4. サンプル
では実際にAWS SDK for PHP(以下、SDK)を使ってサンプルを作ってみます。
ここでは全リージョンのEC2インスタンスを取得して表示してみましょう。
サンプルファイルはSDKが入っているAWSSDKforPHPディレクトリと同じ階層に設置します。
$ ls AWSSDKforPHP sample.php
サンプルソースは以下です。
まず require_once() でSDKを読み込みます(1)。これはどのサービスに対する処理を書く時も同じです。
次は、処理対象のリージョンを連想配列に格納しています(2)。SDKで処理を行う際は対象のリージョンをセットする必要があります。今回のサンプルでは全リージョンに対して処理を行うので、連想配列に格納しておきます。
次に、EC2へ処理を行うAmazonEC2クラスをインスタンス化します(3)。コンストラクタにて3-3で確認した認証情報をセットしています。第1引数が「アクセスキーID」、第2引数が「シークレットアクセスキー」となっています。
書籍のサンプルなどを見ると認証情報はSDK用の設定ファイルである「config.inc.php」に記載する例が多いのですが、個人的には認証情報は自分で管理したいのでコンストラクタで渡す方法がやりやすいです。
ここからAmazonEC2インスタンスに対して処理を行います。
まずset_region()で処理対象のリージョンを設定します(4)。そしてdescribe_instances()で対象リージョンのEC2インスタンス情報を取得して(5)、リージョン名とインスタンスIDをprintf()で出力しています。
この処理を各リージョン毎に行います。
3-5. 実行
ではサンプルソースを実行してみましょう。
下記結果から、us-westリージョンで1つ、ap-northeast(東京)リージョンで2つのEC2インスタンスが存在していることが分かります。
$ php sample.php [us-west-1] i-xxxxxxxx [ap-northeast-1] i-yyyyyyyy [ap-northeast-1] i-zzzzzzzz
このようにAWS SDK for PHPを利用すると簡単な記述でAPIを実行して、AWSを操作することができます。
4. 参考書籍
Webに様々な情報があるとはいえ、これからはじめるなら、やはり書籍などまとまった情報をじっくり学びたいところです。
そこでAWSをこれからはじめるPHPerにおすすめな本をあげてみました。
G-CLOUD Magazine 2011
クラウド関連の情報が掲載されているムックです。AWSの特集があり、その中にAWS SDK for PHPの記事が掲載されています。
他にもAWSの記事も多く掲載されており、特にgumiさんの「Amazon EC2 API Tools」を活用したサーバ構築を自動化する記事が参考になりました。
Amazon Web Servicesガイドブック
AWSを活用するPHPerにはおすすめの定番本です。
この本ではAPIを利用してAWSを活用する実例が多数掲載されているのですが、それらのサンプルソースが全て「AWS SDK for PHP」を利用したものになっています。個人的にはタイトルを「AWS SDK for PHPガイドブック」にしても良いんじゃないかと思うくらいPHP満載のAWS本です。
内容も単に機能紹介を並べているのではなく、実際のWebサイトなどの構築を通じてAWSの各サービスを活用するアイデアが書かれています。
AWS SDK for PHP(aws.amazon.com)
書籍では無いですが、AWSサイトでは「AWS SDK for PHP」のドキュメントが公開されています。
導入方法にTips、そしてリファレンスが揃っており、SDKを活用していくには必須の内容となっています。
AWSを触ってみましょう
いよいよクラウドの本格利用がはじまる今だからこそ、多種多様なクラウドサービスを個人で利用できるAWSを通じてクラウド利用の勘所を掴んでおくというのが大切だと思います。
さらに「AWS SDK for PHP」の存在により、PHPコードで手軽にそういったサービスをプログラムで操作することができます。
無料利用枠も提供されていますので、まだの人はぜひ一度AWSを使って、「プログラマブルデータセンター」と呼ばれるクラウド環境を体感してみてください。
コメント (Close):2
トラックバック:6
- このエントリーのトラックバックURL
- /blog/2011/04/lets_start_aws_for_phper.html/trackback
- Listed below are links to weblogs that reference
- さあ、AWSをはじめよう! for PHPer from Shin x blog
- trackback from orante 11-04-22 (金) 13:07
-
エフセキュアとかmallocとか…
Cinema4Dメモ: Cinema4D入門PDFの続き 流石にあまりに入門すぎるけど、指導用にはちょうどいいかな。感謝。 それにしても、Cinema4dは日本語情報があまりに少ない。 CINEMA 4Dスーパーガイド [単行本] / 上田 和浩 (著); エクシードプレス (刊) これのレビューとか、評価……
- pingback from 無料で使えるクラウド環境まとめ+α – Yuyak 11-05-07 (土) 2:56
-
[…] さあ、AWSをはじめよう! for PHPer – Shin x blog […]
- pingback from レンタルサーバ | ホームページクリップ 12-07-06 (金) 0:26
-
[…] さあ、AWSをはじめよう! for PHPer – Shin x blog http://www.1×1.jp/blog/2011/04/lets_start_aws_for_phper.html […]
- pingback from Amazon Web Services | ホームページクリップ 12-07-06 (金) 10:46
-
[…] さあ、AWSをはじめよう! for PHPer – Shin x blog http://www.1×1.jp/blog/2011/04/lets_start_aws_for_phper.html […]
- trackback from ぱふぅ家のホームページ 16-01-24 (日) 12:06
-
PHPでAmazon Web Serviceを利用して書籍検索
PHPでAmazon Web Serviceを利用して書籍検索するプログラムをつくる。API認証のためのシグネチャを作る部分がキーとなる。
- trackback from ぱふぅ家のホームページ 18-02-24 (土) 11:37
-
PHPでAmazon Web Serviceを利用して書籍検索
PHPでAmazon Web Serviceを利用して書籍検索【更新】リンク更新