aws black belt online seminar antipattern
TRANSCRIPT
1
【AWS Black Belt Online Seminar】失敗例を成功に変えるAWSアンチパターン
2016/6/14
アマゾンウェブサービスジャパン株式会社
ソリューションアーキテクト シニアマネージャー
荒木靖宏
自己紹介
• 名前– 荒木 靖宏
• 所属– アマゾンウェブサービスジャパン株式会社– 技術本部レディネスソリューション部シニアマネージャプリンシパルソリューションアーキテクト
• 好きなAWSサービス– Amazon Virtual Private Cloud– AWS Direct Connect
2
AWSクラウドデザインパターンとは...
• AWSクラウドを使ったシステムアーキテクチャ設計を行う際に発生する、典型的な問題とそれに対する解決策・設計方法を、分かりやすく分類して、ノウハウとして利用できるように整理したもの。
4
アンチパターン
• 失敗に陥るパターンを類型化し、事例の早期発見と対応策に関しての提案を目的とする
• 動作やプロセス、構造について、当初は妥当であったのに、最終的に悪い結果が繰り返されるパターン
• リファクタリングするための方法が存在するパターン
8
適用例:DBの使い分け
• 状況– パフォーマンスが高いDBと聞いて、並列度の高い
SQLアクセス用途(OLTP)にRedShiftを採用
• 症状– 「パフォーマンスが悪い」
• 解決法– DBの特性を理解する
9
データ・ストアの特性に応じた使い分け
Amazon DynamoDB
Amazon RDS
Amazon ElastiCache
Amazon Redshift
SQL
NoSQL• 低レンテンシ• インメモリ
• 3拠点間でのレプリケーション
• SSDに永続化
• トランザクション処理
• 汎用用途
• 集計・分析処理• 大容量データ• DWH
Redshiftが向く用途
• 特化型のデータベースのため、適した用途に使うことでパフォーマンスを発揮
• Redshiftに向くワークロード– 巨大なデータ・セット(数百GB~ペタバイト)– 1つ1つのSQLが複雑だが、同時実行SQLは少ない– データの更新は一括導入
• ユースケース– データウェアハウス(DWH)– ユーザがクエリーを作成する(自由クエリー)(BI等)
Redshiftの特徴を生かせないユースケース
• SQLの並列実行数が多い(※同時接続数ではなく同時実行数)– RDS(MySQL ,PostgreSQL, Oracle, SQL Server)を検討
• 極めて短いレーテンシが必要なケース– ElastiCache (インメモリDB)やRDSを検討
• ランダム、かつパラレルな更新アクセス– RDSもしくはDynamoDB (NoSQL)を検討
• 巨大なデータを格納するが集計等はしない– DynamoDBや大きいインスタンスのRDSを検討
適用例:ストレージの使い分け
• 状況– 「ストレージ代込」でEC2が使えると聞いて、インスタンスストアにシステム構築
• 症状– データの消失、容量不足
• 解決法– ストレージの特性を理解する
13
インスタンスストアとEBS
• インスタンスタイプに応じて、追加コスト無しで揮発性のインスタンスストアが利用できる
• 実体はEC2の物理ホストのローカルディスク。Stop/Startにより仮想マシンが別ホストに移動するとデータが消去される
• アプリケーションが利用する一時的なデータの置き場所や、分散ファイルシステムのストレージとして活用する
• EBSは永続化ストレージなので、OSの領域やDBのデータなど永続化が必要なデータの置き場所としてはEBSを利用する
EBSとインスタンスストアの利用ケース
OSブートディスク
としての利用
D:C:
EBS
EC2
EBS
Windows
データ格納ディスク
としての利用
Instance
Store
E:
データ計算用など
一時的な利用
データファイル
システムデータ
一時データ
17
• ユースケースに応じて性能やコストが異なる5種類のボリュームタイプから選択できる
– 汎用SSD(General Purpose(SSD))
– プロビジョンドIOPS(SSD)
– スループット最適化HDD
– コールドHDD
– マグネティック(Magnetic)
• Snapshotを経由することでボリュームタイプや容量を変更可能
EBSのボリュームタイプ
18
EBSのボリュームタイプの整理(SSDタイプ)
ボリュームタイプ 汎用SSD(gp2)- General Purpose SSD
プロビジョンドIOPS(io1)- Provisioned IOPS(SSD)
ユースケース • システムブートボリューム
• 仮想デスクトップ
• 小~中規模のデータベース
• 開発環境や検証環境用
• 汎用SSDでは処理しきれない高いIO性能を要求するアプリケーション
• 10,000IOPSや160MB/sを超える性能を要するワークロード
• 大規模なデータベース
ボリュームサイズ • 1GBから16TBまで • 4GBから16TBまで
IOPS • 1GBあたり3IOPSのベースラインパフォーマンス
• ベースラインパフォーマンスが3,000IOPS以下の場合、3,000IOPSまでバーストが可能
• 最低100IOPS、最大10,000IOPS
• 必要なIOPS値を指定可能
• 容量(GB)あたり30IOPSを指定できる
• 最大20,000IOPS
スループット • 最低128MB/秒(170GB以下)から最大160MB/秒(214GB以上)まで
• 最大320MB/秒(1280IOPS以上のとき)
※1IOPSあたり256KB/sを利用可能
19
EBSのボリュームタイプの整理(HDDタイプ)
ボリュームタイプ スループット最適化HDD(st1)- Throughput Optimized HDD
コールドHDD(sc1)- ColdHDD
ユースケース • EMR
• データウェアハウス
• 大規模なETL処理
• 大規模なログ分析
※起動ボリュームには利用できない
• ログデータ保管
• バックアップ
• アーカイブ
※起動ボリュームには利用できない
ボリュームサイズ • 500GBから16TBまで • 500GBから16TBまで
IOPS • 最大500IOPS • 最大250IOPS
スループット • ベース値:1TBあたり40MB/s
• バースト値:1TBあたり250MB/s
• バーストクレジット上限:1TB/1TB
• 最大500MB/s
• ベース値:1TBあたり12MB/s
• バースト値:1TBあたり80MB/s
• バーストクレジット上限:1TB/1TB
• 最大250MB/s
AWSのイノベーションの歩みAWS has been continually expanding its services to support virtually any cloud workload, and it now has more than 60 services that range from compute, storage, networking, database, analytics, application services,
deployment, management and mobile.
2009
Amazon RDS
Amazon VPC
AWS Auto Scaling
AWS Elastic Load
Balancing
2010
Amazon SNS
AWS Identity
& Access
Management
Amazon
Route 53
2011
Amazon
ElastiCache
Amazon SES
AWS
CloudFormation
AWS Direct
Connect
AWS Elastic
Beanstalk
GovCloud
2012
Amazon SWF
Amazon
Redshift
Amazon
Glacier
Amazon
Dynamo DB
Amazon
CloudSearch
AWS Storage
Gateway
AWS Data
Pipeline
2013
Amazon
CloudTrail
Amazon
CloudHSM
Amazon
WorkSpaces
Amazon
Kinesis
Amazon Elastic
Transcoder
Amazon
AppStream
AWS OpsWorks
2014
AWS KMS
Amazon Config
Amazon Cognito
Amazon
Mobile
Analytics
Amazon EC2
Container Service
Amazon RDS for
Aurora
Amazon Lambda
Amazon WorkDocs
AWS Directory
Service
AWS CodeCommit
AWS CodePipeline
2015
Amazon EFS
Amazon API Gateway
Amazon WorkMail
Amazon Machine
Learning
AWS Device Farm
AWS WAF
Amazon
Elasticsearch Service
Amazon QuickSight
AWS Import/Export
Snowball
Amazon Kinesis Firehose
Amazon RDS for MariaDB
Amazon Inspector
AWS Database Migration
Service
AWS IoT
Amazon EC2 Container
Registry
Amazon Kinesis Analytics
AWS Mobile Hub
* As of 8 Oct 15
AWS EMR
Amazon CloudWatch
Amazon FPS AWS Import/Export
Trusted AdvisorAWS Service Catalog
AWS CodeDeploy
Amazon CloudWatch Logs
82
159
280
516
500+
インフラ塩漬けアンチパターン
• 原因
– 構築した当初のままインフラの見直しをしない
• 症状
– 実際の利用にくらべてキャパシティの過不足を放置したまま利用している
– 一時凌ぎで選んだサービスをそのまま使い続けている
24
塗り替えたパターンの例
• Managed NATが塗り替えたもの– HA NAT
– Auto Scaling NAT
• VPC endpoint for S3が塗り替えたもの– HA EC2 proxy for S3
• WAFが塗り替えたもの– ELB sandwich for WAF appliance
Availability Zone A
Private Subnet
Availability Zone B
Private Subnet
Internet
Amazon S3 DynamoDB
AWS Region
Public Subnet Public SubnetNAT
• NATインスタンスにオートスケールを設定(min=1,max=1)し、AZ毎に1NAT
• プライベートサブネットのルートテーブルは同じAZのNATにむける
HA NAT
NAT
Auto Scale NAT
• AZ毎にHA NATを配置する
• スケールアップ!
• ネットワーク関連メトリクスを見る
• プロトコル別アプリケーションプロキシも有効
m1.smallLow
m1.largeModerate
m1.xlarge, c1.xlargeHigh
t1.microVery Low
ELB sandwich for WAF appliance
• Auto scaleに対応していないWAFアプライアンスをELBで挟んで機能を補う
31
Auto Scaling group WAFアプライアンス
Amazon API Gateway
• 特徴 (http://aws.amazon.com/jp/lambda/)
– OS、キャパシティ等インフラの管理不要
– バックエンドとしてLambda、既存Webシステムを利用可能
– スロットリング/キャッシュ
• 価格体系 (http://aws.amazon.com/jp/lambda/pricing/)
– 呼び出し回数とキャッシュ容量
– 100万回の呼び出しにつき$3.5
– キャッシュ容量に応じて$0.02/時~$3.8/時
Web APIの作成・保護・運用と公開を簡単に
Mobile Apps
Websites
Services
API
Gateway
AWS Lambda
functions
AWS
API Gateway
Cache
Endpoints on
Amazon EC2 /
Amazon Elastic
Beanstalk
Any other publicly
accessible endpoint
Amazon
CloudWatch
Monitoring
同期API Gatewayアンチパターン
• 原因
– API Gatewayを「同期」サービスとして使う
• 症状
– APIGWがタイムアウトしてしまう
– APIGWの同時実行数が足りない
– APIGWの価格が高い
34
同期API Gatewayアンチパターン
• 解決法
– APIの非同期化。「実施のオーダー」と「状態の確認」で構成する
• 留意点
– APIGW→Lambda→RDS(VPC)のようなレイテンシが大きく変化するケースを避ける。
– Javaを使う場合さらに注意
35
AWS IoT
• 特徴 (https://aws.amazon.com/jp/iot/)
– デバイスとクラウドの双方向コミュニケーション
– HTTP、MQTT、Websocketに対応
– SQLベースのルールとアクション定義
– AWSサービスとのシームレスな連携
– デバイス向けのSDK
• 価格体系 (https://aws.amazon.com/jp/iot/pricing/)
– 100万メッセージあたり$8(日本リージョン)
– 無料利用枠利用は25万メッセージ/月を(1年間)
簡単で安全なクラウドへのデバイス接続サービス
様々な産業での利用
アーキテクチャ図
ノールック明細アンチパターン
• 解決法– 「AWSサポート新規契約」「RI購入」の際に請求書がわかれる
– RI購入は契約時の購入費用分のみ / サポート契約は初月分のみ請求書が分かれる
– Consolidated Billing 使用の場合、子アカウントがRIを購入しても親アカウント宛に請求書が届くことになるので注意
41
アンチパターンまとめ
• アンチパターンはリファクタリング方法が存在する
• 3つの避けるべきメタアンチパターン
– インフラ塩漬けアンチパターン
– ノールック明細アンチパターン
– 机上の空論アンチパターン
45
Webでノウハウを共有
WIKI http://aws.clouddesignpattern.org/index.php
FACEBOOKhttps://www.facebook.com/awscdp
46
49
詳しくは、http://aws.amazon.com/training をご覧ください
メリット
• AWS について実習や実践練習を通じて学習できる
• AWS を熟知したエキスパートから直接 AWS の機能について学び、疑問の答えを得られる
• 自信をもって IT ソリューションに関する決定を下せるようになる
提供方法
e ラーニングや動画
セルフペースラボ
クラスルームトレーニング
AWSトレーニングでは様々な学習方法をご提供しています
50
公式Twitter/FacebookAWSの最新情報をお届けします
@awscloud_jp
検索
最新技術情報、イベント情報、お役立ち情報、お得なキャンペーン情報などを日々更新しています!
もしくはhttp://on.fb.me/1vR8yWm
51
AWSの導入、お問い合わせのご相談
• AWSクラウド導入に関するご質問、お見積り、資料請求をご希望のお客様は、以下のリンクよりお気軽にご相談くださいhttps://aws.amazon.com/jp/contact-us/aws-sales/
※「AWS 問い合わせ」で検索してください