AWS re:Invent2013参加レポート #22 高可用、高性能なWebアプリケーションを20分で作る

2013.11.16

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

今回、個人的に1番ヒットしたセッションでした。世界のエバンジェリスト3人が、

  • 複数リージョンに渡るWebアプリケーションの構築
  • Amazon Redshiftの使い方
  • Amazon SNSの使い方

を1時間で教えてくれるというセッションでした。こうして文章にしてみると凄さがまったくわからないのですが、1時間でハンズオンを3つ立て続けに見せてくれて、翻訳がなくとも、それぞれのサービスの特徴が非常によく理解できる素晴しいセッションでした。初心者と誰かに教える人は必見だと思います。書いているうちに長くなってきたので3分割することにしました。

最初のハンズオン

Hosting Applications with High Availability and Performance on AWS - Hands on Demos!

が元の題です。南アメリカでエバンジェリストをしているJose Papoさん(@josepapo)によるElastic Beans Talk、S3,CloudFront,RDS,SES,Route 53をつかってマルチリージョンなWebアプリケーションを20分で作る話でした。

IMG_0956

1. Elastic Beanstalkによるデプロイ

「サービスっていうのは、自動化と何にフォーカスするかっていうのが重要だよ」、という前置きがあって、「フォーカスしない面倒なことはAWSにまかせちゃいなよ」(意訳) ということで、Elastic Beans TalkでPHPアプリケーションを作ってゆきます。さすがにPHPアプリケーションを0から作るのは不可能ですので、既にあるサンプルアプリケーションのコードを紹介しながら、Elastic Beans Talkでデプロイしてゆきます。

デモのよいところで、画面のどの部分をみれば何の情報がのっているかを丁寧に説明してくれます。Elastic Beans Talk初心者ですがとてもよくわかりました。

JoseさんによるとElastic Beans Talkを使う利点の一つはコードのアップデートが簡単ということで、zipファイル化したPHPアプリケーションをマネージメントコンソールでアップロードしてアプリケーションが見えることと、もう一つ方法、 git aws.push コマンドによるアップデートも見せてくれました。

IMG_0967

さっくりアプリケーションがバージョンアップされて表示されたら、次にゆきます。

2. S3とCloudFrontを使った静的コンテンツの表示

PHPのコードの中にあるJavaScriptのロード部分を見せてくれました。init.jsというものは実はCloudFront(以下CFn)から取ってきています。cloudfrontという文字列がURLにはいっているのでわかりました。

もう一つCSSをダウンロードするPHPコードをみせてくれました。こちらはassets.josepapo.com.brから取得しています。この独自ドメインはRoute 53のAliasを使ってCloudFrontを指していることを説明してくれました。実際にどのように登録するかネームサーバの取得方法から説明してくれました。

IMG_0971

3. マルチリージョンでの冗長化

さらにRoute53のコンソールから同じドメインに対してプライマリとセカンダリのエイリアスを作ります。Route53のフェイルオーバー機能をつかって、もし、プライマリに問題が発生するとセカンダリに切り替えることができます。これで簡単にマルチリージョン間でのフェイルオーバーが可能になります。

IMG_0976

4. SESによるメールの送信

このアプリケーションはメール送信の機能もついています。SESを使ってメールを送信させる方法を説明してくれました。ステップとしては

  • SESの有効化
  • PHPコード上の送信SMTPホストをSESに設定

の二つだけで簡単にメールが送れることを見せてくれました

IMG_0979

さいごに

ここまで約20分。全く急いでいる感もなく、翻訳もわかりやすくすばらしかったです。動画がアップロードされたら見直したいです。

もし可能であれば、日本のエバンジェリストの方に是非再演してもらいたいです