失敗例例を成功に変える
AWSアンチパターンの数々
〜~Webアプリ編
2015-‐‑‒07-‐‑‒26
荒⽊木靖宏(twitter:ar1)
⾃自⼰己紹介
•  名前
–  荒⽊木  靖宏
•  所属
–  アマゾンデータサービスジャパン株式会社
–  技術本部レディネスソリューション部
  シニアマネージャ
  プリンシパルソリューションアーキテクト
•  好きなAWSサービス
–  Amazon  Virtual  Private  Cloud
–  AWS  Direct  Connect
2
AWS  Innovations  をふりかえる
2009
Amazon  RDS
Amazon  VPC
Auto  Scaling
Elastic  Load
  
Balancing
+48
2010
Amazon  SNS
AWS  Identity  
&  Access  
Management
Amazon  Route  53
+61
2011
Amazon  
ElastiCache
Amazon  SES
AWS  
CloudFormation
AWS  Direct  
Connect
AWS  Elastic  
Beanstalk
GovCloud
+82
Amazon  
CloudTrail
Amazon  
CloudHSM
Amazon  
WorkSpaces
Amazon  Kinesis
Amazon  Elastic
Transcoder
Amazon  
AppStream
AWS  OpsWorks
+280
2013
Amazon  SWF
Amazon  Redshift
Amazon  Glacier
Amazon  
Dynamo  DB
Amazon  
CloudSearch
AWS  Storage
Gateway
AWS  Data  
Pipeline
+159
2012
2014年年末までに
•  40+  のメジャーサービス  
•  1173+  の新サービスと機能
•  47  回の値下げ
2008
+24
Amazon  EBS
Amazon
CloudFront
+516
2014
Amazon  Cognito
Amazon  Zocalo
Amazon  Mobile
Analytics
AWS  Directory
Service
Amazon  RDS  
for  Aurora
AWS  CodeDeploy
AWS  Lambda
AWS  Config
AWS  Key  
Management  Service
Amazon  EC2  
Container  
Service
明⽇日のアンチパターンはそこかしこに
アンチパターンの前に
うまく組み合わせると・・
•  ピーク対応が楽
•  セキュアなシステ
ム構築
•  安価に世界展開
•  障害にも強いシス
テム設計
よく聞く話
•  サービスが多くてよく分からない
•  組み合わせ⽅方が分からない
•  使い⽅方が正しいのか分からない
AWSクラウドデザインパターンとは...
•  AWSクラウドを使ったシステムアーキテクチャ設計を
⾏行行う際に発⽣生する、典型的な問題とそれに対する解決
策・設計⽅方法を、分かりやすく分類して、ノウハウとし
て利利⽤用できるように整理理したもの。
7
例例えば...  (Web  Storage  Archive)
•  解決したい課題
サーバで⼤大量量に発⽣生するログを⼀一元管理理し
たい
•  クラウドでの解決
容量量無制限ウェブストレージを利利⽤用し、
キャパシティを気にすることなく格納可能
•  実装
EC2上でローテートされたログをAPI等の
ツールを利利⽤用しS3に転送
•  利利点
ディスクスペース管理理が不不要になり、堅牢牢
性の⾼高いストレージでログを管理理
•  注意点
AutoScale時には、停⽌止前に該当ログの退
避の仕組みを実装する必要がある
v  構造
適⽤用のシナリオ
雲の写真を載せるブログサイト開始
•  MovableTypeをEC2にイン
ストール
•  Route53でDNS管理理
–  ⽉月額約50円
•  サーバ1台で運⽤用
–  t2.microで⽉月額約1800円
–  アカウント作れば1年年間無料料
初期のデザイン
EC2
インスタンス
Blog
システム
Amazon  
Route  53 www.clouddesignpattern.org
EIP
動画、過去画像集を公開
•  ユーザー要望により動画や過去画像集を公開
•  サイズが⼤大きく、ダウンロード負荷の⾼高いコン
テンツの配信
•  サーバの台数増は費⽤用がかかる
•  必要なディスク容量量・ネットワーク帯域は未知
数
Web  Storageパターン
•  アクセス負荷の⾼高い動画や画像
コンテンツを、Amazon  S3に
逃がすパターン
•  S3のWebサーバ機能を利利⽤用す
る
•  EC2に⽐比べて安価
–  サーバ稼働費⽤用が不不要
動画や過去画像はS3へ
EC2
インスタンス
Blog
システム
www.clouddesignpattern.org
EIP
data.clouddesignpattern.org
•  メインサイトから
  S3上のコンテンツへ
  リンクを作成
