[レポート] AWS での SQL Server の設計、移行、最適化 #WIN313 #reinvent

本記事は、AWS re:Invent 2019 のセッション 「WIN313 Design, migrate, and optimize SQL Server on AWS」 のレポートです。
2019.12.05

はじめに

みなさま Xin chao !

本記事は、AWS re:Invent 2019 のセッション 「WIN313 Design, migrate, and optimize SQL Server on AWS」 のレポートです。

 

セッション概要

セッション概要を和訳したものです。

このセッションでは、AWS で Microsoft SQL Server を実行するためのベストプラクティスと考慮事項について詳しく説明します。 Amazon Elastic Compute Cloud (Amazon EC2) と Amazon Relational Database Service (Amazon RDS) を選択する方法を学び、さまざまなアプリケーションタイプに合わせて SQL Server 展開のパフォーマンスを最適化する方法を理解します。 SQL Server データベースをプロビジョニングおよび監視する方法、および Amazon RDS と Amazon EC2 の両方でスケーラビリティ、パフォーマンス、可用性、セキュリティ、およびバックアップとリカバリを管理する方法について詳しく説明します。

 

スピーカー

  • Tom Staab - Partner Solutions Architect, Amazon Web Services
  • Pallavi Sharma - Sr. Prod Manager - Technical External Services, Amazon Web Services
  • Stephen Wright - Sr. Director, VP, Liberty Mutual Insurance
  • Sean Creagan - Director Analytics & Emerging Technology, Liberty Mutual Inc.

 

レポート

AWS は、クラウドで Microsoft の 2 倍近くの Windows Server インスタンスをホストしている。

SQL Server on AWS

  • なぜ SQL Server のワークロードとして AWS を選択するのか?
  • どこで (≒どのサービスを使って) AWS で実行するか?
  • どのように SQL Server を AWS に移行するか?
  • 次に来るのは AWS 上の SQL Server のセキュア化, 監視, 管理

AWS 上の SQL Server は、Azure と比べて 2 倍以上の価格/パフォーマンスを示す (ZK リサーチ)

 

AWS のどこで SQL Server を実行するか?

AWS での選択肢

Amazon Relational Database Service (Amazon RDS)

  • 最大 96vCPU, 488GB RAM, 16TB ストレージ

Amazon Elastic Compute Cloud (Amazon EC2)

  • セルフマネジメントの仮想マシン, 最大 128vCPU, 4TB RAM, 400-TB ストレージ

SQL Server の機能の概要

 

Amazon RDS : 手間のかからない柔軟性

インスタンスタイプの選択 :

  • M5 / M4 インスタンス ・・・ 低コスト向け
  • R5 / R4 インスタンス ・・・ 大容量 RAM 向け

EBS ボリュームタイプの選択 :

  • GP2 ボリューム ・・・ 低コスト向け
  • IO1 ボリューム ・・・ I / O  に敏感, クリティカルなワークロード向け

コンピューティングとストレージを容易に拡張

  • 負荷の増減により使いこなす, 最大 128vCPU または 最大 2096GB の RAM
  • 大きなデータセットに基づいてストレージを拡張, 最大 16TB
  • コストの最適化のためにスケールダウンを検討. わずか 1vCPU かつ 1 GiB の RAM

Amazon EC2 with SQL Server

Amazon EC2 での Microsoft 製品ライセンス

 

Amazon EC2 : ニーズに合わせたスケーリング

  • R5n ネットワークパフォーマンスの最大値 : 100 GB
  • i3 ローカル NVMe ストレージの最大値 : 60 TB
  • X1e 最大 4 TB バックアップバッグ
  • 最大 24 TB RAM の高メモリ搭載インスタンス

BYOL 向け CPU 最適化によるライセンスの最適化

  • 新しい EC2 インスタンスを起動する際に、アクティブな vCPU 数とハイパースレッティングステータスをコントロールする
  • SQL Server ライセンス数の削減 (につながる)

Amazon EC2 インスタンスストアとは?

  • インスタンスのローカル
  • 非永続的データストア
  • SSD or HDD
  • デフォルトでは複製されないデータ
  • スナップショット非サポート
  • tempdb に最適な選択肢
  • R5d, z1d, i3 上の超高速 NVMe

