PHPのセッション管理にDynamoDBを使う
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

PHPのセッション管理にDynamoDBを使う

  • 1,310 views
Uploaded on

PHPのセッション管理方法の選択とDynamoDBという選択肢について。

PHPのセッション管理方法の選択とDynamoDBという選択肢について。

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,310
On Slideshare
588
From Embeds
722
Number of Embeds
11

Actions

Shares
Downloads
4
Comments
0
Likes
2

Embeds 722

http://yoshiko.hatenablog.jp 521
http://blog.hyec.jp 131
https://twitter.com 38
http://www.slideee.com 7
http://s.deeeki.com 6
https://6200091002875652065_ae350ce893cf8db5621e7ee696123fe9dcd2a43f.blogspot.com 5
http://digg.com 4
http://www.slidesearchengine.com 4
http://feedly.com 4
http://www.google.co.jp 1
http://yoshiko.hatenablog.jphttp 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. PHP のセッション管理に DynamoDB を使 う 2014/07/27  いのうえ たいじ
  • 2. 自己紹介 井上泰治  (いのうえ たいじ)   Twiter :  @inufs   Github :  inouet  所属  : ハンズラボ株式会社   2
  • 3. 1.セッション管理方法について  クライアントサイド  サーバーサイド • cookie • FILE (PHP デフォルト) • memcached • Redis • DynamoDB • MySQL  : PHP には Session Handler という機能があり 容易にセッションストレージを拡張可能 http://php.net/manual/ja/function.session-set-save-handler.php
  • 4. 2 .セッション管理方法/一長一短 方法 メリット デメリット cookie 専用のサーバーが不要 改ざんに対する考慮が必要 容量の問題 FILE session handler のデフォルト すぐに使える 複数サーバーがあるときに困る L7 Load Balancer, NFS など別途必要 memcached session handler が用意されてい る 複数サーバーで共有できる 早い サーバー落ちたら消える Memcached クラスタの運用が必要 Redis session handler が用意されてい る 複数サーバーで共有できる 永続化 Redis クラスタの運用が必要 MySQL Session handler が用意されてい る 複数サーバーで共有できる 書き込みをスケールさせるのが困難
  • 5. 3. Session 管理に DynamoDB を使った時のメリット  メリット  デメリット • サーバー運用が不要( AWS に任せられる) • 落ちる心配をしなくて良い • 保証された読み込み/書き込み性能 • Session Handler も容易されている (AWS SDK) • スパイクアクセスに弱い • 予め読み込み性能、書き込み性能を指定するため • Dynamic DynamoDB などを使い、自動でキャパシティを • 上げる仕組みが必要
  • 6. 4 .ところで DynamoDB って何? • AWS のマネージドシステム •運用不要 • 高い可用性 •3箇所の AZ (データセンター)へデータの保存 •保証された書き込み・読み込み性能 • NoSQL の一種 • スキーマレス • 基本的に検索は、テーブル作成時に指定したインデックスでのみ可 •ハッシュキー/レンジキー •Local Secondary Index •Global Secondary Index  特徴
  • 7. 5 . DynamoDB の料金体系 特徴的な料金体系 • プロビジョンしたスループットに対して課金 ( テーブル毎) • Read Capacity Unit / Write Capacity Unit • 容量に対する課金 ($0.285 / GB / month) 例) Read 100, Write 100 で $66.25 / month ※ 2014/07/27 時点  料金体系
  • 8. 5 .使い方 <?php require 'vendor/autoload.php'; use AwsDynamoDbDynamoDbClient; use AwsDynamoDbSessionSessionHandler; $dynamoDb = DynamoDbClient::factory(array( 'region' => 'ap-northeast-1' )); $sessionHandler = SessionHandler::factory(array( 'dynamodb_client' => $dynamoDb, 'table_name' => 'session', )); $sessionHandler->register(); session_start(); $_SESSION[“counter”] ++; <準備> SDK のロード Session Handler への登録 あとは普通に $_SESSION を使うだけ
  • 9. 宣伝コーナー 東急ハンズネットストアでは、 8 月 28 日 ( 木 ) ~ 9 月 3 日 (水)まで 年に一度の大感謝バーゲン「ハンズメッセ」を開催いたし ます。 いいモノいっぱい、おトクな価格で。 詳しくは WEB で https://hands.net/special/custom/2014messe/
  • 10.   ご清聴ありがとうございました。
  • 11. 参考 ■ Amazon DynamoDB   http://aws.amazon.com/jp/dynamodb/ ■ DynamoDB Session Handler   http://docs.aws.amazon.com/aws-sdk-php/guide/latest/feature-dynamodb-session- handler.html ■ PHP アプリケーションのセッション管理に Amazon DynamoDB を使う   http://dev.classmethod.jp/cloud/aws/php-session-dynamodb/  サンプルコードはここから拝借しました。