aws cloud design pattern for enterprise
DESCRIPTION
2014/3/15のJAWS Days 2014セッション資料TRANSCRIPT
AWS Cloud Design Patternfor Enterprise
Ken Tamagawa
Akio Katayama
JAWS DAYS 2014
“AWSクラウドを利用する際に発生する、典型的な問題とそれに対する解決策・設計方法について、先人たちの知恵を分かりやすく分類して、ノウハウとして利用できるように整理したもの”
- Ninja of Three -
AWS クラウドデザインパターンとは
AWSクラウドデザインパターン書籍
• 祝!!Kindle版!!
本日のテーマ
エンタープライズでよく使われるAWSクラウドデザインパターン
↓エンタープライズCDP
自己紹介
• 名前: 玉川憲
• Twitter• @KenTamagawa
• 好きなAWSサービス• S3
• 好きなCDP• Server Swappingパターン
自己紹介
• 名前: 片山 暁雄
• Twitter• @c9katayama
• #ヤマン
• 好きな言語• Java,C#,ActionScript
• 好きなCDP• Cloud DI パターン
自己紹介
• 名前: 鈴木 宏康Twitter• @suz_lab
• 好きな言語• BGP
• 好きなCDP• Cloud HUBパターン
本日ご紹介するエンタープライズ的シナリオ
• ハイブリッド環境のネットワーク構成
• ハイパフォーマンスな業務アプリケーション
• クレジットカード情報を扱う業務システム
• 企業システムのディザスタリカバリ
ハイブリッド環境のネットワーク構成
よくある既存のネットワーク構成
メインデータセンタ
IP-VPN主回線+副回線
よくある既存のネットワーク構成
オフィス
メインデータセンタ
主回線+ワイヤレス
IP-VPN主回線+副回線
よくある既存のネットワーク構成
オフィス
メインデータセンタ
会社支給モバイル(SIM)
主回線+ワイヤレス
IP-VPN
ワイヤレス
主回線+副回線
よくある既存のネットワーク構成
Internet
オフィス
メインデータセンタ
会社支給モバイル(SIM)
主回線+ワイヤレス
IP-VPN
ワイヤレス
主回線+副回線
SaaSソリューション
よくある既存のネットワーク構成
Internet
オフィス
メインデータセンタ
地方/海外オフィス
会社支給モバイル(SIM)
HW VPN
主回線+ワイヤレス
IP-VPN
ワイヤレス
主回線+副回線
SaaSソリューション
よくある既存のネットワーク構成
Internet
オフィス
メインデータセンタ
地方/海外オフィス
BYODモバイル
会社支給モバイル(SIM)
HW VPN
主回線+ワイヤレス
IP-VPN
ワイヤレス
主回線+副回線
ワイヤレスSaaS
ソリューション
どうやってAWSにつなげますか?
Internet
オフィス
メインデータセンタ
地方/海外オフィス
BYODモバイル
会社支給モバイル(SIM)
HW VPN
主回線+ワイヤレス
IP-VPN
ワイヤレス
主回線+副回線
ワイヤレスSaaS
ソリューション
ハイブリッド環境のネットワーク構成例
Internet
オフィス
メインデータセンタ
地方/海外オフィス ソフトウェアVPN
もしくはHTTPSBYODモバイル
会社支給モバイル(SIM)
AWS Direct Connect
ソフトウェアVPN
HW VPN
主回線+ワイヤレス
IP-VPN
ワイヤレス
主回線+副回線
HW VPN
ワイヤレス
AWSとのつなぎかた
AWS Direct Connect(DX)による専用線接続
データセンタVirtual Private Cloud
AWS Direct Connect= 専用線接続
ルータを使ったインターネットVPN
データセンタ
Virtual Private Cloud
AWS Direct Connect= 専用線接続
Internet
地方/海外オフィス
HW VPN
ソフトウェアVPN
データセンタ
Virtual Private Cloud
AWS Direct Connect= 専用線接続
Internet
地方/海外オフィス
HW VPN
ソフトウェアVPN
BYODモバイル
ワイヤレス
HTTPS
データセンタ
Virtual Private Cloud
AWS Direct Connect= 専用線接続
Internet
地方/海外オフィス
HW VPN
HTTPS
BYODモバイル
ワイヤレス
専用線接続(DX)のつなぎかた
AWS Direct Connect(DX)による専用線接続
データセンタ
Virtual Private Cloud
AWS Direct Connect= 専用線接続
AWS Direct Connect(DX)による専用線接続
データセンタ
Virtual Private Cloud
Virtual Private Cloud
AWS Direct Connect= 専用線接続
Direct Connectの中には複数のVPC接続を設定できる
データセンタ
Virtual Private Cloud
Virtual Private Cloud
AWS Direct Connect= 専用線接続
Multi-accounts DXパターン「DXでは異なるAWSアカウントで、AWS Direct Connectをシェアできる」
データセンタ
Invited
Account A
Invited
Account B
AWS Direct Connect= 専用線接続
VPC間どうしのネットワーク経路?
VPC間どうしのネットワーク経路?
データセンタ
Virtual Private Cloud
Virtual Private Cloud
ヘアピンDXパターンVPC間のネットワーク接続をDX経由で
データセンタ
Virtual Private Cloud
Virtual Private Cloud
ソフトウェアVPNを使ってVPC間同士をつなぐ
Corporate Data center
Virtual Private Cloud
Virtual Private Cloud
専用線接続(DX)の冗長化
Redundant DXパターン
データセンタVirtual Private Cloud
AWS Direct Connect= 専用線接続
Hybrid VPN Connectionパターン
データセンタVirtual Private
Cloud
AWS Direct Connect= 専用線接続
インターネットVPN
IP-VPN網もからめると?
IP-VPC DXパターン
オフィス
メインデータセンタ
主回線+ワイヤレス
IP-VPN主回線+副回線
IP-VPC DXパターン
オフィス
メインデータセンタ
AWS Direct Connect
主回線+ワイヤレス
IP-VPN主回線+副回線
モバイルもつながる
オフィス
メインデータセンタ
会社支給モバイル(SIM)
AWS Direct Connect
主回線+ワイヤレス
IP-VPN
ワイヤレス
主回線+副回線
これまでの話をまとめると
ハイブリッド環境のネットワーク構成例
オフィス
メインデータセンタ
会社支給モバイル(SIM)
AWS Direct Connect
主回線+ワイヤレス
IP-VPN
ワイヤレス
主回線+副回線
ハイブリッド環境のネットワーク構成例
Internet
オフィス
メインデータセンタ
会社支給モバイル(SIM)
AWS Direct Connect
主回線+ワイヤレス
IP-VPN
ワイヤレス
主回線+副回線
HW VPN
ハイブリッド環境のネットワーク構成例
Internet
オフィス
メインデータセンタ
会社支給モバイル(SIM)
AWS Direct Connect
ソフトウェアVPN
主回線+ワイヤレス
IP-VPN
ワイヤレス
主回線+副回線
HW VPN
ハイブリッド環境のネットワーク構成例
Internet
オフィス
メインデータセンタ
海外オフィス
会社支給モバイル(SIM)
AWS Direct Connect
ソフトウェアVPN
HW VPN
主回線+ワイヤレス
IP-VPN
ワイヤレス
主回線+副回線
HW VPN
ハイブリッド環境のネットワーク構成例
Internet
オフィス
メインデータセンタ
海外オフィス ソフトウェアVPNもしくはHTTPS
BYODモバイル
会社支給モバイル(SIM)
AWS Direct Connect
ソフトウェアVPN
HW VPN
主回線+ワイヤレス
IP-VPN
ワイヤレス
主回線+副回線
HW VPN
ワイヤレス
ハイパフォーマンスな業務アプリケーション
Ondemand
disk
High
Availability
NATSynchronized
DiskDB
Replication
Multi-Server
Multi-Datacenter
Self
Healing
Self Healing パターン
• インスタンスを起動後、インスタンス自身でデータ領域のマウントを実施
• Cloud DIパターンを併用
• 実装• AutoScalingをmin 1,max 1でセットする
• Fail後にAMIから起動したインスタンスから、EBSなどをマウント
• ヘルスチェックは監視サービスやELBも利用可能
Synchronized Disk パターン
• 共有ディスクを使ったフェイルオーバーを実現したい
• 実装• EC2を複数台起動し、それぞれにデータ領域用のEBSをマウントする
• データソフトウェアを導入し、データを同期する• DRBD• CLUSTERPRO• DataKeeper など
Ondemand Disk パターン
• ストライピングに加えて、EBS最適化インスタンスやProvisioned IOPSを利用
• 高いディスクIO性能や、安定したIOが必要
High Availability NAT パターン
• SPOFとなるNATサーバを冗長化したい
• 実装• NATサーバを2台起動し、
source/destチェックを外す
• 片方のインスタンスをインターネットゲートウェイとして登録
• NATインスタンスがダウンした時点で、ルーティングテーブルを書き換える
• その他パターン
High Availability Forward Proxy パターン
• ELB+Proxy+AutoScalingでの実装
• Squid, ExaProxyなどのProxyサーバを使用
• 利点• 障害発生時でも自動的に回復する• PROXY部分でログが取れる
• 欠点• アプリ/OSごとのプロキシ設定が必要
• 外部接続用のProxyを冗長化したい
On-premise Load Balancing パターン
• アクセス元のシステムの都合上、既存の構成を変更せずにクラウドのスケールメリットを生かしたい
• オンプレのLBのバックエンドに、仮想サーバを配置する
• アクセス元システムの都合• アクセスIPアドレスを変えられない
• WAF/IDSの振り先がIPアドレスしか受け付けない
• 認証やコンテントベース振り分けなど、使いたいLBの機能がある
Floating VPN Gateway パターン
• テストなどで、同一ネットワーク領域の環境を複数利用したい
• クラウド上に同一ネットワーク領域の環境を複数用意し、VPNの接続口をつけかえることで環境を切り替える
クレジットカード情報を扱う業務システム
(PCI-DSS)
事例 コイニー株式会社
下記のガイドラインをベースにCDPを整理してみる
https://www.pcisecuritystandards.org/pdfs/PCI_DSS_v2_Cloud_Guidelines.pdf
PCI DSS Cloud Computing Guideline
AWS PCI Compliance Package(NDAベース)
http://aws.amazon.com/jp/compliance/
PCIデータセキュリティ基準 概要安全なネットワークの構築と維持
要件1 カード会員データを保護するために、ファイアウォールをインストールして構成を維持する
要件2 システムパスワードおよび他のセキュリティパラメータにベンダ提供のデフォルト値を使用しない
カード会員データの保護 要件3 保存されるカード会員データの保護
要件4 オープンな公共ネットワーク経由でカード会員データを伝送する場合、暗号化する
脆弱性管理プログラムの整備 要件5 アンチウィルスソフトウェアまたはプログラムを使用し、定期的に更新する
要件6 安全性の高いシステムとアプリケーションを開発し、保守する
強固なアクセス制御手法の導入
要件7 カード会員データへのアクセスを、業務上必要な範囲内に制限する
要件8 コンピュータにアクセスできる各ユーザに一意のID を割り当てる
要件9 カード会員データへの物理アクセスを制限する
ネットワークの定期的な監視およびテスト
要件10 ネットワークリソースおよびカード会員データへのすべてのアクセスを追跡および監視する
要件11 セキュリティシステムおよびプロセスを定期的にテストする
情報セキュリティポリシーの整備
要件12 すべての担当者の情報セキュリティポリシーを整備する
PCI-DSS標準に準拠しているAWSサービスas of 2014/03/14
• Amazon DynamoDB / Amazon SimpleDB
• Amazon Elastic Block Storage (Amazon EBS)
• Amazon Elastic Compute Cloud (Amason EC2)
• Amazon Elastic Map Reduce (Amazon EMR)
• Amazon Glacier
• Amazon Redshift
• Amazon Relational Database Service (Amazon RDS)
• Amazon Simple Storage Service (Amazon S3)
• Amazon Virtual Private Cloud (Amason VPC)
• AWS CloudHSM
• AWS Direct Connect
• AWs Identity and Access Management (IAM)
• Elastic Load Balancing (ELB)
• 上記の基礎となる物理インフラストラクチャと AWS 管理環境
• 上記に定義されているサービスの AWS PCI 準拠の範囲は、すべての AWS データセンターリージョンと場所に適用されます。
Chained Defense-in-Depthパターン
VPN
Web Web
App App
NAT
Web Web
App App
NAT VPN縦深防御とは、多数の防御策を多層的に施すことで、リスクを軽減する仕組み
レイヤ毎にサブネットを分けルーティングを管理
レイヤ毎にセキュリティグループを分け必要部分のみつなぐ
Chained Defense-in-Depthパターン
VPN
Web Web
App App
NAT
Web Web
App App
NAT VPN
Web
Tie
rA
pp
Tie
rD
B T
ier
Pu
blic F
acin
g
VPN NFW IPS/IDS
WAF AV
VPN NFW IPS/IDS
WAF AV
VPN NFW IPS/IDS
WAF AV
ELB End-to-End Encryptionパターン
ELBでSSL terminationSSL処理をELBで実施証明書の管理が楽
Web Web Web Web
Web
Tie
r
Backend-SSLで裏側も暗号化全通信経路の暗号化
SSL termination
Backend SSL
High Availability Forward Proxy パターン
• ELB+Proxy+AutoScalingでの実装
• Squid, ExaProxyなどのProxyサーバを使用
• 利点• 障害発生時でも自動的に回復する• PROXY部分でログが取れる
• 欠点• アプリ/OSごとのプロキシ設定が必要
• 外部接続用のProxyを冗長化したい
Log Aggregationパターン
Encrypted Log Aggregationパターン
暗号化
OnDemand Bastionパターン
踏み台サーバ(Bastion)の利用はどのような環境でも推奨
OnDemand Bastionでは利用時のみ、踏み台サーバを起動する
セキュリティ面、コスト面でGood
High Availability IAMパターン
各AZ毎にRoleを分けて設定することで、設定変更の失敗があったときでも、システム全体が一度に影響を受けないようにできる
http://blogs.aws.amazon.com/security/post/TxQ0OYRWOOK9L3/High-Availability-IAM-Design-Patterns
参考: Storage/Data Security
EC2
EBS
S3
Glacier
Encryption
ClientKey Management
FileEncryption
Full DiskEncryption
DatabaseEncryption
AWS ServerSide
Encryption
KeyManagement
FileEncryption
Full DiskEncryption
DatabaseEncryption
AWS ServerSide
Encryption
FileEncryption
Full DiskEncryption
DatabaseEncryption
AWS ServerSide
Encryption
S3
Glacier
On
premiseEncryption
Client
EC2On
premise
企業システムのディザスタリカバリ
ディザスタリカバリ
• ディザスタリカバリ― (DR) とは自然災害・人的災害発生時に企業が技術的なインフラストラクチャを復旧もしくは継続させるために準備する一連のプロセス・ポリシー・および手順のこと
• クラウドでの解決• DRにかかる予算やオンプレミスのIT資産を抑える
• セカンダリの物理データセンターの除去
• テープバックアップ・アーカイブの安全な格納
• DR=解決したい課題• 昨今の重要トピックだが、実現できている企業は多くない
可用性とディザスタリカバリーレベルの選択
DRのコスト増
リカバリなし
データリカバリのみ
スタンバイシステム
高い可用性
継続的可用性
データリカバリ
コールドサイト
ウォームサイト
ホットサイト
常時-15秒
15秒-30分
30分-72時間
72時間以上
対災害性の向上
アプリケーションの可用性
なし
可用性レベル DRレベル復旧時間
• 実装• アプリケーションは、オンプレ/AWSにデプロイ
• DBは同期書き込みを実施(DB Replication Pattern)
• すべてのシステムを起動しておく
Hot Standby DC 継続的可用性
オンプレミス - AWS AWS - AWS
• 実装• アプリケーションは、オンプレ/AWSにデプロイ
• デプロイ後、DRサイト側のアプリサーバは停止
• DBは同期もしくは非同期で書き込み
Warm Standby DC 高い可用性
オンプレミス - AWS AWS - AWS
• 実装• アプリケーションはDRにデプロイ後停止
• DBはデータをS3に定期バックアップ/Snapshot
• 災害発生時はS3からリストア
Cold Standby DC スタンバイシステム
オンプレミス - AWS AWS - AWS
データリカバリのみVirtual Cloud Storage
• 既存のバックアップ方式の変更にはコストがかかる
• オンプレミスに、自動的にクラウドにデータをアップロードするストレージアプライアンスを配置し、既存バックアップに組み込む
• アプライアンス• AWS Storage Gateway
Stored or Cached Volume
LTV(Virtual Tape Library)
• Riverbed Whitewater
• S3対応NAS(QNAP,Buffalo)
まとめ
本日ご紹介したエンタープライズ的シナリオ
• ハイブリッド環境のネットワーク構成
• ハイパフォーマンスな業務アプリケーション
• クレジットカード情報を扱う業務システム
• 企業システムのディザスタリカバリ
Resources
• AWSクラウドデザインパターン Webサイト• http://aws.clouddesignpattern.org/
• http://en.clouddesignpattern.org (英語)
• Facebookページ• https://www.facebook.com/awscdp
• Cacoo CDP テンプレート• https://cacoo.com/store/templates/category/10018
• 書籍• 設計ガイド
• http://www.amazon.co.jp/dp/4822211983
• 実装ガイド• http://www.amazon.co.jp/dp/4822211967
• Kindle版設計ガイド• http://www.amazon.co.jp/dp/B00I3XD0I0/
Thanks!
Special Thanks:AWSをご利用いただいている皆様、荒木さん、松尾さん、梅谷さん、山本さん、吉松さん、渡邊さん、松本さん、井上さん、八木橋さん、江川さん、高田さん