クラウド時代のアーキテクチャ設計

93
クラウド時代の アーキテクチャ設計 玉川 (Twitter: @KenTamagawa) エバンジェリスト v 1.1 - July 21st, 2011

Upload: -ken-tamagawa-amazon-web-services

Post on 08-Sep-2014

29 views

Category:

Sports


2 download

DESCRIPTION

 

TRANSCRIPT

Page 1: クラウド時代のアーキテクチャ設計

クラウド時代のアーキテクチャ設計

玉川 憲 (Twitter: @KenTamagawa)

エバンジェリストv 1.1 - July 21st, 2011

Page 2: クラウド時代のアーキテクチャ設計

玉川 憲 (Ken Tamagawa)

アマゾンでクラウドを啓蒙するエバンジェリスト

Twitter: @KenTamagawa

Page 3: クラウド時代のアーキテクチャ設計

2011年8月6日に行われたJapan Innovation Leaders Summit

の資料です

この資料

Page 4: クラウド時代のアーキテクチャ設計

国の境目がエンジニアのモチベーションの境目で

あってはならない

前回の講演

Page 5: クラウド時代のアーキテクチャ設計

クラウドにより、ITリソースに誰もが手軽にアクセスできるように

「ITのデモクラシー」

前回の講演

Page 6: クラウド時代のアーキテクチャ設計

AWSは「エンジニアのためのレゴブロック」

前回の講演

Page 7: クラウド時代のアーキテクチャ設計

オープンソース→ソフトのライセンス費を90%削減

AWSのクラウド→インフラの運用費を90%削減

Page 8: クラウド時代のアーキテクチャ設計

アーキテクチャ設計

Page 9: クラウド時代のアーキテクチャ設計

Intro

はじめに

Page 10: クラウド時代のアーキテクチャ設計

Intro 1 2 3 4 5 6 7}7つの習慣はじめに

Page 11: クラウド時代のアーキテクチャ設計

Intro 1 2 3 4 5 6 7

7つの習慣

End

さいごに

はじめに

Page 12: クラウド時代のアーキテクチャ設計

Intro 1 2 3 4 5 6 7 End

はじめに

Page 13: クラウド時代のアーキテクチャ設計

物理デバイス vs. クラウドスケーラビリティ

クラウドをコントロールするコスト

クラウドアーキテクトとして

Page 14: クラウド時代のアーキテクチャ設計

DAS(Direct-Attached Storage)

SAN(Storage Area Network)

NAS(Network-Attached Storage)

物理的なストレージ

Page 15: クラウド時代のアーキテクチャ設計

EC2(ローカルストレージ)

EBS(Elastic Block Store)

S3(Simple Storage Service)

SimpleDB, SQS, etc.

クラウド時代のストレージ

Page 16: クラウド時代のアーキテクチャ設計

特性を理解する

99.999999999 %

例えば、S3の耐久性は:

S3(Simple Storage Service)

1万個のファイルを1千万年おいても失わない設計

Page 17: クラウド時代のアーキテクチャ設計

スケーラビリティ

Small

MediumLarge

Page 18: クラウド時代のアーキテクチャ設計

パフォーマンスを維持する運用がやりやすい回復力に富んでいるコスト効率が良い

真にスケーラブルなシステム

Page 19: クラウド時代のアーキテクチャ設計

Amazon Web Services API

SoftwareLibrariesand SDK

CommandLine

Interface

ResourceManagement

Tools

WebManagement

Console

Page 20: クラウド時代のアーキテクチャ設計

アーキテクチャvsコスト

Page 21: クラウド時代のアーキテクチャ設計

線形なコストモデルは重要

Page 22: クラウド時代のアーキテクチャ設計

線形なコストモデルは重要

Page 23: クラウド時代のアーキテクチャ設計

EC2インスタンス(通常, 高CPU, 高メモリ)

データの圧縮バックアップ戦略

アーキテクチャvsコスト

Page 24: クラウド時代のアーキテクチャ設計

EC2タイプ: Small vs Medium

Medium

Elastic Compute Unit

RAM

ストレージ

時間課金(円)

Small

1

1.7 GB

160 GB

7円

5

1.7 GB

350 GB

14円

5X

2.2X

2X

1 ECU = 1.2 GHz Xeon

