46
最近JAWS-UG回ってて思う 最近CDPの認知度が落ちてるよね?? 名前知ってても使ってないよね??

20140411_JAWS-UG札幌

Embed Size (px)

DESCRIPTION

2014/4/11のJAWS-UG札幌第13回のセッション資料です!

Citation preview

Page 1: 20140411_JAWS-UG札幌

最近JAWS-UG回ってて思う

最近CDPの認知度が落ちてるよね?? 名前知ってても使ってないよね??

Page 2: 20140411_JAWS-UG札幌

これいくない

ショボーン━━(́・ω・`)━━。 !

基本中の基本だぞぉ…

Page 3: 20140411_JAWS-UG札幌

2014.4.11 JAWS-UG札幌 #13

Cloud Design Pattern で学ぶAWS

Page 4: 20140411_JAWS-UG札幌

今日みなさんにお伝えしたい事AWSにはたくさんのサービスと機能があり、どれをどのように組み合わせて作ればいいのか??(誰もが通る道w)

Page 5: 20140411_JAWS-UG札幌

今日みなさんにお伝えしたい事

AWS上で設計する際に非常に有効なツールであるCloud Design Patternをご紹介します!

Page 6: 20140411_JAWS-UG札幌

WHO AM I石田 知也(いしだ ともや)

cloudpack エバンジェリスト&ソリューションアーキテクト

全国のJAWS-UG・イベント回ってます!

JAWS-UG代表(全国の各支部・地域取り纏め) ←New

AWS SAMURAI AWARD2014 受賞(JAWS-UG貢献)

好きなAWSサービス:SQS(クラウドの基本は疎結合だ!)

@tomyankuns

facebook.com/tomyankuns

Page 7: 20140411_JAWS-UG札幌

cloudpackの価値AWS専門部隊 コンサルティング、アセスメント、導入設計

ホスピタリティ 24時間365日有人監視、保守対応

実績 350社を超えるアカウントを運用

セキュリティ PCI DSS Level 1 Service Provider 認定

スピード 最短30分でのデリバリー実績

Virtual Private Cloud(10.0.0.0/20)

Availability Zone A

IGW

Availability Zone B

VPC Subnet

NAT ELB ELB ELB

VPC Subnet

EC2 EC2

EC2 EC2

EC2

VPC Subnet

VPC Subnet

NAT

DB

VPC Subnet

EC2 EC2

EC2 EC2

EC2

VPC Subnet

VPC Subnet

NAT

VPC Subnet

ELB ELB ELB NAT

����������

���� � ������������

���� �

��������

��������

�������

����� ����������

Page 8: 20140411_JAWS-UG札幌

トヨタ自動車様 エンタープライズ

Page 9: 20140411_JAWS-UG札幌

バンダイナムコスタジオ様 ゲーム

Page 10: 20140411_JAWS-UG札幌

Coiney様金融

Page 11: 20140411_JAWS-UG札幌

'*/!+� &CF�

!  ������������ ���������•  p|sH5U�W{aI�Sk7ce7CF�

@  ��k7ce7g_c~7RE���k7ce7�@  �������D ��@  ��B���4��B��8 '*/!+� &C����­¯�9A°®�

���

Hl7tU�W{aI�S¢¥���¢¥��HmzN�H7{Zz7J�ZaIaw7c�¢¥��H7{~7RZ�¢¥��<?:>�±£¶aRh\zw7Xx�[¢¥���KIp}3zsa_d�¢¥��Kn{�K{XZat[¢¥���¢¥��MJty_R�¢¥��MRX7d�����¢¥���¢¥�����b7]�¢¥�����b7]5J�cyr7c����¢¥��PJH_RZ�¢¥��RfM�

RyZu\_d¢¥���¢¥��R|ZU�¢¥��V7P�WJNZaRh}Y7¢¥���¢¥��W7j7~7RZ�¢¥����������¢¥��X7M7X7�=;Hdj�Zc5aRh}Y7¢¥���¢¥��Y7{�¢¥��ZOJH7^g_c~7RZ�¢¥��µ�¨§�\nIH��­¯�¢¥���¢¥��]7�5H�d5n}�aIH�¢¥��]Sj�P7[����¢¥���¢¥��bIyJc�

¢¥��bY]{Qw7o�¢¥��ayZOJ�¢¥���¤XZat�¢¥��������W7lZ�¢¥����b7]g_c~7R�¢¥����� �UswfT7Xx�[�¢¥��e|_YUswfT7Xx��¢¥����©²���lYgZXZat[¢¥���¢¥��glyq�¢¥��i7cl7`�m7X7nL7[¢¥���lYwH{aRh}Y7¢¥���¢¥��������¢¥��o|J�k_d�����¢¥���

¢¥��iKJ�]7eXxe{�j7^v{UswfT7Xx�[¢¥���i�[yq¢¥���¢¥��lYgZ5H7QaR`�¢¥�����«¡��¢¥����\zw7Xx�[�¢¥��nGRczH{�¢¥��l_cHJ{�¬¦\nc¢¥���¢¥���/-$ �����¢¥���zH{a_RYvk�¢¥���z_R\nc¢¥����

��4�ªU�W{aI�Sk7ce7�

³´���6#..+����1-��(�2*)� *(�%+�-*'/.$*)-�-*'/.$*)�+,*0$!",-�%�+�)��

Page 12: 20140411_JAWS-UG札幌

??本題

Page 13: 20140411_JAWS-UG札幌

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

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

要は AWSを使った設計ノウハウ集

Page 14: 20140411_JAWS-UG札幌

http://aws.clouddesignpattern.org/

Page 15: 20140411_JAWS-UG札幌

CDP一覧

Page 16: 20140411_JAWS-UG札幌

みなさんはWebサーバの管理者 Webサーバのアクセスが増えてきた 雑誌やTVで取り上げられる

ユースケース

Page 17: 20140411_JAWS-UG札幌

あなたならどうする?!

Page 18: 20140411_JAWS-UG札幌

網元を使う 正解!

Page 19: 20140411_JAWS-UG札幌

!!こういう時こそ

Page 20: 20140411_JAWS-UG札幌

Stampパターン実装 ! OSのブート領域が入っているEBSからAMIを作成すれば、AMIからEC2インスタンスを起動できるので、同一設定のEC2インスタンスを大量に用意できる。 (手順)

EC2インスタンスを起動し、必要なソフトウエアをインストールする。 必要な設定を行い、サーバーとして動作する状態にする。 動作確認後AMIを取得して登録する。 そのAMIを使って、必要なときに必要な数だけサーバーを作成する。

Page 21: 20140411_JAWS-UG札幌

Scale Outパターン実装 !ロードバランサ―サービス「ELB」、モニタリングツール「CloudWatch」、そして自動でスケールアウトする「Auto

Scaling」の三つのサービスを組み合わせることで、負荷に応じて自動でスケールアウトするシステムを容易に構築できる。 (手順)

ELBの配下に(Web/APサーバーとして)EC2を複数並べる。 EC2を新たに起動するときに利用するAMIを作成しておく。 EC2数を増減させるトリガーとなる条件(メトリクス)を定義する。EC2の平均CPU使用率、ネットワーク流量、セッション数、EBSのレイテンシーなどがよく使われる。 そのメトリクスをCloudWatchを使って監視し、一定の条件を満たすとアラームを出すように設定する。 アラームを受けた際、Auto ScalingがEC2数を増減するように設定する。 上記設定を完了することで、例えば「平均CPU使用率が70%以上の状態が5分以上続いた場合、あらかじめ用意したAMIを使ってEC2インスタンスを2つ起動する」ということが可能になる。もちろん、状況に合わせてサーバー数を減らすことも可能である。

Page 22: 20140411_JAWS-UG札幌

NFS Replicaパターン実装 !各EC2インスタンスの仮想ディスクであるEBSに、NFS

サーバーのファイルをコピーしておく。各EC2インスタンスではEBSのファイルを読み取ることで、NFSサーバーにアクセスするよりも高いパフォーマンスで参照できる。

EC2上にNFSサーバーを構築し、共有ファイルを配置する。 Auto Scalingで起動するEC2(Webサーバー)は、起動時にまずNFSサーバーをマウントし、さらにNFS

サーバーの内容をEBSにコピーする。 各EC2上のアプリケーションはEBSを参照先に設定しておく。

Page 23: 20140411_JAWS-UG札幌

Direct Hostingパターン実装 !

インターネットストレージのS3上に、公開したい静的なコンテンツ(HTML/CSS/JavaScript/画像/動画など)をアップロードする。 S3バケットに、コンテンツを公開するように設定する。バケットポリシーに、バケットのコンテンツを公開するパーミッションを設定する。 S3のWebサイトホスティング機能をオンにし、インデックスページやエラーページを設定することで、S3単体でWebサイトをホストできる。

Page 24: 20140411_JAWS-UG札幌

Write Proxyパターン実装 !

データを受け取るためのEC2インスタンスを起動する。EC2インスタンスは、最終的なデータ格納先となるS3と同一リージョンで起動する。 EC2インスタンス上にFTPサーバーやWebサーバー、AsperaやTsunamiUDPなどのUDP転送ソフト、もしくは転送速度をアクセラレートするようなソフトをインストールする(このサーバーを「アップロードサーバー」と呼ぶ)。 クライアントからアップロードサーバーにデータを転送する。小さいサイズのファイルが大量にある場合は、一旦クライアントで一つのファイルにまとめる。 アップロードサーバーへの転送完了後(もしくは逐次処理で)、アップロードサーバーからS3に転送する。クライアントでアーカイブした場合は、アップロードサーバーで解凍後にS3へ転送する。

Page 25: 20140411_JAWS-UG札幌

URL RewritingパターンAWSでは静的コンテンツ配信にS3を利用できる。また、S3上に配置したコンテンツをオリジナルとし、コンテンツ配信サービスのCloudFrontを利用すれば全世界に遅延なくコンテンツを配信できる。 (手順)

EC2上の静的コンテンツ(JavaScript/CSS/画像など)の一部をS3にアップロード(同期)する。 必要に応じて、静的コンテンツがアップロード(同期)されるS3をオリジナルとしたCloudFrontを作成する(CloudFrontを利用する場合はオリジナルサーバーをS3ではなく直接EC2にすることも可能)。 HTMLタグ上の静的コンテンツのURLをS3もしくはCloudFrontのものに書き換える。 Apacheのフィルターモジュール(mod_ext_filter/

mod_sed)やプロキシーとして用意したNginxなどで動的に書き換えることも可能。

Page 26: 20140411_JAWS-UG札幌

Private Cache Distributionパターン

コンテンツデリバリーサービスである「CloudFront」の「apitool」やAWS SDKを準備する。 EC2上のWebサーバーに秘密鍵を登録しておき、署名付きURLの発行準備をする。 自システムでユーザー認証を実施後、そのユーザーに公開する各コンテンツに対し、CloudFrontのAPIを用いて署名付きURL作成機能(公開鍵を登録)を利用する。 署名付URLをHTMLなどでリンク(ダウンロード)先として利用する。

Page 27: 20140411_JAWS-UG札幌

パターンを駆使すれば

Page 28: 20140411_JAWS-UG札幌

こんな構成も

Page 29: 20140411_JAWS-UG札幌

この人にかかると…

弐号

Page 30: 20140411_JAWS-UG札幌

Ondemand Disk パターン

@お茶の水 ゆうこさん

こんな構成や

Page 31: 20140411_JAWS-UG札幌

仮想ディスクを用いることで、好きなタイミングでディスク容量の増減が行える

Page 32: 20140411_JAWS-UG札幌

ディスクサイズを気にせず使い始められるクラウドならではの特徴で

すね

Page 33: 20140411_JAWS-UG札幌

適用したCDP Scale Up パターン

こんな構成や

Page 34: 20140411_JAWS-UG札幌

仮想サーバーのスペック(CPU、メモリーサイズなど)を必要に応じて切り替えることで、リソース不足の解消や、余剰の緩和を行うことができる。

Page 35: 20140411_JAWS-UG札幌

突発的にロードアベレージが上がった時にも対策完了までスケールアップしてしのげるスマートな人っ

てイイですね

Page 36: 20140411_JAWS-UG札幌

Cache Distribution パターン !

泉岳寺の 友美さん

こんな構成や

Page 37: 20140411_JAWS-UG札幌

世界各地のロケーションにコンテンツのキャッシュデータを配置し、ユーザーのアクセス元に物理的に近いロケーションからコンテンツを配信してユーザーへのレスポンスを向上する

Page 38: 20140411_JAWS-UG札幌

CloudFrontなら簡単にグローバルに配信でき

ます。 グローバルな男性ってス

テキですね

Page 39: 20140411_JAWS-UG札幌

地理的に異なるデータセンターにデータベースをレプリケーションすることで、耐障害性を高める

Page 40: 20140411_JAWS-UG札幌

大切なデータを保護するのは基本だぞ❤

Page 41: 20140411_JAWS-UG札幌

もっと 見たい?

Page 42: 20140411_JAWS-UG札幌

おい!仕事せいよwww

弐号

Page 43: 20140411_JAWS-UG札幌

http://aws.clouddesignpattern.org/

Page 44: 20140411_JAWS-UG札幌

Kindle版あり〼

もくもく勉強会ネタに

Page 45: 20140411_JAWS-UG札幌

まとめ

Cloud Design Patternは、AWSを用いて設計する際のバイブルです! 先人達の知恵を借りて、正しくAWSを利用しましょう! 新たなパターンを編み出したら、発表してみましょう!

Page 46: 20140411_JAWS-UG札幌

http://www.cloudpack.jp/ [email protected] @cloudpack_jp