jaws-ug大阪第7回勉強会 cdp実践vpc編とcloudformation
DESCRIPTION
2012.12.15におこなわれたJAWS-UG大阪第7回勉強会で発表した資料です。 Cloud Design Patternを理解しやすいようサイト構築事例のなかでいくつかのパターンを紹介しているのと、VPC内での設計で使っているパターンおよびCloudFormation化の話です。TRANSCRIPT
第7回 JAWS-UG大阪 勉強会
CDP実践VPC編とCloudFormation
後藤 和貴 @kaz_goto
facebook.com/kaz.goto 2012.12.14
自己紹介プロフィール
アイレット株式会社 cloudpack エバンジェリスト2012/9 JAWS-UG 副代表就任
出没するJAWS-UG: 東京、大阪、福岡、宮崎、 浜松、静岡、鹿児島、沖縄、名古屋、札幌、 北陸、熊本、長崎、神戸、岩手
受賞歴: AWS SAMURAI 2012(個人) 2011年度パートナー特別賞(会社)
好きなAWSサービス: プレミアムサポート
好きなCDP:
@kaz_gotofacebook.com/kaz.goto
6/2(土)~6/3(日) JAWS-UG大阪
6/6(水)~6/7(木) JAWS-UG神戸
9/7(金)~9/10(月) 明星和楽参加
10/6(土)~10/7(日) JAWS-UG名古屋
10/16(火)~10/21(日) Cloud Days Fukuoka 2012、JAWS-UG鹿児島
11/11(日)~11/13(火) JAWS-UG札幌
11/17(土)~11/19(月) JAWS-UG沖縄
11/26(月)~12/2(日) AWS re:Invent 2012+Amazon本社訪問
12/11(火)~12/14(金) UP 2012
12/15(土)~12/17日(月) JAWS-UG大阪+営業
1/20(金)~1/21(土) JAWS-UG北陸
2/8(水)~2/11(土) JAWS-UG福岡、JAWS-UG熊本
2/14(火)~2/15(水) JAWS-UG札幌
2/18(土)~2/19(日) JAWS-UG大阪
2/21(火)~2/22(水) JAWS-UG仙台
3/7(水)~3/9(金) Cloud Days Osaka 2012
3/30(金)~3/31(土) JAWS-UG長崎
4/17(火)~4/22(日) AWS Summit 2012 NYC
4/25(水)~4/29(日) JAWS-UG沖縄
5/16(水)~5/17(木) JAWS-UG札幌 JAWS-UG計16回
AWS re:Invent 2012 in Las VegasAWS初の全世界規模のカンファレンス
多くのすばらしい事例
AWSサービスの深い知識
すばらしい環境(カンファレンス会場、ホテル、カジノ、ショー、etc...)
皆さんCDPってご存じですか?
AWSクラウドデザインパターンとは
AWSクラウドを使ったシステムアーキテクチャ設計を行う際に発生する、典型的な問題とそれに対する解決策・設計方法を、分かりやすく分類して、ノウハウとして利用できるように整理したものである。
「
」
要するにクラウド版(AWS版)デザインパターン
1日目 2日目AWS Summit Tokyo 2012
ついに世界進出!
Floating IPパターン
Stampパターン Bootstrapパターン
DB Replicationパターン
Floating IPパターン
Scale Upパターン Bootstrapパターン
DB Replicationパターン
現在その数49パターン
実例で紹介
ハワトラクイズ
クライアント 株式会社ジェーシービー制作 spfdesign Inc.
12月末~1月中旬 3月頭~中旬
サーバー構成キャンペーン期間外
Web
キャンペーン期間中
Web Web
ティザー状態静的なコンテンツのみ
キャンペーン開始時サーバースペック強化
予想以上のアクセスのため途中で性能アップ
Web
元の状態に性能下げる
キャンペーン終了後
適用したCDPキャンペーン期間外
Web
キャンペーン期間中
Web Web
ティザー状態静的なコンテンツのみ
キャンペーン開始時サーバースペック強化
予想以上のアクセスのため途中で性能アップ
Web
元の状態に性能下げる
キャンペーン終了後
Scale Upパターン
Scale Upパターン
クラウドでは、仮想サーバーのスペック(CPU、メモリーサイズなど)を必要に応じて切り替えることが可能である。仮想サーバーを起動した後でもスペック変更が行える。
社団法人 日本プロゴルフ協会 公式サイトhttp://www.pga.or.jp/
クライアント 社団法人 日本プロゴルフ協会(PGA)
サイト特性MovableTypeによるコンテンツ更新(静的ファイル)
トーナメントがテレビで放送されるときだけアクセス数が15倍に
サーバー構成
Web/DB
平常時
Web/DB Web Web Web Web Web
ロードバランサー
トーナメント期間中
コンテンツ同期
適用したCDP
Web/DB
平常時
Web/DB Web Web Web Web Web
ロードバランサー
トーナメント期間中
コンテンツ同期
Clone Serverパターン
Multi-Serverパターン
Multi-Serverパターン
仮想サーバーを複数台並べ、クラウドサービスとして提供されるロードバランサーを用いて適宜負荷を振り分ける。
Clone Serverパターン
負荷分散が考慮されていないシステムを、容易に負荷分散可能なシステムにする。既に存在するサーバーをマスターとし、追加するサーバーのマシンイメージを用意する。
UNIQLO CHECK-IN CHANCE
クライアント 株式会社ユニクロ制作 株式会社マウント
サーバー構成キャンペーン期間外
Web
ロードバランサー
キャンペーン期間中
Web Web Web
CacheDB(Master) DB(Slave)
結果発表のため静的なコンテンツのみ
サーバースペック強化Webサーバー台数増加
DB/キャッシュサーバー追加
アクセス状態を見て途中でスペックダウン
適用したCDPキャンペーン期間外
Web
ロードバランサー
キャンペーン期間中
Web Web Web
CacheDB(Master) DB(Slave)
結果発表のため静的なコンテンツのみ
サーバースペック強化Webサーバー台数増加
DB/キャッシュサーバー追加
アクセス状態を見て途中でスペックダウン
Clone Serverパターン
Multi-Serverパターン
Scale Upパターン
DB Replicationパターン
Scale Upパターン
DB Replicationパターン
地理的ロケーションをまたいだレプリケーションを行うパターン。このパターンによりデータロストを防ぎ、データアクセスの可用性を担保する。
Multi-Serverパターン Clone Serverパターン
パターンを駆使すれば
こんな構成も
�������������� �
������������� �����
������� �+��
�������������� �
������� �+��
��� �� �
��� ���
������� �+��
�������
���������� �
�������
���������� ��������
���������� �
������� �+��
��� ���! ��� ��"�� ��� � ���!
����������
����
���� ��
����������
����
���� ��
����������
����
���� ��
���! ��"�� � ���!
����������
� ��
������
����������
����
���� ��
#��$�
%���! &
����������
� ��
������
�'�
()�)�
�������
��
����������
� ��
������
����!
���
������
���
������������ �������
����������
� ��
������
�'�
�������
���������� �
�������
���������� ��������
���������� �
��� ���! ��� ��"�� ��� � ���!
���
������� �+��
����������
� ��
������
#��$�
���
������� �+��
����������
����
���� ��
����������
����
���� ��
����������
����
���� ��
���! ��"�� � ���!
����������
����
���� ��
%���! &
����������
� ��
������
����!
���
��
()�)�
������� �����
������� �+*�������� �+*�
���
こんな構成も
こんな構成も簡単にできちゃう
ぜひ活用してみてください
それでも構成検討が難しいと思う方は...
以下省略
続きはウェブでcloudpack クラウドパック
最近使っているCDP
の前にVPCの話
ほぼ反応なし...
VPC関連アップデート1/11 【AWS発表】 クラウドに専用線接続できるAWS Direct Connectが東京リージョンでも利用可能に
1/24 【AWS発表】 Virtual Private Cloudの中でRelational Database Serviceが利用可能に
2/6 【AWS発表】 Elastic MapReduceの新機能:メトリクス、Hadoopのアップデート、VPC、そしてクラスタコンピュートのサポート
4/26 【AWS発表】 Virtual Private Cloudの中でクラスターコンピュートインスタンスが利用可能に
5/18 【AWS発表】Amazon RDSのリードレプリカがVPC内でも作成可能に
6/12 【AWS発表】プライベートIPを負荷分散できるELBが登場!
7/7 【AWS発表】VPC内の単一EC2インスタンスに複数のIPアドレス関連づけることが可能に!
8/17 Additional RDS for Oracle Features - VPC Support, Oracle Application Express (APEX) and Oracle XML DB
8/15 【AWS発表】AWS Direct Connect - 新しいロケーションとコンソールサポート
9/14 【AWS発表】Amazon RDS for SQL Server が VPC内で利用可能に
9/17 【AWS発表】Amazon VPCに2つの新機能が追加 - BGPをサポートしないデバイスでもVPCに接続可能に
10/19 【AWS発表】Virtual Private Cloud (VPC) 内でEC2のマイクロインスタンスが起動可能に!
11/1 【AWS発表】 AWS Elastic Beanstalk - Rubyのサポート開始、さらにVPC統合も可能に
新規のお客さんはかなりの確率でVPC利用
設計が細かく毎回手作業は危険
かつ毎回同じ設計をしている
たとえば...
VPCネットワーク構成
サブネット作成指針
ルーティング
• Public - インターネットとInbound/Outbound可
• Protected - インターネットへNAT経由でOutboundのみ可
• Private - インターネットへのアクセス不可(社内へは可)
IPアドレス固定・任意
• 自動でIPが付与されるELB/RDS/Auto Scaling利用とわけるため
セキュリティグループ接続用途別に作成
Functional Firewallパターン
• EC2標準• データベース(MySQL/Oracle)Operational Firewallパターン
• cloudpackからアクセス(監視・メンテ)• 踏み台へのアクセス• NATへのアクセス• 管理画面へのアクセス
Functional Firewallパターン
ルールをグループ化し、グループ単位での設定や各サーバーへの適用を行うことができるものもある。このグループの単位を機能ごと(WebやDBなど)にすることで、機能に関する設定をグループ内で一元管理できるようになる。
Operational Firewallパターン
ルールをグループ化し、グループ単位で設定したりサーバーに適用したりできる。このグループという単位をシステムにアクセスできる組織などにすることで、非機能要件的なアクセス制限に関する設定を使いやすく分割/一元管理することができる。
メンテナンス用NATサーバーメンテナンスのときだけNATを利用して外部へアクセス
例: yumアップデート
OnDemand NATパターン
OnDemand NATパターン
NATを仮想サーバーで実現し、OSパッケージのアップデートなどのメンテンス時だけ起動するようにしておけば、コスト効率がよくなる。APIを利用してNAT(仮想サーバー)の起動と停止を自動化することも可能である。
踏み台サーバーサーバーメンテナンス時のアクセス経路
定型化できる部分が多い
これらすべて自動化
これらすべて自動化=
CloudFormation
https://github.com/suz-lab/suz-lab-centos-ami/tree/master/share/cloudfromation
カスタマイズしたい場合もOK
くわしくはこちらhttp://blog.suz-lab.com/2012/12/cdp-templates.html
メリットテンプレートを利用して、必要なときに起動する(構成を作る)ことが簡単にできる
CloudFormationなら面倒な構成を一瞬で構築可能=作業時間短縮
すでにテスト済みの環境を構築するのでフルテストは不要=信頼性が高い
設計そのものがテンプレートされることで、再利用が可能で、かつ設計上のミスも発生しにくくなる
コードネーム「awsplug」頓挫中...
最後に
Thank You!
http://www.cloudpack.jp/cloudpack.jp@cloudpack_jp