Mais conteúdo relacionado
Semelhante a 実践!AWSクラウドデザインパターン (20)
Mais de Hiroyasu Suzuki (16)
実践!AWSクラウドデザインパターン
- 5. 自己紹介
鈴鈴⽊木 宏康(すずき ひろやす)
アイレット株式会社 取締役 CTO
好きなAWSサービス
Amazon Simple Icons
http://blog.suz-‐‑‒lab.com/
好きなクラウドデザインパターン(CDP)
https://twitter.com/suz_̲lab
CloudHub パターン
http://www.facebook.com/suz.lab
5
- 35. 例: Factory Method パターン
他のクラスのコンストラクタをサブクラスで上書き可能な⾃自分のメソッド
に置き換えることで、 アプリケーションに特化したオブジェクトの⽣生成を
サブクラスに追い出し、クラスの再利利⽤用性を⾼高めることを⽬目的とする。
35
- 36. AWSには多種多様なサービス/コンポーネントが存在
EC2, ELB, RDS, S3, VPC, SQS, SES, EMR, IAM, DX, …
36
- 42. 48パターン
基本
静的コンテンツを処理理
運⽤用保守
・Snapshot
・Web Storage
・Bootstrap
・Stamp
・Direct Hosting
・Cloud DI
・Scale Up
・Private Distribution
・Stack Deployment
・Scale Out
・Cache Distribution
・Server Swapping
・Ondemand Disk
・Private Cache Distribution
・Monitoring Integration
可⽤用性を向上
・Rename Distribution
・Web Storage Archive
・Multi-‐‑‒Server
データをアップロード
・Weighted Transition
・Multi-‐‑‒Datacenter
・Write Proxy
・Hybrid Backup
・Floating IP
・Storage Index
ネットワーク
・Deep Health Check
・Direct Object Upload
・OnDemand NAT
動的コンテンツを処理理
リレーショナルデータベース
・Backnet
・Clone Server
・DB Replication
・Functional Firewall
・NFS Sharing
・Read Replica
・NFS Replica
・Inmemory DB Cache
・State Sharing
・Sharding Write
・WAF Proxy
・URL Rewriting
バッチ処理理
・CloudHub
・Rewrite Proxy
・Queuing Chain
・Cache Proxy
・Scheduled Scale Out
・Operational Firewall
・Multi Load Balancer
・Priority Queue
・Job Observer
・Scheduled Autoscaling
42
- 43. 48パターン
基本
静的コンテンツを処理理
運⽤用保守
・Snapshot
・Web Storage
・Bootstrap
・Stamp
・Direct Hosting
・Cloud DI
・Scale Up
・Private Distribution
・Stack Deployment
・Scale Out
・Cache Distribution
・Server Swapping
・Ondemand Disk
・Private Cache Distribution
・Monitoring Integration
可⽤用性を向上
・Rename Distribution
・Web Storage Archive
・Multi-‐‑‒Server
データをアップロード
・Weighted Transition
・Multi-‐‑‒Datacenter
・Write Proxy
・Hybrid Backup
・Floating IP
・Storage Index
ネットワーク
・Deep Health Check
・Direct Object Upload
・OnDemand NAT
動的コンテンツを処理理
リレーショナルデータベース
・Backnet
・Clone Server
・DB Replication
・Functional Firewall
・NFS Sharing
・Read Replica
・NFS Replica
・Inmemory DB Cache
・State Sharing
・Sharding Write
・WAF Proxy
・URL Rewriting
バッチ処理理
・CloudHub
・Rewrite Proxy
・Queuing Chain
・Cache Proxy
・Scheduled Scale Out
・Operational Firewall
・Multi Load Balancer
・Priority Queue
・Job Observer
・Scheduled Autoscaling
43
- 44. 例: Clone Server パターン
• 解決したい課題
• クラウドでの解決 /
パターンの説明
• 実装
• 構造
• 利利点
• 注意点
• その他
• 関連ブログ
44
- 45. 例: Clone Server パターン
• 解決したい課題
• スケールアウト構成は⼀一般的な⼿手法であるが、スモール
スタートしたシステムでは、そもそも複数サーバーで
サービス提供できる構成になっていないことが多い。そ
のような場合、負荷対策が必要となった場合に、時間が
かかってしまう。
45
- 46. 例: Clone Server パターン
• クラウドでの解決 / パターンの説明
• このパターンは、負荷分散が考慮されていないシステム
を、容易易に負荷分散可能なシステムにする。既に存在す
るサーバーをマスターとし、追加するサーバーのマシン
イメージを⽤用意する。そのマシンイメージには、コンテ
ンツ同期やデータベース接続の調整を⾏行行っておく。そう
しておけば、マシンイメージを起動するだけでスケール
アウトによる負荷分散が実現可能となる。
46
- 47. 例: Clone Server パターン
• 実装
• ロードバランサーサービスの「ELB」とマシンイメージの「AMI」を利利⽤用する。負
荷分散できるようにコンテンツ同期などを調整したクローン⽤用AMIを作成し、負荷
が重くなればクローン⽤用AMIからEC2インスタンスを起動する。それをELBの負荷
分散対象にすれば、既存システムの変更更をほぼ⾏行行わずにスケールアウトできる。
• ⼿手順
• (EC2が⼀一つの構成の場合)ELBを⽴立立ち上げて、EC2をその配下に置く。
• 現在稼働しているEC2からクローン⽤用EC2を作成する。
• クローン⽤用EC2は下記の⽅方法などで必要に応じてマスターEC2とファイルの同期を⾏行行う。
• 定期的にrsyncなどを⽤用いて同期
• 起動時にrsyncなどで同期し、適宜Capistranoなどで、アプリ・コンテンツを配信[関連ブ
ログ 1]
• 負荷に伴い(または⾼高負荷が予測されたとき)、必要な数のクローン⽤用EC2を稼働させ、
ELBに追加する。
47
- 49. 例: Clone Server パターン
• 利利点
• 現状のシステムを変更更することなく、容易易にスケールアウトによる負荷分
散を⾏行行うことができる。
49
- 50. 例: Clone Server パターン
• 利利点
• 現状のシステムを変更更することなく、容易易にスケールアウトによる負荷分
散を⾏行行うことができる。
• 注意点
• マスターEC2がSPOFになってしまう。
• マスターEC2でデータベースが動作している場合、クローン⽤用EC2では
データベースを動作させず、データベース接続先をマスターEC2にする。
• ファイルのアップロードや書き込みがある場合は、その処理理をマスター
EC2で⾏行行う(Apacheのmod_̲proxyを⽤用いて、該当URLのみクローン⽤用仮
想サーバーからマスター仮想サーバーにプロキシーさせるなど)。
50
- 52. 例: Clone Server パターン
• その他
• NFS Sharingパターン、NFS Replicaパターンを参照。
• 関連ブログ
1. ↑ @ijin の「Auto Scalingの設定とデプロイ⽅方法」
( http://ijin.github.com/blog/2012/12/03/cdp/ )
52
- 68. Direct Hosting パターン
• ⽤用語
• S3: インターネットストレージ
• EC2: 仮想サーバ
• ポイント
• 可⽤用性と耐久性が⾮非常に⾼高いS3
にコンテンツを配置してEC2か
ら負荷を分散
• S3には「Web Site Hosting」
機能があり、⼀一般的なWebサー
バとして運⽤用も可能
68
- 73. Cache Distribution パターン
• ⽤用語
• CloudFront: CDN
• S3: インターネットストレージ
• EC2:仮想サーバ
• ポイント
• エッジサーバは世界中に存在し
⾼高速にアクセス可能
• 静的コンテンツの配信に最適化
されている
• HTTPS(独⾃自ドメインも)のアク
セスでも利利⽤用可能
73
- 78. Rewrite Proxy パターン
• ⽤用語
• CloudFront: CDN
• S3: インターネットストレージ
• EC2:仮想サーバ
• ポイント
• ProxyサーバがHTML内の画像
などのURLをCroudFrontのも
のに⾃自動で書き換える
• 現在はCloudFrontのマルチオリ
ジン機能で実現することも可能
78
- 88. Stamp パターン
• ⽤用語
• AMI:マシンイメージ
• EC2:仮想サーバ
• ポイント
• 環境構築済みのAMIを使えば、
それを基に⽴立立ち上げたEC2への
設定作業は不不要
• 全く同じOS、データ、設定の
EC2インスタンスを、数百台で
も⽴立立ち上げることが可能になる。
88
- 98. Stack Deployment パターン
• ⽤用語
• Cloud Formation: AWSリソー
スを⼀一気に起動
• テンプレート: ⼀一気に起動する
AWSリソースを記述
• スタック: テンプレートから作
成されたAWSリソース群
• ポイント
• ⼀一気に削除することも可能
• Auto Scalingを利利⽤用してEC2の
起動数のパラメータ化が可能
98
- 102. Weighted Transition パターン
• ⽤用語
• Route 53: DNS
• ELB: ロードバランサー
• EC2: 仮想サーバ
• ポイント
• DNSラウンドロビンを重み付け
して実現することが可能
• Route 53はSLA 100%
• Route 53のエッジサーバは世
界中に存在
102