Page 25: クラウド時代のアーキテクチャ設計

スケールアップ/スケールアウト

スケールアップ(垂直)

Page 26: クラウド時代のアーキテクチャ設計

Demo:EC2のスケールアップ

Page 27: クラウド時代のアーキテクチャ設計
Page 28: クラウド時代のアーキテクチャ設計

スケールアップ/スケールアウト

スケールアウト (水平)

Page 29: クラウド時代のアーキテクチャ設計

物理デバイス vs. クラウドスケーラビリティ

クラウドをコントロールするコスト

クラウドアーキテクトとして

Page 30: クラウド時代のアーキテクチャ設計

EBSを付けたEC2をELBの配下におき

Route 53で独自ドメインをつけ

Cloudfrontで動画配信、S3にバックアップ、

DBをマルチAZのRDSで動かす

クラウド用語集!

Page 31: クラウド時代のアーキテクチャ設計

Intro 1 2 3 4 5 6 7 End

故障に備えた設計そうすれば、何も故障しない

Page 32: クラウド時代のアーキテクチャ設計

フェイルセーフの例

Page 33: クラウド時代のアーキテクチャ設計

EBSのスナップショットを用いるサーバーをAMIとしてバックアップ/リストアロードバランサ(ELB)を用いるアベイラビリティゾーン(AZ)でEC2を分散Relational Database Service + マルチAZ

Elastic IPを使用する

故障に備えた設計そうすれば、何も故障しない

Page 34: クラウド時代のアーキテクチャ設計

AWSの世界規模のインフラ

Page 35: クラウド時代のアーキテクチャ設計

US West US EastAP Japan

AP Singapore

EU West

リージョンリージョン: 複数のデータセンターで構成

Page 36: クラウド時代のアーキテクチャ設計

AZ同士は、地理的に離れた場所に

A B

C D

A B

C

A B

CA B

A B

US West US EastAP Japan

AP Singapore

EU West

アベイラビリティゾーン (AZ)

Page 37: クラウド時代のアーキテクチャ設計

A B

C D

A B

C

A B

CA B

A B

US West US East

EU West

AP Japan

AP Singapore

AZ同士は、地理的に離れた場所にリージョン内のネットワークは高速

アベイラビリティゾーン (AZ)

Page 38: クラウド時代のアーキテクチャ設計

A B

AP Tokyo

マルチAZ

AP Tokyo

EC2

EC2

EC2

EC2

Tokyo-1a Tokyo-1b

Page 39: クラウド時代のアーキテクチャ設計

RDSのマルチAZ

AP Tokyo

RDS RDS

Tokyo-1a Tokyo-1b

マスタDBスタンバイレプリカ

自動同期

Page 40: クラウド時代のアーキテクチャ設計

Demo:RDSのマルチAZ

Page 41: クラウド時代のアーキテクチャ設計
Page 42: クラウド時代のアーキテクチャ設計

Intro 1 2 3 4 5 6 7 End

疎結合にする

Page 43: クラウド時代のアーキテクチャ設計

世界初の郵便サービスは?

Page 44: クラウド時代のアーキテクチャ設計

Cursus Publicus

Page 45: クラウド時代のアーキテクチャ設計

Legion XI

Legion III

Legion VI

Legion IX

Rome

Lutetia

Hispania

Londinium

M

世界初の伝令システム

M

M

M

M

M

M

Page 46: クラウド時代のアーキテクチャ設計

信頼性の高い、スケーラブルなキュー無制限のキュー / メッセージメッセージのロック / アンロックAWSの外からも利用可能

Simple Queue Service

Page 47: クラウド時代のアーキテクチャ設計

A

インプット

B保存

C

エンコードD公開

例: ビデオエンコーディング

シーケンシャルな作業

Page 48: クラウド時代のアーキテクチャ設計

Aインプット

B C D保存 エンコード 公開

MM MMMMMM

MMM

例: ビデオエンコーディング

非同期で行える

SQS キュー SQS キュー SQS キュー

Page 49: クラウド時代のアーキテクチャ設計

CB CC CCBA

インプットB C D保存 エンコード 公開

MM MMMMMM

MMM

例: ビデオエンコーディング簡単にスケール!

SQS キュー SQS キュー SQS キュー

