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

More Related Content

What's hot (20)

PDF
20201118 AWS Black Belt Online Seminar 形で考えるサーバーレス設計 サーバーレスユースケースパターン解説
Amazon Web Services Japan
 
PDF
20180704 AWS Black Belt Online Seminar Amazon Elastic File System (Amazon EFS...
Amazon Web Services Japan
 
PDF
202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)
Amazon Web Services Japan
 
PDF
20200722 AWS Black Belt Online Seminar AWSアカウント シングルサインオンの設計と運用
Amazon Web Services Japan
 
PDF
20201111 AWS Black Belt Online Seminar AWS CodeStar & AWS CodePipeline
Amazon Web Services Japan
 
PDF
AWS Black Belt Online Seminar 2017 Amazon Kinesis
Amazon Web Services Japan
 
PDF
20191023 AWS Black Belt Online Seminar Amazon EMR
Amazon Web Services Japan
 
PDF
AWS Black Belt Online Seminar 2017 AWS WAF
Amazon Web Services Japan
 
PDF
20190410 AWS Black Belt Online Seminar Amazon Elastic Container Service for K...
Amazon Web Services Japan
 
PDF
AWS Black Belt Online Seminar AWS Key Management Service (KMS)
Amazon Web Services Japan
 
PDF
AWSでアプリ開発するなら 知っておくべこと
Keisuke Nishitani
 
PDF
AWS で Presto を徹底的に使いこなすワザ
Noritaka Sekiyama
 
PDF
20210526 AWS Expert Online マルチアカウント管理の基本
Amazon Web Services Japan
 
PPTX
セキュリティの基本とAWSでのセキュリティ対策をフルコースで味あう
ShinodaYukihiro
 
PDF
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
Amazon Web Services Japan
 
PPTX
はじめての datadog
Naoya Nakazawa
 
PDF
20180704(20190520 Renewed) AWS Black Belt Online Seminar Amazon Elastic File ...
Amazon Web Services Japan
 
PDF
AWS Blackbelt 2015シリーズ RDS
Amazon Web Services Japan
 
PPTX
Azure Cosmos DB を使った高速分散アプリケーションの設計パターン
Kazuyuki Miyake
 
PDF
20190320 AWS Black Belt Online Seminar Amazon EBS
Amazon Web Services Japan
 
20201118 AWS Black Belt Online Seminar 形で考えるサーバーレス設計 サーバーレスユースケースパターン解説
Amazon Web Services Japan
 
20180704 AWS Black Belt Online Seminar Amazon Elastic File System (Amazon EFS...
Amazon Web Services Japan
 
202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)
Amazon Web Services Japan
 
20200722 AWS Black Belt Online Seminar AWSアカウント シングルサインオンの設計と運用
Amazon Web Services Japan
 
20201111 AWS Black Belt Online Seminar AWS CodeStar & AWS CodePipeline
Amazon Web Services Japan
 
AWS Black Belt Online Seminar 2017 Amazon Kinesis
Amazon Web Services Japan
 
20191023 AWS Black Belt Online Seminar Amazon EMR
Amazon Web Services Japan
 
AWS Black Belt Online Seminar 2017 AWS WAF
Amazon Web Services Japan
 
20190410 AWS Black Belt Online Seminar Amazon Elastic Container Service for K...
Amazon Web Services Japan
 
AWS Black Belt Online Seminar AWS Key Management Service (KMS)
Amazon Web Services Japan
 
AWSでアプリ開発するなら 知っておくべこと
Keisuke Nishitani
 
AWS で Presto を徹底的に使いこなすワザ
Noritaka Sekiyama
 
20210526 AWS Expert Online マルチアカウント管理の基本
Amazon Web Services Japan
 
セキュリティの基本とAWSでのセキュリティ対策をフルコースで味あう
ShinodaYukihiro
 
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
Amazon Web Services Japan
 
はじめての datadog
Naoya Nakazawa
 
20180704(20190520 Renewed) AWS Black Belt Online Seminar Amazon Elastic File ...
Amazon Web Services Japan
 
AWS Blackbelt 2015シリーズ RDS
Amazon Web Services Japan
 
Azure Cosmos DB を使った高速分散アプリケーションの設計パターン
Kazuyuki Miyake
 
20190320 AWS Black Belt Online Seminar Amazon EBS
Amazon Web Services Japan
 

Viewers also liked (20)

PDF
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
Amazon Web Services Japan
 
PDF
第80回 PHP勉強会 / laravel.jp & Laravel Meetup Tokyo Vol.5
Kenichi Mukai
 
PDF
スクレイピングその後
Tomoki Hasegawa
 
PPTX
本当のオブジェクト指向は可読性を上げる
Wataru Terada
 
PPTX
FuelPHPにアプリと管理ツールを同居してみる
Makoto Shimoda
 
PDF
Using xvim with macvim
pebble8888
 
PDF
Twilio API を PHP で触ってみよう
Masashi Shinbara
 
PDF
Make the Prott Faster
Sadaaki HIRAI
 
PDF
VimConf 2014 from deris0126
deris0126
 
PPTX
OpenBlocks IoTで温湿度を可視化してみた
Hideki Yanagihara
 
