はじめに
http://blogs.yahoo.co.jp/dk521123/36698011.htmlで、MySQLでやったが、今回は「DynamoDB」で行う DynamoDB については、以下の関連記事を参照のこと。Amazon DynamoDB
http://blogs.yahoo.co.jp/dk521123/36716365.html
Amazon DynamoDB Local
http://blogs.yahoo.co.jp/dk521123/36725347.html
手順概要
[0] アクセスキー IDと、シークレットアクセスキーを取得する [1] JDBCドライバを【Tomcat Home】/lib配下に格納 [2] Tomcatの設定を修正 [2-1] context.xml [2-2] server.xml [2-3] catalina.properties [2-4] web.xml [3] Tomcatを再起動する [4] 動作確認
詳細手順
構築環境
* OS : Amazon Linux * DB : DynamoDB * Java : JDK1.8 * Tomcat : Apache Tomcat v8.5.11 ※ Tomcatは、「/usr/local/tomcat」にインストールされているものとするTomcatのインストールは、以下の関連記事を参照のこと。
http://blogs.yahoo.co.jp/dk521123/36706185.html
[0] アクセスキー IDと、シークレットアクセスキーを取得する
* 以下の関連記事の「アクセスキー IDと、シークレットアクセスキーを取得するには」を参照のこと。http://blogs.yahoo.co.jp/dk521123/36716365.html
[1] JDBCドライバの設定
[1-1] JDBCドライバをダウンロード(今回は「aws-dynamodb-session-tomcat-2.0.4.jar」)するhttps://github.com/aws/aws-dynamodb-session-tomcat/releases
[1-2] [1-1]のJDBCドライバを【Tomcat Home】/lib配下に格納する sudo cp ~/aws-dynamodb-session-tomcat-2.0.4.jar /usr/local/tomcat/lib/.
[2] Tomcatの設定を修正
[2-1] context.xml を修正するAWS上
~~~~ <!-- Uncomment this to disable session persistence across Tomcat restarts --> <!-- <Manager pathname="" /> --> <!-- ★追加★ --> <Manager className="com.amazonaws.services.dynamodb.sessionmanager.DynamoDBSessionManager" awsAccessKey="yourAccessKey" awsSecretKey="yourecretKey" regionId="ap-northeast-1" endpoint="dynamodb.ap-northeast-1.amazonaws.com" table="tomcat_sessions" createIfNotExist="true" processExpiresFrequency="1" /> <!-- ★追加★ --> </Context> ~~~~ ※注意 * 「regionId」を指定していないと、「us-east-1」(米国東部(バージニア北部))に保存されていた (ここで、はまった) 日本でやっているなら、「ap-northeast-1」(アジアパシフィック (東京))にしておいた方が AWS マネジメントコンソールにおいて、デフォルトで表示されるのでよいかと。。。 * 「region」「endpoint」については、以下のサイトを参照のことhttp://docs.aws.amazon.com/ja_jp/general/latest/gr/rande.html#ddb_region
[おまけ] Amazon DynamoDB Local(設定は以下の関連記事を参照のこと)
http://blogs.yahoo.co.jp/dk521123/36725347.html
http://blogs.yahoo.co.jp/dk521123/36725347.html
~~~~ <!-- Uncomment this to disable session persistence across Tomcat restarts --> <!-- <Manager pathname="" /> --> <!-- ★追加★ --> <Manager className="com.amazonaws.services.dynamodb.sessionmanager.DynamoDBSessionManager" awsAccessKey="yourAccessKey" awsSecretKey="yourecretKey" regionId="ap-northeast-1" endpoint="http://localhost:8000" table="tomcat_sessions" createIfNotExist="true" processExpiresFrequency="1" /> <!-- ★追加★ --> </Context> ~~~~ [2-2] server.xml を修正する ~~~~ 【修正前】 <Engine name="Catalina" defaultHost="localhost"> 【修正後】 <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1" backgroundProcessorDelay="1" startStopThreads="-1"> ~~~~ [2-3] catalina.properties を修正する ~~~~ #tomcat.util.buf.StringCache.cacheSize=5000 #★追加★ org.apache.catalina.session.StandardSession.ACTIVITY_CHECK=true ~~~~ [2-4] 【Tomcat】/webapps/【自分プロジェクト】/WEB-INF/web.xml を修正する 「<distributable />」を追記 ~~~~ ・・・略・・・ <distributable /> </web-app> ~~~~
[3] Tomcatを再起動する
sudo service tomcat restart
[4] 動作確認
[1] 以下の関連記事の「【動作確認用サイト】sessionExam.jsp」を 「/usr/local/tomcat/webapps/examples」配下に置くhttp://blogs.yahoo.co.jp/dk521123/36708242.html
[2] ブラウザのURL欄に以下のURLを入れる[[http://localhost/examples/sessionExam.jsp]]
[3] DynamoDB内のテーブル「tomcat_sessions」をみてみる => [DynamoDB]-[項目]から、データが確認できることを確認する
参考文献
公式サイト
http://docs.aws.amazon.com/ja_jp/sdk-for-java/v1/developer-guide/java-dg-tomcat-session-manager.htmlアクセスキー IDと、シークレットアクセスキー
http://blog.makotokw.com/2014/05/21/get-aws-secret-access-key-for-amazon-product-advertising-api/https://www.note.technology/note/201602161540
http://www.animavoid.net/blog/amazon-api-secret-access-key/
http://soranoshita.com/post-415/
Tomcat + DynamoDB in AWS
http://lapped-lapped.blogspot.jp/2014/02/dynamodb-tomcat-session.htmlhttp://dev.classmethod.jp/cloud/amazon-dynamodb-tomcat-session-management/
http://nemuzuka.hatenablog.com/entry/2014/12/23/202046