Amazon ElastiCache(初心者向け 超速マスター編)JAWSUG大阪

12,604 views

Published on

Published in: Technology
0 Comments
25 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
12,604
On SlideShare
0
From Embeds
0
Number of Embeds
1,072
Actions
Shares
0
Downloads
3
Comments
0
Likes
25
Embeds 0
No embeds

No notes for slide

Amazon ElastiCache(初心者向け 超速マスター編)JAWSUG大阪

  1. 1. Amazon ElastiCacheしみず @shimy_net2013 / 6 / 22初心者向け 超速マスター編
  2. 2. 自己紹介しみず @shimy_netWebアーキテクトアマゾン芸人無駄に技術を使って面白いことをする
  3. 3. 本を執筆しましたhttp://goo.gl/QtaK6
  4. 4. Amazon ElastiCache とは□ KVSキャッシュサービス・memcached 1.4.5 互換・クラスタ構成、Auto-Discovery(Java, PHPクライアント提供)・スケールイン/スケールアウト□ インストール・構築不要・AWS Management Console 、CLI または API からアクセス・プロビジョニング、ソフトウェアのインストールや管理が不要・ソフトウェアの自動パッチ適用・インスタンスタイプを選択可能□ 自動障害検出と復旧・キャッシュクラスタの状態を監視・CloudWatch、SNS と連携
  5. 5. まずはキャッシュを検索ヒットしなければDBを検索Amazon ElastiCache とは□ 目的と用途・アプリの高速化、データベースの負荷低減・セッションの管理get(Key)ValueselectValueset(Key, Value)APPDBデータ取得シーケンス
  6. 6. Amazon ElastiCache とは□ 構成EC2InstanceElastic LoadBalancingInstanceCache ClusterCache nodeCache nodeCacheSecurityGroupCache ParameterGroupEC2SecurityGroupCloud Watch
  7. 7. 開発・管理ツール□ AWS Management Console(Webブラウザ)□ Amazon ElastiCache Command Line Tools→http://aws.amazon.com/code/2310261897259567□ AWS SDK for XXXX
  8. 8. やること□ Management Console から利用する・Cache Cluster を作成・デプロイ方法・バージョン管理・新しい環境を作成する□ Eclipse から利用する(Java)・デモンストレーション
  9. 9. Management Console から利用① ここからスタート② ElastiCache を選択
  10. 10. Cache Cluster の作成③ Launch Cache Clusterをクリック
  11. 11. Cache Cluster の作成④ Cluster名 を指定⑤ インスタンスタイプ を指定⑥ ノード数 を指定⑧ SNS による通知を指定⑦ AZ を指定※Multi-AZはできない
  12. 12. Cache Cluster の作成⑨ Security Group を選択※defaultを選択⑩ Parameter Group を指定
  13. 13. Cache Cluster の作成⑪ 完了
  14. 14. Endpoint の確認Configuration EndpointNode EndpointNode Endpoint
  15. 15. Endpoint の確認□ Configuration Endpoint  AWSが提供する拡張クライアントから Auto Discovery で透過的に接続する□ Node Endpoint  各ノードに接続するnode1node2Node1EndpointNode2EndpointConfigurationEndpointElastiCacheCluster ClientNode1EndpointMemcachedClientnode1
  16. 16. 分散ロジックAuto Discovery とは□ 分散するには Sharding や Consistent Hashing といった処理が必要Cache ClusterApplicationApp MemcachedClientnode1 XXXnode2 YYYnode3 ZZZget(Key)Valuenode1 node2 node3 node4ノードが増えるとリストを更新する必要があるノードが増えるとリストを更新する必要がある
  17. 17. Auto Discovery とは□ Auto Discovery でノード情報を自動取得Cache ClusterApplicationApp ElastiCacheCluster Clientget(Key)Valuenode1 node2 node3 node4new Client()clientconfiguration endpointでクライアントを生成node1, node2, node3ResolveconfigurationendpointGet cluster endpointsPollingRefresh nodesonce per minuteConsistent HashingMemcached Protocol の拡張
  18. 18. Auto Discovery とは(原文)Connecting to Cache Nodes1.  The application resolves the configuration endpoints DNS name. Because the configuration endpoint maintainsCNAME entries for all of the cache nodes, the DNS name resolves to one of the nodes; the client can then connectto that node.2.  The client requests the configuration information for all of the other nodes. Since each node maintainsconfiguration information for all of the nodes in the cluster, any node can pass configuration information to theclient upon request.3.  The client receives the current list of cache node hostnames and IP addresses. It can then connect to all of theother nodes in the cluster.Normal Cluster Operations1.  The application issues a get request for a particular data item, identified by its key.2.  The client uses a hashing algorithm against the key to determine which cache node contains the data item.3.  The data item is requested from the appropriate node.4.  The data item is returned to the application.
  19. 19. ElastiCache Cluster Client のダウンロード① Download ElastiCache Cluster Client をクリック ② Download をクリック提供クライアント一覧JavaPHP 5.3 (64bit Linux)PHP 5.3 (32bit Linux)PHP 5.4 (64bit Linux)PHP 5.4 (32bit Linux)
  20. 20. Cache Security Group の設定□ Cache Security Group のため接続できないCache ClusterCache ParameterGroupnode1node2EC2EC2SecurityGroupNode1EndpointNode2EndpointConfigurationEndpointCacheSecurityGroupInstance接続できない接続できない
  21. 21. Cache Security Group の設定□ EC2 Security Group を許可するように設定を変更するCache ClusterCache ParameterGroupnode1node2EC2EC2SecurityGroupNode1EndpointNode2EndpointConfigurationEndpointCacheSecurityGroupInstance設定を変更
  22. 22. Cache Security Group の設定③ Add をクリック② 接続を許可したい EC2Security Group を選択する① Cache Security Group をクリック前項では defaultというSecurity Groupを指定して Cache Cluster を作成しました
  23. 23. Cache Parameter Group の設定□ パラメータ一覧Cache Clusternode1node2Cache ParameterGroupname valuecas_disabled On/Offchunk_size 1-1024chunk_size_growth_factor 1.01-100.00error_on_memory_exhausted On/Offmax_item_size 1024-134217728maxconns_fast On/Offmemcached_connections_overhead0-100000slab_automove 0-2slab_reassign On/Off
  24. 24. Cache Parameter Group の設定③ Edit Parametersをクリック② Cache Parameter Group の1つを選択① Cache Parameter Group をクリックデフォルトパラメータは設定の変更ができない
  25. 25. Cache Parameter Group の設定④ 完了
  26. 26. Cache Cluster に接続□ サンプルコードpackage com.amazon.elasticache;import java.io.IOException;import java.net.InetSocketAddress;import net.spy.memcached.MemcachedClient;public class AutoDiscoveryDemo {public static void main(String[] args) throws IOException {String configEndpoint = xxx.yyy.cfg.use1.cache.amazonaws.com";Integer clusterPort = 11211;MemcachedClient client = new MemcachedClient(new InetSocketAddress(configEndpoint, clusterPort));client.set( Key", 3600, Value");client.get( Key );}}Javaの例
  27. 27. やること□ Management Console から利用する・Cache Cluster を作成・デプロイ方法・バージョン管理・新しい環境を作成する□ Eclipse から利用する(Java)・デモンストレーション
  28. 28. デモンストレーション□ 利用ツール・Eclipse 4.2・Seasar2  http://eclipse.seasar.org/updates/3.3/・AWS Toolkit for Eclipse  http://aws.amazon.com/jp/eclipse/・Sequel Pro 1.0.2
  29. 29. デモンストレーション□ 構成図Auto scaling GroupInstanceElastic LoadBalancingCloudWatchAWS Elastic BeanstalkS3AmazonSNSAvailability ZoneRDS DBInstanceInstancewarEclipseデプロイxxxx.elasticbeanstalk.com?id=11, YAMADAパラメータで渡したidに対応するレコードを表示するID NAME1  YAMADA2  SUZUKI3  MIZUNO
  30. 30. デモンストレーション□ 構成図Auto scaling GroupInstanceElastic LoadBalancingCloudWatchAWS Elastic BeanstalkS3AmazonSNSAvailability ZoneRDS DBInstanceAvailability ZoneInstanceElastiCachewarEclipseデプロイxxxx.elasticbeanstalk.com?id=11, YAMADAパラメータで渡したidに対応するレコードを表示するID NAME1  YAMADA2  SUZUKI3  MIZUNO
  31. 31. !    以上!ありがとうございました!

×