84
AWSクラウドデザインパターン (CDP) を極める

AWSクラウドデザインパターン (CDP) を極める - · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

  • Upload
    dokhanh

  • View
    245

  • Download
    5

Embed Size (px)

Citation preview

Page 1: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

AWSクラウドデザインパターン (CDP) を極める

Page 2: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

玉川憲の自己紹介

所属

技術統括部長 / エバンジェリスト(初号機)

ゕマゾンデータサービスジャパン株式会社

ID

@KenTamagawa

好きなAWSサービス

Amazon S3

好きなCDP

Server Swapping

Page 3: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

インフラストラクチャは

ソフトウェアになった

Page 4: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

$options = array('KeyName' => "User's Keys", 'InstanceType' => "m1.small");

$res = $ec2->run_instances("ami-48aa4921", 1, 1, $options);

プログラマブル!

Page 5: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

AWS のグローバルなインフラ

AWSのサービス

お客様のアプリケーション

ライブラリ & SDKs

Java, PHP, .NET,

Python, Ruby

Web インターフェース

Management Console

IDE プラグイン

Eclipse

Visual Studio

デプロイと自動化

AWS Elastic Beanstalk

AWS CloudFormation

認証 & 請求

AWS IAM

Identity Federation

Consolidated Billing

モニタリング

Amazon CloudWatch

スケーリング

Auto Scale

ネットワーク&ルーティング

Amazon VPC

Amazon Elastic LB

Amazon Route 53

AWS Direct Connect

コンテンツ配信

Amazon

CloudFront

メッセージング

Amazon SNS

Amazon SQS

分散処理

Elastic

MapReduce

メール配信 Amazon SES

コンピュータ処理

Amazon EC2

ストレージ

Amazon S3

Amazon EBS

データベース Amazon RDS

Amazon SimpleDB

Amazon DynamoDB

Amazon Elasticache

Page 6: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

Amazon Appstoreで日本アプリ登録開始!

Page 7: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

新世代の

アーキテクティング

が必要

Page 8: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

AWS使いは、こんなこと良く言う

「万が一障害おきても、EIP付け替えればいいや。EBSスワップして一瞬で復帰って、すごい楽じゃないですか?」

「EC2の前にELBを立てて、マルチAZに振り分けよう。最悪マルチリージョンして、LBRすれば?」

「EC2にNFS入れて、エフゔーメラルデゖスクにrsyncすれば同期も楽でしょ?」

Page 9: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

ネタが細かすぎて

伝わらない

選手権

Page 10: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

AWS使いこなし度合と人数分布

人口

AWS使いこなし度合

Page 11: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

AWS使いこなし度合と人数分布

人口

AWS使いこなし度合

クラウドの良さを もっと知ってもらいたい

Page 12: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

やりたいこと

AWSクラウドを

より伝わりやすくしたい

既存ノウハウを伝えたい

(暗黙知→形式知化)

Page 13: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

そこで

AWSクラウドデザインパターン[beta]

(略して、CDP)

Page 14: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

AWS クラウドデザンパターンとは

AWSクラウドを使ったシステムゕーキテクチャ設計を行う際に発生する、典型的な問題とそれに対する解決策・設計方法を、分かりやすく分類して、ノウハウとして利用できるように整理したものである。

Page 15: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

例: Clone Serverパターン

仮想 サーバ

Web Web

ロードバランサ

マシン イメージ

Web

①サーバ起動

仮想 ディスク

マスタ

②ディスクを同期

Page 16: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

パターンの記述

各パターン毎に下記を整理

解決したい課題

解決方法

実装

構造(図)

利点

注意点

Page 17: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

例: Job Observerパターン

Page 18: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

例:FloatingIPパターン

Page 19: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

例: Job Observerパターン

Floating AC Adaptor パターン

Page 20: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

CDPカテゴリ (10月5日時点)

基本パターン Snapshot Stamp Scale Up Ondemand Disk 可用性を高める Multi-Server Multi-Datacenter Floating IP Deep Health Check 動的コンテンツを処理 Scale Out Clone Server NFS Sharding NFS Replica State Sharing URL Rewriting Rewrite Proxy Cache Proxy Scheduled Scale Out

静的コンテンツを処理 Web Storage Direct Hosting Private Distribution Cache Distribution Rename Distribution クラウドへデータをアップロード Write Proxy Storage Index Direct Object Upload リレーショナル・データベース DB Replication Read Replica Inmemory DB Cache Sharding Write

