2012年3月25日日曜日

Route53のlatency based routingの利用

Multi-Region Latency Based Routing (http://goo.gl/wkkra ) という機能がAWSのDNSサービスであるRoute53から発表されました。


そもそも、cdn.debian.netの全体図はこんな具合。cdn.debian.netの再実装開始という記事



dns_balanceが動作しているホスト(当然DNSサーバが動いている)に対して、どうやって早く接続するのか、という問題がある。


今回発表された、Multi-Region Latency Based Routing で、日米欧で動作させているdns_balanceに対してエンドユーザ(の使っているDNSキャッシュサーバ)を誘導するようになりました。


これまでは、日本のユーザでも一定の割合でヨーロッパのDNSサーバを参照する場合があった(キャッシュサーバの実装次第)のが、なくなり、300から500msecほど(平均ではその1/3)解決までの時間が短かくなったはずです。

2012年3月24日土曜日

cloudpack night 2でVPCのシナリオ発表

本日はcloudpack(iret)さんにおじゃましてのcloudpack night #2でした。

そこで発表した。VPCで使えるパターンとして残っているものはまだあるけれど、今回は

  • cloudformer + cloudformation
  • Elastic Network Interface
  • Security group
  • Network Access Control List
  • Route53

このあたりの使い方シナリオの発表という具合。発表の中にもありますが、PCI-DSSのProvider Level1をAWSは取得していますが、それにはVPCが大前提なのです。

AWSクラウドデザインパターン VPC移行編 [slideshare id=12136658&w=425&h=355]
View more PowerPoint from yasuhiro araki

2012年3月19日月曜日

AWSゲームテンプレートという名のCloudFormation公開

一昨日、OGCというイベントがあり、外苑前のTEPIAでイベントをやった。最近はwebsocketで常時接続アプリというのがわりとはやっていて、AWSでのやりかたをひとつ見せてみようということでcloudformationのテンプレートにしてみた。

公開は、http://ogc-template.s3-website-ap-northeast-1.amazonaws.com/ で行っている。詳細はそちらへ。

2012年3月3日土曜日

Elastic Load Balancerをつかってwebsocketを処理する方法

AWSにはElastice Load Balancerというロードバランサがあります。これはとても安いこともあって多くのお客様のwebサービスで使っていただいています。

最近はwebsocketを使いたい!という声もありますが、いくつかの制限により、
ELBは最初のネゴシエーションにだけ使って、ネゴシエーション後のwebsocketにかかわらない方法がおすすめです。

そもそも問題は、

  1. ELBの場合、HTTPモードだとそもそも同じポートのままではwebsocketに遷移できない。

  2. ELBでTCPモードにした場合でも60秒でタイムアウトする。


の2点が原因です。そのため、2つの方法があります。

解1: ELBは最初のネゴシエーションにだけ使って、ネゴシエーション後のwebsocketにかかわらない方法
C ---------> ELB(HTTPモード) --> S   ふつうにHTTPでアクセス。
C <--------- ELB <---- S スクリプトがダウンロードされる

このスクリプトには Sのアドレスpublic ホスト名がそのまま埋めてある
C -------------------> S websocketで接続
C <--------------------S websocketのネゴ

という具合でELBは最初にだけかかわります。

解2: websocketでping/pongを行う

クライアントをいじるのはむずかしいでしょうから、サーバ側からPINGを60秒に一度
はなげることになります。
C ---------> ELB(TCPモード) --> S   ふつうにHTTPでアクセス。
C <--------- ELB <---- S スクリプトがダウンロードされる
C ----------> ELB ------> S websocketで接続
C <---------- ELB <----------S

websocketのpingを以降、たとえば30秒に一度なげます。

2012年3月2日金曜日

明日のAWSマイスターリターンズで聞きたいことを事前募集!

http://jaws-ug.jp/summit2012/ で御案内していますが、

AWSマイスターリターンズ

ほぼ週刊で開催しているAWSの主要各サービスを説明する「AWSマイスターシリーズ」の内容を、濃縮還元バージョンでお届けするセッション。1セッション25分の構成で、ほぼすべてのサービスをカバーします。これまで知らなかったサービスについても、まとめてキャッチアップできる絶好の機会です。


というところで登壇して25分x3ほど、VPC, CloudFront, Route53、Storage GatewayについてDiveします! インタラクティブなやりとりをしたいのですが、会場で質問するのはなあ。。という方、時間をとりそうな質問があるんだけど、、という方、ぜひ事前に意見をおよせください!

https://docs.google.com/spreadsheet/viewform?formkey=dGtxY1U0dTlkb0t5WnlUbF9iVHJnN2c6MQ ←こちらからどうぞ

[googleapps domain="docs" dir="spreadsheet/embeddedform" query="formkey=dGtxY1U0dTlkb0t5WnlUbF9iVHJnN2c6MQ" width="760" height="957" /]

DynamoDBが東京リージョンで利用可能になった

ついにきた、もう来たというポジティブな反応を様々な方にいただき嬉しい限り。オフィシャルblog をみればだいたいのことはわかるのでまずそれを見るとして。

このDynamoDBをちゃらっと試すのにJavaを使っていたのだが、rubyでそういや使ってなかったことに気がついたので調べてみた。

DynamoDBはクエリを前提にしているようなコード書きとはかけはなれすぎているので、SQL路線できた方が、実際使う方はあんまりいないかなあ、と個人的には思っている。

セッション情報をDynamoDBにつっこむようなミドルウェアがはやらないとね。memcacheでやる人は沢山いるので、そのへんのライブラリを書きかえればいいのか。。