•  ⽇日本には想像以上の雲マニアがいた
まさかの⼤大⼈人気サイト化
積乱雲!
積乱雲!
まさかの⼤大⼈人気サイト化
•  アクセス過多で、つながりにくい状態に
•  サーバを増やせば対応出来る
•  しかし費⽤用がかかる・・・
Direct  Hostingパターン
•  配信のメインサイトと
して、EC2ではなくS3
を使⽤用
•  スタティックパブリッ
シングを利利⽤用し、MT⽣生
成ファイルをS3へ
Amazon  S3
•  S3⾃自体が負荷分散・冗⻑⾧長化されているため、ア
クセスが増えても問題ない
•  メンテナンスフリー
S3
S3 S3
S3をメインサイトに
EC2
インスタンス
Blog
システム
EIP
data.clouddesignpattern.org
www.clouddesignpattern.org
まさかの海外展開
•  世界の雲マニアがサイトを発⾒見見
•  海外ニュースサイトへの掲載が決定
Cache  Distributionパターン
•  Amazon  CloudFront適⽤用
•  世界各地のエッジサーバを
利利⽤用し、キャッシング
•  よりよいレスポンスと負荷
分散を実現
CloudFrontを利利⽤用した配信
•  3つのサブドメインを使⽤用
–  www,data,mt
•  S3から配信するデータは、Contents  Distributionパ
ターンを適⽤用
ブログコンテン
ツ
動画・画像集
コンテンツ管
理理・コメント投
稿
デザイン推移
動画 ⼈人気
海外
アンチパターンの紹介
これまで、数多くのAWS成功例例がうまれていっ
た。。
その成功例例は「パターン」として受け継がれ。。
そして、それらは時に「秘伝のたれ」「さわって
はいけないもの」とされてきた。。
26
アンチパターン
•  失敗に陥るパターンを類型化し、事例例の早期発
⾒見見と対応策に関しての提案を⽬目的とする
•  動作やプロセス、構造について、当初は妥当で
あったのに、最終的に悪い結果が繰り返される
パターン
•  リファクタリングするための⽅方法が存在するパ
ターン
27
Webアプリむけに
13の
アンチパターンを紹介します
EC2にまつわる7つの
アンチパターン
EC2は⾃自由。
EC2⼀一神教アンチパターン
30
EC2⼀一神教アンチパターン
•  原因
–  AWSの知識識が古いまま⽌止まっている
–  サーバを調達し、その上で作る⽅方法に慣れ親しんでいるた
め
•  症状
–  ⽬目的毎にEC2を⽤用意するため、インスタンス数が増えすぎ
る
–  可⽤用性の担保にも⼿手間がかかる
31
EC2⼀一神教アンチパターン
•  解決法
–  SQS,  Route53,  RDS,  S3,  ELBなどEC2以外のサー
ビスを活⽤用する
•  可⽤用性の確保
•  利利⽤用額の低下
32
楽なバックアップです
ノースナップショットアンチパ
ターン
33
ノースナップショット
アンチパターン
•  原因
–  EBSのスナップショット機能を知らない
–  スナップショットが⾼高価だと思っている
•  症状
–  別アベイラビリティゾーンからEBSを使えないこと
で気がつく
–  操作ミスでファイルを消してから泣きつく
34
ノースナップショット
アンチパターン
•  解決法
–  何か新しいことを⾏行行ったときはスナップショットを
作成する
–  定期的に不不必要なスナップショットを消す
–  参考:EBSスナップショット
•  http://docs.aws.amazon.com/ja_̲jp/AWSEC2/latest/
UserGuide/EBSSnapshots.html
35
AMIを作らずに運⽤用する
AMIなしアンチパターン
36
AMI無しアンチパターン
•  原因
–  AMI作りが難しいと思っている
–  オンプレミスのインストール⼿手順に固執
•  症状
–  インスタンスをイチから⽤用意するため、サービスインに時
間がかかる
–  サービス拡張時も⼿手順が残っていないと対処できない
37
AMI無しアンチパターン
•  解決法
–  AMI作成をまずやってみること
–  参考:Amazon  EBS-‐‑‒Backed  Linux  AMI  の作成
•  http://docs.aws.amazon.com/ja_̲jp/AWSEC2/latest/
UserGuide/creating-‐‑‒an-‐‑‒ami-‐‑‒ebs.html
38
AMI作成をバックアップだと考える
AMI⾄至上主義
アンチパターン
39
AMI⾄至上主義アンチパターン
•  原因
–  AMI作成をバックアップだと思っている
•  症状
–  動作中にAMIが作れない
–  S3バックのインスタンスではバックアップできない
と思ってしまう
40
AMI⾄至上主義アンチパターン
•  解決法
–  EBSのスナップショットを利利⽤用する
–  適材適所のバックアップを選択
–  参考:EBSスナップショット
•  http://docs.aws.amazon.com/ja_̲jp/AWSEC2/latest/
UserGuide/EBSSnapshots.html
41
AUTOSCALINGの設定が敏感すぎ
て、増減過多。ムダに課⾦金金が増える。
インスタンス振動アンチパター
ン
42
インスタンス振動
アンチパターン
•  原因
–  AutoScalingの設定が敏感すぎる。
–  CloudWatchの条件ソースが不不適切切
•  症状
–  増減にともなう課⾦金金増加
43
インスタンス振動
アンチパターン
•  解決法
–  起動条件の4倍程度度に緩和させておく
–  1時間に切切り上げて課⾦金金されるため、55分で⾃自殺する
⽅方法も
–  参考:スタートアップのためのAWSピーク対策⼊入⾨門
•  http://www.slideshare.net/HiroshiTakayama/
jawschiba20140405public
44
マルチAZになっているようでなって
いないパターン
単機能AZアンチパターン
45
単機能AZアンチパターン
•  原因
–  サブネット毎に「DB⽤用」「アプリ⽤用」などと分けて
しまい、それぞれを複数設置しわすれる
•  症状
–  特定の機能が単⼀一のAZにしか無いので、そのAZが障
害を起こすとシステム全断
46
単機能AZアンチパターン
•  解決法
–  ELB,RDSなど複数AZ便便利利に使うサービスの導⼊入
–  機能別にサブネットを分けたら、そのサブネットは
同じものを別AZにも作成する
47
モダンブラウザを知ろう
とりあえずELBアンチパターン
48
とりあえずELBアンチパターン
•  原因
–  冗⻑⾧長化のためにロードバランサを必ず置かないとい
けないと古い知識識のまま勘違いしている
•  症状
–  サーバからのプッシュができない(あるいは⾯面倒な
仕掛けが必要に)
49
とりあえずELBアンチパターン
•  解決法
–  モダンブラウザxDNSラウンドロビン
–  ロードバランサは適材適所に
50
キャパシティにまつわる2つの
アンチパターン
⽇日本だけでも使います
CloudFront使わないアンチパ
ターン
52
CloudFront使わない
アンチパターン
•  原因
–  配信先が⽇日本だけなのでいらないと考える
–  キャッシュ設定を嫌う
•  症状
–  HTTPアクセスピーク時に帯域が律律速に。CPUやディスク
に余裕があるのにサービスできず
–  S3のレスポンス(200-‐‑‒500msec)が遅いと⽂文句句を⾔言う
53
CloudFront使わない
アンチパターン
•  解決法
–  CloudFrontのレスポンスを体験してみる
–  オリジンサーバのキャッシュ制御を適切切に設定する
–  参考:CloudFrontのAWSマイスターシリーズ
54
実アプリとベンチマークソフトウェ
アの乖離離に注意
ベンチマークアンチパターン
55
ベンチマークソフトウェアアンチパターン
•  原因
–  システム実態と違うベンチマークソフトウェアによ
る測定値を使ったサイジング
–  本番と測定時の規模の差
•  症状
–  パフォーマンス不不⾜足
–  コスト過⼤大
56
ベンチマークソフトウェアアンチパターン
•  解決法
–  本番システムと全く同じシステムを⼀一時期的にAWS
では確保できるので、それでパフォーマンスを測定
する
57
こころがけるべき汎⽤用的な3つの
アンチパターン
明細は適宜確認しましょう
ノールック明細アンチパターン
59
ノールック明細アンチパターン
•  原因
–  ⽉月末の料料⾦金金請求しかないと思っている
•  症状
–  ⽀支払い周期のずれ
–  クレジットカード与信額のつかいきり
60
ノールック明細アンチパターン
•  解決法
–  「AWSサポート新規契約」「RI購⼊入」の際に請求書
がわかれる
–  RI購⼊入は契約時の購⼊入費⽤用分のみ  /  サポート契約は
初⽉月分のみ請求書が分かれる
–  Consolidated  Billing  使⽤用の場合、⼦子アカウントが
RIを購⼊入しても親アカウント宛に請求書が届くこと
になるので注意
61
成⻑⾧長するクラウド。成⻑⾧長するビジネ
ス。
インフラ塩漬けアンチパターン
62
インフラ塩漬けアンチパターン
•  原因
–  構築した当初のままインフラの⾒見見直しをしない
•  症状
–  実際の利利⽤用にくらべてキャパシティの過不不⾜足を放置
したまま利利⽤用している
–  ⼀一時凌凌ぎで選んだサービスをそのまま使い続けてい
る
63
インフラ塩漬けアンチパターン
•  解決法
–  サービスは四半期に⼀一度度は⾒見見直す
–  新サービスや新機能が助けになることが
64
JUST  DO  IT!
机上の空論論アンチパターン
65
机上の空論論アンチパターン
•  原因
–  サーバ発注、システムデプロイ、納品の硬直した
ループにはまっている
•  症状
–  動作確認をしない
–  事前のキャパシティプランニングに時間をかけすぎ
る
66
机上の空論論アンチパターン
•  解決法
–  ともかく⼩小さく試してみること
67
ウェブアプリ向けのアンチパターンまとめ
•  クラウドデザインパターンの活⽤用
–  知る
–  議論論する
–  やってみる
•  アンチパターンは有益
–  失敗したら、打開策までもっていこう
68
Webでノウハウを共有
WIKI  http://aws.clouddesignpattern.org/
index.php
FACEBOOK
https://www.facebook.com/awscdp
69
書籍でノウハウを共有
Amazon  Web  Services  クラウドデザインパターン  設計ガイド
70

Webサービス向け、クラウドデザインパターン:アンチパターン紹介