Page 50: クラウド時代のアーキテクチャ設計

Intro 1 2 3 4 5 6 7 End

伸縮自在に

Page 51: クラウド時代のアーキテクチャ設計

ミツバチの集団

Page 52: クラウド時代のアーキテクチャ設計

ミツバチの巣

ミツバチのダンス

花水

ダイナミックなアサイン

Page 53: クラウド時代のアーキテクチャ設計

AmazonWeb

Services

Cloudwatch

アプリケーション

EC2 EC2 EC2

EC2 EC2

EC2

EC2 EC2 EC2

伸縮自在なAmazon EC2

EC2

EC2 EC2

Page 54: クラウド時代のアーキテクチャ設計

AmazonWeb

Services

伸縮自在なAmazon EC2

EC2 EC2 EC2

EC2 EC2

EC2

EC2

EC2EC2

EC2 EC2 EC2

Cloudwatch

アプリケーション

Page 55: クラウド時代のアーキテクチャ設計

AmazonWeb

Services

EC2 EC2 EC2

EC2

EC2

EC2

EC2

EC2EC2

EC2 EC2 EC2

Cloudwatch

伸縮自在なAmazon EC2

アプリケーション

Page 56: クラウド時代のアーキテクチャ設計

AmazonWeb

Services

EC2 EC2 EC2

EC2

EC2

EC2 EC2 EC2

EC2

EC2 EC2

Cloudwatch

伸縮自在なAmazon EC2

EC2

アプリケーション

Page 57: クラウド時代のアーキテクチャ設計

スケーリング: 周期的/ イベント/ AutoScaling

CloudWatchのメトリクス何でもスケール (サーバー、ストレージ等)

できるだけツールを使うインスタンスの自動ブートストラップ

Elasticity: 伸縮自在性

Page 58: クラウド時代のアーキテクチャ設計

スケーリング: 周期的 / イベント / 自動CloudWatchのメトリクス何でもスケール (サーバ、ストレージ等)

できるだけツールを使うインスタンスの自動ブートストラップ

Elasticity: 伸縮自在性

EC2のスケールアップ(1→5サーバー)

EBSのスケールアップ

(20 GB →100 GB)

Page 59: クラウド時代のアーキテクチャ設計

Demo:Autoscalingの設定

EC2のスケールアウト

Page 60: クラウド時代のアーキテクチャ設計
Page 61: クラウド時代のアーキテクチャ設計
Page 62: クラウド時代のアーキテクチャ設計

Intro 1 2 3 4 5 6 7 End

動/静的データの配置

Page 63: クラウド時代のアーキテクチャ設計

動的データはEC2の近くに配置する例: 大規模データ処理は同じAZを使う

静的データはユーザの近くに配置する例: Cloudfrontを用いたコンテンツ配信

動的データ/静的データの配置

Page 64: クラウド時代のアーキテクチャ設計

リージョンに加えて、、

Page 65: クラウド時代のアーキテクチャ設計

Amazon Cloudfront + Route 53コンテンツ配信ネットワーク (CDN) + DNS

Dallas

St.Louis Miami

Jacksonville

Los Angeles

Palo Alto

Seattle

Ashburn

Newark

New York

Dublin

LondonAmsterdam

Stockholm

FrankfurtParis

Singapore

Hong Kong

Tokyo

Page 66: クラウド時代のアーキテクチャ設計

Intro 1 2 3 4 5 6 7 End

並列処理を活かす

Page 67: クラウド時代のアーキテクチャ設計

新幹線は並列処理?

車体ごとにモーター

Page 68: クラウド時代のアーキテクチャ設計

Elastic Map Reduce (EMR): Hadoopクラスタマルチパーツアップロード for Amazon S3

Elastic Load Balancing

並列処理を使い倒す

Page 69: クラウド時代のアーキテクチャ設計

Demo:Elastic Load Balancing

Page 70: クラウド時代のアーキテクチャ設計
Page 71: クラウド時代のアーキテクチャ設計

Intro 1 2 3 4 5 6 7 End

制約を恐れない

Page 72: クラウド時代のアーキテクチャ設計

データベースのパフォーマンスがでない?

制約を恐れない

Page 73: クラウド時代のアーキテクチャ設計