バッチ処理 Queuing Chain Priority Queue Job Observer Scheduled Autoscaling 運用保守 Bootstrap Cloud DI Stack Deployment Server Swapping Monitoring Integration Web Storage Archive Hybrid Backup ネットワーキング OnDemand NAT Backnet Functional Firewall Operational Firewall Multi Load Balancer WAF Proxy CloudHub

CDP48

Page 21: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

Wikiでノウハウを共有

Page 23: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

書籍でノウハウを共有

http://www.amazon.co.jp/dp/4822211967/

Amazon Web Services クラウドデザインパターン 設計ガイド

Page 24: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

Ninja of Three

CDP、誰が作ったの?

Page 25: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

Ninja of Three

表千家 裏千家

Page 26: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

CDPは日本発!

日本から 世界に発信 していこう!

Page 27: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

AWSの初のグローバルカンファレンス 11月27-29日@ラスベガス!

Page 28: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

パターンを活用した実装シナリオ

画像動画配信サイト

大量のユーザに配信したい

Eコマースサイト

可用性、耐障害性高くしたい

キャンペーンサイト

突発的アクセス増加に耐えたい

他にも多数。。

Page 29: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

AWSクラウドデザインパターン -コンテンツ配信編-

Page 30: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

このシナリオの背景

雲の写真を載せるブログサト開始

はじめは個人的に開始

Page 31: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

この実装シナリオの狙い

コンテンツ配信サトをとりあげ、

運用効率

コスト効果

を高めるパターンを中心にAWSを使用した実装方法を解説

Page 32: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

利用環境・ソフトウェゕ

Amazon Linux (64bit)

Movable Type 5.12 (MTOS)

Apache HTTP Server 2.2.21

MySQL 5.1.52

Perl 5.10.1

Page 33: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

課題

課題: ユーザー要望により動画を公開

サズ大きい、容量読めない

Page 34: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

Web Storageパターン

Page 35: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

まさかの大人気

雲マニゕ御用達のサトへ

ゕクセス増により、 ゕクセス出来ない状況に

Page 36: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

Direct Hostingパターン

Page 37: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

まさかの海外展開

海外有名ニュースサトへの掲載が決定

掲載までに、 海外からのゕクセスへの対応が必要

Page 38: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

Cache Distributionパターン

Amazon CloudFront

Page 39: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

最終的に

ブログコンテンツ

動画・画像集

コンテンツ管理・コメント投稿

Page 40: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

デザン推移

動画 人気

海外

Page 41: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

AWSクラウドデザインパターン -Eコマース編-

Page 42: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

このシナリオの背景

まさかの 雲グッズ販売サト開始

Page 43: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

この実装シナリオの狙い

Eコマースサトをとりあげ、

可用性

耐障害性

を高めるパターンを中心にAWSを使用した実装方法を解説

Page 44: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

利用環境・ソフトウェゕ

EC-CUBEバージョン 2.11.4

Amazon Linux (64bit)

PHPバージョン PHP 5.3.8

DBバージョン MySQL 5.1.52

Page 45: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

ec.cloudesignpattern.org

EC-CUBEバージョン 2.11.4

Amazon Linux (64bit)

PHPバージョン PHP 5.3.8

DBバージョン MySQL 5.1.52

Page 46: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

初期のデザン

EC-CUBE Apache MySQL

Page 47: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

課題

課題: 利用ソフトのバージョンゕップが必要

Page 48: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

Floating IPパターンの適用後

EC2

テスト 環境

④EIPを付け替える

EC2

本番 環境

EIP

Amazon Route 53 ec.clouddesignpattern.org

EC2 AMI

①AMIを 取得する

②テスト環境用の EC2ンスタンスを 立ち上げる

③ソフトウェゕをゕップデートしテストを行う

EIP「46.51.xxx.xxx」

Page 49: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

課題

課題: サーバに障害が発生して、 速やかに復旧したい

Page 50: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

Server Swappingパターンの適用後

仮想 サーバ

仮想 サーバ

サーバに障害

マシン メージ

サーバ起動

仮想デゖスク

データ

仮想デゖスク

データ

Page 51: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

課題

課題: Webサーバが落ちても、システム全体で稼働し続けるようにしたい

