Home > アーカイブ > 2011-04

2011-04

さあ、AWSをはじめよう! for PHPer

この記事の所要時間: 1116

春ということで、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 ec2-user@xxx.xxx.xxx.xxx

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 SDK for PHP

AWSを触ってみましょう

いよいよクラウドの本格利用がはじまる今だからこそ、多種多様なクラウドサービスを個人で利用できるAWSを通じてクラウド利用の勘所を掴んでおくというのが大切だと思います。

さらに「AWS SDK for PHP」の存在により、PHPコードで手軽にそういったサービスをプログラムで操作することができます。

無料利用枠も提供されていますので、まだの人はぜひ一度AWSを使って、「プログラマブルデータセンター」と呼ばれるクラウド環境を体感してみてください。

PHPカンファレンス関西を開催しました #phpkansai

この記事の所要時間: 63

2011/4/2に大阪産業創造館でPHPカンファレンス関西を開催しました。

「東京で開催されているPHPカンファレンスを関西で!」という想いから昨年11月に会場の予約をしてから早半年、ようやくイベントを開催することができました。

イベント当日は多くの方に参加頂き、本セッション、懇親会を通じて盛り上がりました。

協賛頂いた各社様、スピーカーのみなさん、参加されたみなさん本当にありがとうございました。

イベントを終えて1週間経ったいま、あらためてイベントを振り返ってみたいと思います。

3つのお願い

イベントのオープニングセッションにて参加されたみなさんに3つのお願いをしました。

1. 義援金

まず、義援金のお願いです。

東日本大震災にて被害に遭われたみなさんへ向けて義援金を募りました。本イベントはチャリティイベントではないのですが、みなさんから非常に多くの支援を頂きました。

義援金は、¥64,819-となり、こちら日本赤十字社へ送付しました。

送付は郵便局窓口で行ったのですが、郵便局員の方にとても感謝されました。私は代表で持っていったに過ぎず、この感謝の言葉はみなさんへ向けたものなので、ここで共有したいと思います。

みなさんご協力頂き、本当にありがとうございました。

2. 情報発信

情報発信を積極的にやって下さい、というお願いです。

セッションを聞きながらTwitterでtweetするというのは、こういったイベントに慣れていない人だとマナー違反と思い、躊躇してしまうかもしれません。しかし本イベントについては気にせずに思ったこと、感じたこと、学んだことをどんどん発信して下さいという話をしました。

そうした情報発信が当日イベントに来たくても来られなかった人への情報共有にもなります。

イベント当日は、みなさんから多くのtweetがあり、イベント会場の雰囲気が共有できたと思います。

Togetter – 「PHPカンファレンス関西のツイートまとめ」

参加された方のレポートも多数投稿されています。

フィードバック – PHPカンファレンス関西

3.楽しむ

せっかくイベントに参加されたのですから、しっかり楽しみましょう!というお願いです。

初のイベントということもあり、朝一は緊張している人も多かったように思いましたが、本セッションが進み、ライトニングトークで盛り上がった後のクロージングの頃にはみんな良い表情をしていました。

↑はクロージング後に希望者だけで撮影した集合写真ですが、みんな良い顔してますね:D

懇親会では一日の疲れ、緊張感から解放されたのもあり、さらに盛り上がりました!関西のPHPユーザ同士で、こういった場が作れたことが何より嬉しかったです。

多くの方から「次回も!」という声を頂きました。さらにアンケートでも90%以上の方が「次回も参加したい」と回答されていました。

もちろん不満に思われた部分もあるかと思いますが、みなさんの笑顔を思い返すと、関西初のイベントとしては一定の成果はあったのではと感じています。

セッションにてPHPに関する内容が少なかったのでは?

本セッションについて「PHPに関する内容が少ないのでは」という意見が多くありましたので、この点について。

このイベントのテーマである 「クラウド」「ソーシャルアプリ」「スマートフォン」 というのは、どれもPHPだけに限った話題ではないので、当初よりPHP色がやや薄くなるというのは想定していました。

しかし、どれもPHPユーザそしてWeb関連の人間にはとっては無視できない内容ですし、関西では語られることが少ないので、こういった機会にぜひ関西のPHPユーザに知ってもらいたいという考えがありました。

こうした意向を受けて各スピーカーの方へセッションをお願いしたので、それぞれのセッションはテーマに沿った素晴らしい発表を行って頂けました。セッション一つ一つについてはどれも満足度の高い内容だったかと思います。

あとは私の構成の問題で、これについては反省すべき点がありました。

参加された方からの意見でも「PHPに関する内容は少なかったけど、面白かった」「テーマに沿った内容で面白かった」といった意図していたとおりの意見もあったのですが、やはりもっとPHPに関する内容を期待していた人にとっては不満が残る部分もあったと思います。(ライトニングトーク以降でPHP成分は補充できた、という人も多かったです:D)

「PHPカンファレンス関西」という名前のイベントなので、PHPに関するセッションを期待されるのは当然のことです。

叱咤激励は次への期待だと受け取り、今後開催する際は熟慮したいと思います。ご意見頂いたみなさんありがとうございました。

イベントで外界を知る

後日、イベントに参加した弊社スタッフから聞いた感想が、まさにこのイベントを開催した意義を表していたので紹介します。

