Contenu connexe Similaire à DB2をAWS上に構築する際のヒント&TIPS 2018年1月版 (20) Plus de Akira Shimosako (8) DB2をAWS上に構築する際のヒント&TIPS 2018年1月版2. 2
自己紹介
名前:下佐粉 昭(しもさこ あきら) @simosako
Unofficial DB2 Blog, DB2の書籍
http://db2.jugem.cc/
所属:
– アマゾンウェブサービスジャパン株式会社
技術本部 ソリューションアーキテクト
好きなAWSサービス:Redshift, RDS, S3
– 人間が運用等から開放されて楽になる系のサー
ビスが好きです
3. 3
アジェンダ
• AWS概要
– AWSのネットワーク
• AWSの仮想マシン
– RDB用途でEC2を利用する:選択の指針と注意点
• AWSのストレージ
– RDBでパフォーマンスを出すためのストレージ構成
• バックアップとディザスタ・リカバリ
• (補足)モニタリングとAWSのマネージドサービス
5. 5
AWSの豊富なサービス:全部APIで操作できます
お客様のアプリケーション
モバイルサービス
Mobile Analytics, Cognito, SNS,
Device Farm
コンテンツ配信
CloudFront
ネットワーク
VPC, Route 53, Direct Connect
認証とログ
IAM, Cloud Trail,
Cloud HSM,
Config
モニタリング
Cloud Watch,
Trusted Advisor
デプロイと自動化
Elastic Beanstalk,
Cloud Formation,
OpsWorks
管理インター
フェイス
Management
Console, CLI
ライブラリ & SDKs
Java, PHP,
.NET,
Python, Ruby
グローバルインフラ
リージョン、アベイラビリティゾーン、エッジロケーションAZRegio
n
コンピュート処理
EC2, Auto Scaling, Elastic,
Load Balancing, Lambda
EC2 Container Service
アプリケーション
WorkSpaces, WorkDoc, WorkMail
ストレージ
EBS, S3, Glacier, Storage Gateway
データベース
RDS, DynamoDB,
Redshift, ElastiCache
分析
Elastic MapReduce,
Kinesis, Data Pipeline,
Machine Learning
アプリケーションサービス
AppStream, Cloud Search, SWF,
SQS, SES, Elastic Transcoder,
API Gateway
ディレクトリ
Directory
Service
コード管理
CodeDeploy,
CodeCommit,
CodePipeline
7. 7
1つのアカウントで世界中のリージョンが利用可能
18のリージョン(地域)
1. 米国東部 (バージニア北部)
2. 米国西部 (北カリフォルニア)
3. 米国西部 (オレゴン)
4. 欧州 (アイルランド)
5. 日本 (東京)
6. 南米 (サンパウロ)
7. アジアパシフィック (シンガポール)
8. アジアパシフィック (シドニー)
9. 米国GovCloud *1
10. 中国 (北京)*2
11. 欧州 (フランクフルト)
12. アジアパシフィック (ソウル)
13. アジアパシフィック(ムンバイ)
14. 米国東部(オハイオ)
15. カナダ中部
16. 欧州(ロンドン)
17. 中国(寧夏) *2
18. 欧州(パリ)
*1 GovCloudは米国政府関係企業用です
*2 中国のリージョンは他AWSのアカウントとは別のアカウント作成が必要です
今後、ストックホルム、香港、GovCloud(US-EAST)、中東(バーレーン)でのリージョンオープンを計画
2018年には大阪にローカルリージョンのオープンを計画
10. 10
Amazon VPCとDirect Connect
• VPCでクラウド内にプライベートネットワークを構築
• プライベートNW内には自由にサブネットを作成可能
• 既存インフラとはVPNか専用線(Direct Connect)で接続
AWSクラウド
VPC
イントラ
インターネット
プライベート
サブネット
分離したNW
領域を作成
インターネット
VPN接続 (IPSec)
パブリック
サブネット
インターネット
ゲートウェイ
仮想サーバ (EC2)
DBサービス(RDS)専用線接続
Direct Connect
15. 15
EC2 インスタンスファミリー
• 利用用途に合わせて様々なファミリーをご用意
• RDBはメモリの大きさがキモ → R4シリーズが第1候補(他にはM5/M4やC5/C4)
ファミリー
汎用
M5/M4シリーズ
コンピューティング最適化
C5/C4シリーズ
メモリ最適化
R4シリーズ/X1シリーズ
ストレージ密度最適化
H1/D2シリーズ
バーストパフォーマンス
T2シリーズ
GPUインスタンス
P3シリーズ
ストレージI/O最適化
I3シリーズ
通常用途に適したバランスのコンピューティング・メモリ・ネットワーク性能
普段はあまり負荷が無いが、一時的に負荷がある(開発機、小規模システム、etc)
高いCPU性能が必要な用途(APサーバ、HPC、画像処理、etc)
コアあたりのメモリが大きく、大量のメモリが必要な用途(DBサーバ、etc)
高速なIOPSを実現するSSDを内蔵(DBサーバ、DWH、ビッグデータ、etc)
大容量HDDを内蔵(DBサーバ、DWH、ビッグデータ、etc)
GPUコアが必要な用途(グラフィック表示、画像処理、機械学習、etc)
http://aws.amazon.com/jp/ec2/instance-types/
22. 22
EC2のブロック・ストレージには二種類ある
Amazon EC2 インスタンスストア
• ホストコンピュータに内蔵されたディスク
• EC2と不可分
• EC2を停止/削除するとクリアされる
• 性能・容量はインスタンスタイプごとに規定
• 追加費用なし
Amazon Elastic Block Store (EBS)
• ネットワークで接続
• EC2とは独立管理
• EC2を削除してもEBSは保持可能
• ボリュームごとに性能・容量を定義可能
• EBSの費用が別途発生
http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/Storage.html
23. 23
Amazon EBS (Elastic Block Store)
• EC2にマウント可能なブロックストレージ
• 1つのEBSは最大16TB, 最大32,000IOPSまで性能を確保可能
• 内部的に冗長化されているため、RAID1での冗長化は不要
• サイズ変更可能
• スナップショット機能でS3に差分バックアップ
EBS/dev/xvdf
/dev/xvda
EC2
EBS
EBS
S3
2日前 3日前 4日前
S3
2日前 3日前 4日前
スナップショット
スナップショット
24. 24
【補足】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を指定できる
• 最大32,000IOPS
スループット • 最低128MB/秒(170GB以下)から
最大160MB/秒(214GB以上)まで
• 最大500MB/秒(1280IOPS以上のとき)
※1IOPSあたり256KB/sを利用可能
25. 25
【補足】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
26. 26
General Purpose (GP2) (SSD)
容量が1,000GB未満
の場合、3,000IOPS
までのバーストが発生
容量が1,000GBに到達
すると常時3,000IOPS
以上の性能を発揮する
容量が3,334GBを超える
と、常時10,000IOPSを
発揮する
ボリュームあたりのスループットは160MB/s
ベースパフォーマンス
27. 27
IOPS I/O Credit
残高
初期状態で
I/O Credit残高は
5,400,000
I/O Creditが残っている
間はバースト。
3000IOPS出る
バースト中はI/O
Creditの残高を取り
崩す形となる
残高が0になると
バーストは終了
残高が0になるとI/O
性能もベースパ
フォーマンスに戻る
I/O負荷がベースパフォーマ
ンスを下回るとCreditが貯金
される
再び高負荷が発生すると、
I/O Creditの残高に応じ
てバースト
分
ベースパフォーマンス
(gp2 500GB時)
GP2 – バーストの継続時間
28. 28
• EBS最適化を有効にすること
で独立したEBS帯域を確保
• RDB用途では重要
• 大きいインスタンスタイプほ
ど使える帯域が広い
• 比較的新しいインスタンスは
デフォルトでEBS最適化がON
EC2
w/o EBS
Optimized
Network
EBS
EC2
with EBS
Optimized
Network
EBS
EBS最適化なし
EBS最適化あり
EBS最適化インスタンスによるEBS帯域の確保
http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/EBSOptimized.html
29. 29
パフォーマンスを見越した設計① 表領域
• 表領域
– 全体パフォーマンスへの影響が大きいので特に速度を重視した設計にする
– gp22のIOPSは、3,334GB(以上)で10,000 IOPS(最大)の速度を実現できる
– 20,000IPOSのio1と、10,000IPOSのgp2を2つではGP2が2つの方が安価
• 基本戦略
– 必ずEBS最適化を選択(インスタンスによって利用の可否が異なります)
– (最大3,334GBの)GP2 EBSを複数個コンテナとして定義
– 複数EBSをDB2にストライピングさせる
• RDB側でストライピング出来ない場合はOSやファイルシステム側で実施
• DB2ではCREATE DB時に自動ストレージに設定してしまうのが楽
• 注意点
– EBSはそもそも冗長化されているので、RAID 1はメリットが無い
– EBS1ボリュームで構成した場合でもDB2_PARALLEL_IOの設定がお勧め(EBSのパ
フォーマンスを引き出すには並列アクセスが効果的)
30. 30
パフォーマンスを見越した設計② ログ領域
• トランザクション・ログ領域
– 更新処理のパフォーマンスに影響
– 表領域ほどサイズは必要なく、追記速度が重要
– 最も可用性が重要なストレージ領域
• 基本戦略
– gp2のEBSを必要なサイズ、もしくは3,334GBで1つ用意する
– 書き込みパフォーマンスを特に重視する場合はio1を選択することで、32,000
IOPS まで速度を引き上げることが可能
– 冗長化重視の場合は、もう一つEBSを作成しDB2側の設定でミラー・ログ
• 若干更新パフォーマンスが低下
31. 31
パフォーマンスを見越した設計③ その他の領域
• 一時表領域
– インスタンスストアで一時表領域を作成。リスタートでアンフォーマットな状態にな
るので、OS起動時(DB2起動前)にフォーマットし、マウントしておくように準備
が必要
– インスタンスストアが無い環境ではEBSで作成。LOAD元領域等と混ぜるのも手
• LOAD元データ格納領域
– LOADの速度を上げたい場合はLOAD元のディスク速度も重要
– 大きめのGP2を作成して利用
– ストライピングまでは必要ないケースが多いが、必要であればファイルシステム側で
• OS領域・RDB本体の領域
– その他の領域とは必ず分離する(データとプロダクトはライフタイムが異なる)
– さして速度は必要ないので、GP2で適切なサイズを作成
39. 39
補足:Snapshot経由で別AZにEBSをコピー
• EBSは EC2インスタンスから独立している
(他のEC2インスタンスに付け替え可能)
• データは永続的に保存される
• EBSはアベイラビリティゾーン(AZ) 内に作成される
• =別AZのEC2からはマウントできない
• ただしスナップショット(バックアップ)から別AZ
にEBSボリュームを作成(リストア)可能
Region
Availability Zone - a
EBS EBS EBS
Availability Zone - b
EBS EBS
Amazon Simple
Storage Service
(S3)
EBS
Snapshot
EC2 EC2
http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/User
Guide/AmazonEBS.html
44. 44
AWSでノード間通信を高速化する方法①
拡張ネットワーキング (Enhanced Networking)
• 拡張ネットワーキング
– パケット毎秒(PPS)が非常に大きく、
ネットワークレイテンシが低くな
るオプション
– SR-IOVに対応
– 利用可能な環境であれば有効化が
推奨
• 適応条件
– VPC内でHVM AMIで起動
– 対応インスタンスの利用
– 詳細)
http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/enhanced-networking.html
VMM
NIC NIC
VF1 VF2 VF3
Switch
通常 Enhanced Network
VMM
45. 45
AWSでノード間通信を高速化する方法②
Cluster Placement Groups
• インスタンス間通信を最適化
– 低レイテンシ
– 高PPS (packets per seconds)
• 用途
– HPC、Hadoop、MPP、DWHなど、ノード間通信
が大量に発生するクラスタに最適
– 拡張ネットワーキングとの併用を推奨
• 制限
– 単一アベイラビリティゾーンに閉じる
– 利用可能なインスタンスタイプに制限あり
Full bisection bandwidth
http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/placement-groups.html
49. 49
CloudWatchができること
• 各AWSサービスのメトリックス監視
– メトリックス = 監視項目(例:CPU使用率)
– メトリックスを追加定義も可能
• カスタムメトリックス
– メトリックス値を時系列にグラフ表示
• 見たい内容を組み合わせて表示する機能(ダッシュボード機能)
• デフォルトで5分間隔のモニタリング(無料)
– 詳細モニタリング=ONで、1分間隔のモニタリングも可能(要追加費用)
• 各メトリックスに対してアラームを作成可能
– しきい値を設定(例:CPU使用率60%以上)
– メトリックス値がしきい値を越えたら起こすアクションを定義(例:メールで通知)
• EC2上のログ監視 ・・・Amazon CloudWatch Logs
– メトリックスとアラームも作成可能
http://www.slideshare.net/AmazonWebServicesJapan/aws-black-belt-
tech-amazon-cloudwatch-auto-scaling
50. 50
Amazon Relational Database Service (RDS)
フルマネージドのRDBサービス
• 特徴 (http://aws.amazon.com/jp/rds/)
– MySQL / PostgreSQL / Oracle DB / SQL
Server/ MariaDB/ Auroraに対応
– 数クリックで構築可能
– バックアップやパッチの適用、フェイルオー
バーは自動
– Oracle DB / SQL Serverのライセンスを従量
課金モデル or BYOLで利用可能(※エディショ
ンによって制限があります)
– 2つのAZにまたがった同期レプリカを配置可
能(Hot-Standby構成) / リージョン間でス
ナップショット自動転送も可能
詳しくはこちら
http://www.slideshare.net/AmazonWebServicesJapan/aws-blackbelt-2015-rds
51. 51
Amazon RDS for Aurora
• 特徴 (http://aws.amazon.com/jp/rds/aurora/)
– MySQL5.6/PostgreSQL 9.6との互換性
– 3AZに6本のディスクに書き込み2本のディス
ク障害ではRead/Write可能。3本のディスク
障害でもRead可能
– キャシュとログをAuroraプロセスから分離す
ることでAuroraプロセスのリスタートでも
キャッシュが残る
– レプリケーション遅延は10-20ms程
– 64TBまでディスクがシームレスにスケールす
る
Amazonがクラウド時代に再設計したデータベース
https://www.slideshare.net/AmazonWebServicesJapan/aws-black-belt-online-seminar-amazon-aurora
https://www.slideshare.net/AmazonWebServicesJapan/aws-black-belt-online-seminar-2017-amazon-aurora-with-postgresql-
compatibility
52. 52
Amazon Redshift
• 特徴 (http://aws.amazon.com/jp/redshift/)
– 160GBから最大2PBまで拡張可能
– スケールアウト型設計(MPP)、カラムナ
型DBエンジンによる高速処理
– 他のAWSサービスとの高い親和性
– PostgreSQLとの互換性
– 従来のデータウェアハウスの1/10のコスト
フルマネージドのデータウェアハウスサービス
10Gb Ether
JDBC/ODBC
Redshift 大規模分散処理
で分析SQLを
高速実行
詳しくはこちら https://www.slideshare.net/AmazonWebServicesJapan/aws-black-belt-
online-seminar-amazon-redshift
55. 55
AWSクラウド 無料利用枠のご案内
• サインアップしてから 12か月間、AWSクラウドサービスを
無料で実際にお使いいただけます
• 25の製品およびサービスで無料枠が設定されています
• http://aws.amazon.com/jp/free/
Amazon EC2
t2.micro インスタンスを
1ヶ月あたり750時間分無料
(Windows, Linux)
Amazon RDS
db.t2.micro インスタンスを
1ヶ月あたり750時間
ディスク20GB分無料
(シングルAZ)
例)
60. 60
Simple Monthly Calculator(簡易見積ツール)
• Web上に費用試算ツールをご
用意しています
– http://calculator.s3.amazonaws.com/ind
ex.html?lng=ja_JP
• 詳しい使い方はこちら
– http://www.slideshare.net/AmazonWebS
ervicesJapan/aws-simple-monthly-
calculator-20130910