Amazon EBS

  • EC2 用の永続的ブロックレベルストレージ
  • プロビジョニングした分だけ課金
  • ネイティブの冗長構成と書き込みキャッシュ
  • 一貫した低レイテンシのパフォーマンス
  • ランダム I/O に最適化
  • 保管時の暗号化のネイティブサポート (データボリューム)

Amazon EBS のボリュームタイプ

SSD

  • gp2 ・・・ 汎用的, $0.10 / GB
  • io1 ・・・ プロビジョンド IOPS, $0.125 / GB + $0.065 / PIOPS

HDD

  • st1 ・・・ スループット最適化, $0.045 / GB
  • sc1 ・・・ コールド, $0.025 / GB

スナップショットストレージはいずれも 1 カ月あたり $0.05 / GB

※ 価格はいずれも US-East-1 リージョンの 2019 年 9 月 現在のもの

Amazon EC2 と EBS のパフォーマンス

EBS パフォーマンスは EC2 インスタンスタイプによって変わる

  • いくつかのインスタンスファミリーとの使用で最大 80,000 IOPS かつ 1,750 MB/s, サイズによりスケール

gp2 ボリューム

  • サイズによってパフォーマンスがスケール, 3 IOPS / GB, 最大 16,000 IOPS, 250 MB/s
  • プロビジョンド IOPS の+-10% 以内のパフォーマンスを発揮できる時間が全体の 99% となるように設計されている

io1 ボリューム

  • 設定可能なパフォーマンス, 最大 50 IOPS / GB, 最大 64,000 IOPS, 1,000 MB / s
  • プロビジョンド IOPS の+-10% 以内のパフォーマンスを発揮できる時間が全体の 99.9% となるように設計されている

高可用性 と ディザスタリカバリー

Amazon EC2 Multi-AZ Always On 可用性グループ

 

AWS Launch Wizard for SQL Server

  • Amazon EC2 で SQL Server Always ソリューションをサイズ設定、構成、および展開するためのガイド付きエクスペリエンス
  • Well-Architected framework に従っている

Amazon FSx が SQL Server の HA デプロイをシンプルにする

  • Amazon FSx を使うと、デプロイ、管理、ストレージレプリケーションソフトウェアソリューションのライセンス料を支払う必要がない

 

Amazon EC2 マルチ AZ フェールオーバークラスターインスタンス with SIOS DataKeeper

 

Amazon EC2 マルチリージョンディザスタリカバリー with SIOS DataKeeper

 

Amazon RDS マルチ AZ SQL Server (マネージドサービス)

 

Amazon RDS マルチリージョン SQL Server 可用性 with CloudBasic

 

Amazon RDS マルチリージョン SQL Server リードレプリカ with CloudBasic

 

どのように SQL Server を AWS に移行するか?

シンプルバックアップ  / リストアマイグレーション

  • Amazon RDS
  • Amazon EC2 のいずれも実行可能

ハイブリッド分散型可用性グループ

 

AWS DMS と AWS SCT とは何か?

AWS データベースマイグレーションサービス (AWS DMS)

  • 簡単で安全な and/or レプリケーションによる移行

AWS スキーマコンバージョンツール (AWS SCT)

  • オープンソースエンジンまたは Amazon Aurora や Amazon Redshift といった AWS ネイティブサービスに、データベースおよびデータウェアハウススキーマを変換

いつ AWS DMS と AWS SCT を使うべきか?

移行

  • ビジネス上のクリティカルなアプリケーション
  • Classic から VPC への移行
  • マイナーバージョンのアップグレード

複製

  • クロスリージョンリードレプリカ
  • クラウドでの分析
  • 開発 / テスト環境 と 本番環境の同期

近代化

  • 商用からオープンソースへ
  • 商用から Amazon Aurora へ
  • 商用から Amazon Redshift へ

さいごに

以上、「WIN313 Design, migrate, and optimize SQL Server on AWS」のセッション概要でした。

もし、このブログを読んで内容に興味を持っていただいた方は、いずれ掲載されるであろう、本セッションの動画もぜひご覧になってください。