彼はこういったイベントに参加することが初めてだったので、イベント慣れしている人間からすれば当然の風景がとても新鮮に映ったようです。

  • MacBookやThinkPadなどのモバイルPCやスマートフォンを使っている人がこんなにいるということ
  • 今までWebでしか見たことの無い技術を実際に使っている人がいるということ
  • 意識の高い人が多いということ
  • そして関西にはこんなに多くのPHPユーザがいるということ。

こうした「外界」に触れる機会を関西で作る、というのがこのイベントを開催した意義です。

この経験をきっかけに今度は自分自身がその世界に飛び込んでくれることを期待しています。そして、そうした人が一人でも二人でも増えていってくれることが、このイベントを開催した人間からの望みです。

みなさん、ありがとうございました!

冒頭でも触れましたが、このイベントは数多くの方からの支援を頂いて開催することができました。

イベントでは話せなかったのでこの場を借りて。

日本PHPユーザ会からは本イベントサイトのサーバ、ドメインを支援して頂きました。また @koyhoge さんと @yudoufu さんからはイベント自体をやるかやらないかという段階で相談に乗って頂き、とても心強かったです。

次にCakePHPのコミュニティ、いつも一緒にイベントをやっている気心が知れたメンバーからのアドバイスはとても安心できました。「いつでも手伝うから、声掛けて。」この一言で何度も救われました。(ちなみにUst配信で利用したTwinPactは、配信職人 @suzuki さんから借りました:D)

そして最後に実行委員会のみんな。頼りない実行委員長だったかもしれないけど、最後まで「PHPカンファレンス関西を成功させよう!」という想いで一緒に頑張ってくれました。はじめましての人も多いなか、暗中模索で進んできたけど、イベントを通して最後には良いチームになれたと思います。また一緒にやりましょう。

他にも多くの方から協力、アドバイスを頂きました。本当に、本当にみなさんありがとうございました。

これが終わりではなく、はじまりです。関西から日本を盛り上げていきましょう!

さよならPHP

  • 2011-04-01 (金)
  • PHP
この記事の所要時間: 324
このエントリはエイプリルフールに掲載した空想のお話です。
僕は今日もきっとPHPと一緒です。

君と出会ったのはいつだったかな。

あらためてそんなことを思い出すこともないくらいいつも一緒にいるね。

そう僕らはいつも一緒にいるんだ。

あれはまさにITバブル真っ盛りの2000年。僕はWebでシステムを作ることを夢見てパートナーを探していた。

誰がいたかな、ああ真珠に良く似た名前の子もいたし、蛇みたいな子もいた。

赤い宝石みたいな子はその時はあまり見かけなかったかな。

そんな中に君がいたんだ。

僕らはすぐに意気投合した。一緒に色んなWebシステムを作り上げてきたね。

今だからいうけど、実は君の$は嫌いだったんだ。

はじめは、もうあれを見ると生理的にダメだった。真珠っちもそこがイマイチだったんだよな。

でも「あばたもえくぼ」とは良く言ったもので一緒にいる時間が長くなると、そんなことは気にならなくなった。

いつしか変数入力しようとすると、とっさに左親指がshiftキーに動くようになった。

おかげでたまに他の子と遊ぶ時もついつい$を打ってしまうよ。

人って慣れていくもんだね。

僕は知ってるよ。

今でこそ他の子たちと付き合ってるやつらから、やいのやいのとやっかみを言われてるけど、あの頃は違った。

あの頃は、これからのWebシステム言語として君が注目されていたのを。

実際、僕も君と付き合っていたおかげで色んな人に声をかけられたものさ。

自分のことを褒められているわけじゃないけど、なんだか嬉しかったよ。

もちろん分かってるさ。結局大事なのは言語じゃなくて、それを使う人自身だってことは。

でもその時は君といるだけで、周りの見る目は違ったんだ。

いつの頃からだろう、周りの目が変わったのは。

時は流れて、状況は変わっていく。それは当たり前のこと。特に進化が早いって言われてるWebの世界ではね。

もちろん君も変わっていった。他の子の良いところをどんどん取り入れようと努力していたね。

オブジェクト指向、アクセス制御子、例外、そして最近は、名前空間にクロージャかな。

でも、そんななりふり構わずどん欲に他の子の良いところを取り込んでいく姿勢が反感を買ってしまったのかな。

最近のWebを見ると、君のことを蔑むような発言が多くなった。

もちろん、最初はそんなこと気にしてなかったよ。

arrayばかり書かされるだの、引数の順番に統一性が無いだの、後付けオブジェクト指向だの色々言われても、そんなこと気にしてなかった。

もちろん気になるところはあったけど、僕らはあの手この手で上手くやってきたしね。

でも、いつしかその発言は君と一緒にいる僕らにも向けられるようになった。

謂われのない誹謗中傷。

君と一緒にいる僕らは人それぞれ違うのに、なぜか一緒にされる。

ラベル付けされて、攻撃される。。。

分かってるよ。僕らの間で何かがあったわけじゃない。そう、多分僕らはこれからも上手くやっていけるよ。

でも、

でも、

でも、

僕はもう限界なんだ。。。。。。。。。

こんなこと言うと君はなんて言うかな。

いつもみたいに「Notice: Undefined variable」って言うかな。

怒って「Fatal error !」って言うかも。

ああ、あきれて「Parse error: syntax error」かな。

君が悪いんじゃない。僕が負けたんだ。

君のことはずっと忘れない。

でも、ちゃんと言わせて。今日、そう今日しか言えないんだ。

「さよならPHP」

via. Big Sky :: さよならIE6たん

Home > アーカイブ > 2011-04

検索
フィード
メタ情報

Return to page top