Page 52: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

Multi-Serverパターン

EC2 ンスタンス

冗長 構成

EC2 ンスタンス

オリジ ナル

MySQL DB ンスタンス

ロードバランサ

Page 53: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

RDSの作成

53

Page 54: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

Multi-Serverパターンの適用後

EC2 ンスタンス

冗長 構成

EC2 ンスタンス

オリジ ナル

MySQL DB ンスタンス

ロードバランサ

Page 55: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

ロードバランサの起動

Page 56: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

ロードバランサの起動

EC-CUBEでは、SSLをサポート。 ELBでも対処可能だが、今回はELBではSSLの処理はしないことに。

Page 57: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

ELB配下にEC2を追加

AMIからEC2起動

ELB配下に追加

Page 58: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

Multi-Serverパターンの適用後

EC2 ンスタン

冗長 構成

EC2 ンスタン

オリジ ナル

MySQL DB ンスタン

ロードバランサ サーバーわざと 停止させても動く??

Page 59: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

課題

課題: DB部分のSPOFを解消したい

DB Replicationパターンを適用し、 DBをマルチ構成に切り替える

Page 60: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

マルチAZに変更

Page 61: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

DB Replicationパターンの適用後

ゾーン1a

EC2 ンスタンス

冗長 構成

EC2 ンスタンス

オリジ ナル

ゾーン1b

同期

ロードバランサ

MySQL DB ンスタンス

MySQL DB スタンバ

Page 62: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

課題

課題: サーバレベルだけでなく、データセンタレベルの障害にも対応できるようにする

Multi-Datacenterパターンを適用し、 すべてのレヤで冗長化を行う

Page 63: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

Multi-Datacenterパターンの適用後

EC2

インスタンス

冗長

構成

EC2

インスタンス

オリジ

ナル

ロードバランサ

同期

ゾーン1a ゾーン1b

MySQL DB ンスタンス

MySQL DB スタンバ

Page 64: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

デザン推移

障害対応 障害対策

SPOF回避

最終

Page 65: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

AWSクラウドデザインパターン -キャンペーンサイト編-

Page 66: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

背景とシナリオ

ECサトの商品が大人気

さらなる販促のためキャンペーンサト

Page 67: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

利用環境・ソフトウェゕ

Amazon Linux (32bit)

Apache HTTP Server 2.2.21

MySQL 5.1.52

PHP 5.3.8

WordPress 3.3.1

Page 68: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

キャンペーンサト開設

スモールスタート

EC2は1ンスタンスで運用

Page 69: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

課題

課題: シングル構成のサーバーをスケールゕウトさせたい

Page 70: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

Clone Server パターン

クローン用AMIからスケールゕウト

Page 71: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

課題

課題: リゕルタムで共有コンテンツを反映させたい

Page 72: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

NFS Sharing パターン

Page 73: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

課題

課題: NFS部分にパフォーマンスの問題が。。

Page 74: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

NFS Replica パターン

Page 75: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

課題

課題: コスト効果高く、リクエストをさばく

Page 76: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

URL Rewriting パターン

S3に静的コンテンツを分散

Mod_ext_filterでコンテンツ中のURLを動的に書き換え

Page 77: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

その他の実装シナリオ

画像動画配信サイト 大量のユーザに配信したい

Eコマースサイト 可用性、耐障害性高くしたい

キャンペーンサイト 突発的アクセス増加に耐えたい

他にも多数 ログ解析のシナリオ 監視のシナリオ

Page 78: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

書籍でノウハウを共有

http://www.amazon.co.jp/dp/4822211967/

Amazon Web Services クラウドデザインパターン 設計ガイド

Page 79: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

CDPアンチパターン!

Page 80: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

さいごに

Page 81: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

クラウドゕーキテクテゖング原則

• できるだけサービスを利用

• 机上実験よりも実証実験

• スモールスタートからスケールアウト

• 変化に対し全レイヤで対処

• 故障のための設計(Design For Failure)

• 最初だけでなく周期的なカイゼン

Page 82: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

One More Thing

Page 83: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

CDPでAWSをもっと楽しく

Page 84: AWSクラウドデザインパターン (CDP) を極める -  · PDF fileAmazon DynamoDB Amazon Elasticache . Amazon Appstore

ご清聴ありがとうございました @KenTamagawa