データベースのパフォーマンスがでない?

制約を恐れない

抽象的なクラウドリソース     +オンデマンドな調達モデル     ↓  無限の可能性

Page 74: クラウド時代のアーキテクチャ設計

データベースのパフォーマンスがでない?

シャーディング / リードレプリカ / クラスタリング

制約を恐れない

Page 75: クラウド時代のアーキテクチャ設計

データベースのパフォーマンスがでない?

シャーディング / リードレプリカ / クラスタリング

RAMがもっと必要?

分散キャッシュ (Memcached)

制約を恐れない

Page 76: クラウド時代のアーキテクチャ設計

データベースのパフォーマンスがでない?

シャーディング / リードレプリカ / クラスタリング

RAMがもっと必要?

分散キャッシュ (Memcached)

もっと早いディスクが必要?

複数のEBSをRaidで

制約を恐れない

Page 77: クラウド時代のアーキテクチャ設計

RDSのマルチAZ

Page 78: クラウド時代のアーキテクチャ設計

RDS リードレプリカ

RDSマスタ

RDSスタンバイ

RDSレプリカ

Readクエリ RDS

レプリカ

Tokyo-1a Tokyo-1b

Page 79: クラウド時代のアーキテクチャ設計

Intro 1 2 3 4 5 6 7 End

全レイヤでセキュリティ

Page 80: クラウド時代のアーキテクチャ設計

セキュリティ

Page 81: クラウド時代のアーキテクチャ設計

DC、ハード、OS、アプリ、ネットワーク 認証: ISO 27001, PCI-DSS レベル1等

 暗号化: SSL Endpoints, Encrypted FS

 セキュリティグループ

 IAM: Identity Access Management

 VPC: Virtual Private Cloud

全レイヤでセキュリティを考慮

Page 82: クラウド時代のアーキテクチャ設計

web-servers app-servers DB-servers

RDS-servers

セキュリティグループ

EC2EC2EC2EC2 EC2

EC2 EC2EC2

EC2

RDSRDS

RDS

インターネット

自分のPC(107.3.8.123)

2280 1521

any 22

1521

Page 83: クラウド時代のアーキテクチャ設計

Demo:セキュリティグループ

Page 84: クラウド時代のアーキテクチャ設計
Page 85: クラウド時代のアーキテクチャ設計

AWSクラウド

Virtual Private Cloud

VPC: Virtual Private Cloud

EC2EC2

EC2

自社イントラ

EC2EC2EC2

EC2EC2EC2EC2

EC2EC2

インターネット

EC2EC2EC2

プライベートVPN

locallocal

locallocal

local

1

NAT2ゲートウェイ

3

Page 86: クラウド時代のアーキテクチャ設計

AWSアカウントの下に、子ユーザ/グループ セキュリティ証明書をそれぞれ作成可 APIへのアクセスコントロール 特定のリソースへのアクセスコントロール LDAPとの連携可能 コストは無料

IAM: Identity Access Management

Page 87: クラウド時代のアーキテクチャ設計

Intro 1 2 3 4 5 6 7 End

さいごに

Page 88: クラウド時代のアーキテクチャ設計

最古の「建築十書」

Page 89: クラウド時代のアーキテクチャ設計

最古の「建築十書」Firmitas

Utilitas

Venustas

強(冗長構成、レプリカ)

用(サービスを自在に組合せ)

美(伸縮自在、自動化、無駄なし)

Page 90: クラウド時代のアーキテクチャ設計

1. 故障に備えた設計2. 疎結合にする3. 伸縮自在に4. 動的データ/静的データの配置5. 並列処理を活かす6. 制約を恐れない7. 全レイヤでセキュリティを考慮

7つの習慣

Page 91: クラウド時代のアーキテクチャ設計

操船術が大事ぜよ

Page 92: クラウド時代のアーキテクチャ設計

エンジニアは魔法使いになれる

Page 93: クラウド時代のアーキテクチャ設計

AWSホームページhttp://aws.amazon.com/jp/

AWSブログhttp://aws.typepad.com/aws_japan/

はじめてのアマゾンクラウドhttp://www.slideshare.net/kentamagawa/3aws

Acknowledgement:Simone Brunozzi, Jinesh Varia, Matt Wood

参考情報