PPTX
FuelPHP × HHVM サービス開発事例
Yuji Otani
 
PDF
Let's talk about neovim
Shougo
 
PDF
Auto closing parenthesis @vim conf2014
cohama
 
PDF
JINS MEME DEVELOPER HANDS-ON (Monaca / Apache Cordova編)
アシアル株式会社
 
PPTX
20151205フルスクラッチcms作成のノウハウ With Laravel
Takumi Yoshida
 
PDF
かなりすごい発表(かなり) at VimConf2014
Sugoi Kanari
 
PDF
AWS Lambdaを紐解く
Keisuke Nishitani
 
PPTX
PHP x AWS でスケーラブルなシステムをつくろう
Taiji INOUE
 
PDF
PHP で始める AWS モバイルサービス - PHPカンファレンス_20150530
崇之 清水
 
PDF
DroidKaigi 2017 welcometalk DAY02
Masahiro Hidaka
 
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
Amazon Web Services Japan
 
第80回 PHP勉強会 / laravel.jp & Laravel Meetup Tokyo Vol.5
Kenichi Mukai
 
スクレイピングその後
Tomoki Hasegawa
 
本当のオブジェクト指向は可読性を上げる
Wataru Terada
 
FuelPHPにアプリと管理ツールを同居してみる
Makoto Shimoda
 
Using xvim with macvim
pebble8888
 
Twilio API を PHP で触ってみよう
Masashi Shinbara
 
Make the Prott Faster
Sadaaki HIRAI
 
VimConf 2014 from deris0126
deris0126
 
OpenBlocks IoTで温湿度を可視化してみた
Hideki Yanagihara
 
FuelPHP × HHVM サービス開発事例
Yuji Otani
 
Let's talk about neovim
Shougo
 
Auto closing parenthesis @vim conf2014
cohama
 
JINS MEME DEVELOPER HANDS-ON (Monaca / Apache Cordova編)
アシアル株式会社
 
20151205フルスクラッチcms作成のノウハウ With Laravel
Takumi Yoshida
 
かなりすごい発表(かなり) at VimConf2014
Sugoi Kanari
 
AWS Lambdaを紐解く
Keisuke Nishitani
 
PHP x AWS でスケーラブルなシステムをつくろう
Taiji INOUE
 
PHP で始める AWS モバイルサービス - PHPカンファレンス_20150530
崇之 清水
 
DroidKaigi 2017 welcometalk DAY02
Masahiro Hidaka
 
Ad

Recently uploaded (9)

PDF
漁船に搭載されている電子装備と漁法について_VRC海洋学研究会_海のLT会発表資料
Yuuitirou528 default
 
PDF
AIツールを使った研究の効率化 Improving Research Efficiency with AI Tools
Tohoku University
 
PPTX
オープンソース界隈の利用者や技術者から見たオープンソースEDAとは? What is open source EDA from the perspecti...
Industrial Technology Research Institute (ITRI)(工業技術研究院, 工研院)
 
PPTX
新卒・中途採用者向け採用ピッチ資料2025年7月版(20250702).pptx
Official74
 
PDF
生成AIパネルトーク(Interop25Tokyo APPS JAPAN M1-07,M2-07 嶋ポジショントーク)
嶋 是一 (Yoshikazu SHIMA)
 
PDF
第3回デジタル理学療法学会のシンポジウム「デジタル理学療法の組織活用:教育・管理・研究を繋ぐ新たな地平」での話題提供
Matsushita Laboratory
 
PDF
go tool と Minimal Version Selection アルゴリズム
Keisuke Ishigami
 
PDF
2023年版Web3技術の理想と現実
Syuhei Hiya
 
PDF
第3回デジタル理学療法研究会学術大会シンポジウム「デジタル理学療法の組織活用:教育・管理・研究を繋ぐ新たな地平」の講演資料.
Matsushita Laboratory
 
漁船に搭載されている電子装備と漁法について_VRC海洋学研究会_海のLT会発表資料
Yuuitirou528 default
 
AIツールを使った研究の効率化 Improving Research Efficiency with AI Tools
Tohoku University
 
オープンソース界隈の利用者や技術者から見たオープンソースEDAとは? What is open source EDA from the perspecti...
Industrial Technology Research Institute (ITRI)(工業技術研究院, 工研院)
 
新卒・中途採用者向け採用ピッチ資料2025年7月版(20250702).pptx
Official74
 
生成AIパネルトーク(Interop25Tokyo APPS JAPAN M1-07,M2-07 嶋ポジショントーク)
嶋 是一 (Yoshikazu SHIMA)
 
第3回デジタル理学療法学会のシンポジウム「デジタル理学療法の組織活用:教育・管理・研究を繋ぐ新たな地平」での話題提供
Matsushita Laboratory
 
go tool と Minimal Version Selection アルゴリズム
Keisuke Ishigami
 
2023年版Web3技術の理想と現実
Syuhei Hiya
 
第3回デジタル理学療法研究会学術大会シンポジウム「デジタル理学療法の組織活用:教育・管理・研究を繋ぐ新たな地平」の講演資料.
Matsushita Laboratory
 
Ad

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

  • 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/
  • 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/  サンプルコードはここから拝借しました。