Amazon Web Services ブログ

Category: RDS for MySQL

Amazon RDS for MySQL のパラメーターを設定するためのベストプラクティス。パート 3: セキュリティ、操作管理性、および接続タイムアウトに関連するパラメーター

このシリーズの前回のブログ投稿では、Amazon RDS for MySQL でレプリケーションを最適化するために使用する MySQL パラメータと、それらに関連するベストプラクティスについて説明しました。本日の記事では、RDS MySQL 環境でさまざまなセキュリティ機能を実装するために最も重要で一般的に使用されている MySQL パラメータについて説明します。また、RDS DB インスタンスの操作管理と問題のトラブルシューティングに役立つパラメータについても説明します。さらに、照合順序と文字セットに関連するいくつかの便利なパラメータについても説明します。 セキュリティに関連するパラメータ 今から、セキュリティ関連の各パラメータを設定するベストプラクティスをご紹介します。 init_connect このパラメータは、接続する各クライアントに対して実行するサーバーの文字列を定義します。このパラメータにはデフォルト値はありません。文字列は、セミコロンで区切られた 1 つ以上の SQL 文で構成されています。 たとえば、このパラメータを使用して、どのデータベースユーザーがデータベースに正常に接続したかの簡単な監査を作成できます。そのためには、まず監査テーブルとトリガーを作成します。その後、init_connect 値をトリガー名に設定します。設定したら、クライアントがパラメータを接続するたびに、接続の詳細が監査テーブルに書き込まれます。 次の例のように、このパラメータを使用して特定のユーザーアカウントの自動コミットを無効にすることもできます。 init_connect = ‘set autocommit=case current_user() when ‘test@localhost’ then 0 else 1 end’. old_passwords このパラメータは、PASSWORD 関数で使用するパスワードハッシュ方式を制御します。また、IDENTIFIED BY 句を使用してパスワードを指定する CREATE USER ステートメントおよび GRANT ステートメントによって実行されるパスワードハッシュにも影響します。 このパラメータを有効にしないことを強くお勧めします。有効にした場合、PASSWORD 関数は安全でないパスワードハッシュを使用してしまうからです。このパラメータのデフォルト値は 0 で、これは MySQL バージョン 4.1 のネイティブハッシュを使用します。 default_password_lifetime […]

Read More

Amazon RDS for MySQL のパラメータ設定 パート 2: レプリケーション関連のパラメータ

このシリーズの前回のブログ投稿では、Amazon RDS for MySQL のパフォーマンスを調整および最適化するために使用する MySQL パラメータと、それらに関連するベストプラクティスについて説明しました。今回の投稿では、RDS MySQL 環境でのレプリケーション構成とレプリケーションの最適化に使用される最も重要な MySQL パラメータについて説明します。 シングルスレッドおよびマルチスレッドの両方のレプリケーションに関連するパラメータ 以下に、シングルスレッドのレプリケーションとマルチスレッドのレプリケーションの両方に使用できるパラメータと、それぞれを設定するためのベストプラクティスの提案を示します。 sync_binlog sync_binlog オプションは、MySQL がバイナリログをディスクにフラッシュする方法をコントロールします。 sync_binlog のデフォルト値は 1 です。マスターサーバで、sync_binlog が 0 に設定されているとディスクと同期しません。この場合、他のファイルと同様に、バイナリログの内容をフラッシュするタイミングはオペレーティングシステムに依存します。したがって、この設定は、MySQL がバイナリログ (binlog) をディスクにフラッシュしないようにすることでレプリケーションのパフォーマンスを向上させます。この方法で、最高のパフォーマンスが得られます。 ただし、MySQL がクラッシュした場合、いくつかのトランザクションが失われる可能性があります。通常、確実にレプリカをマスターと同期させるために、レプリカを再構築する必要があります。バックアップを無効にし、「チェーン接続された」リードレプリカがないRDS リードレプリカでは、binlog を同期する必要がないため、sync_binlog は適用されません。バイナリログが生成されないように、レプリカのバックアップ保存期間を 0 に設定することをお勧めします。 ただし、データの損失を最小限に抑えるには、レプリカソースで sync_binlog パラメータを 1 に設定する必要があります。設定する最善の値は、パフォーマンスと耐久性のどちらを優先するかによって異なります。 binlog_row_image binlog_format パラメータを使用すると、バイナリログでサポートされている 2 つのイベントフォーマットを指定することができます。STATEMENT と ROW です。行ベースのフォーマットを使用すると、非決定性のクエリをログに記録することができるので、レプリカで一時テーブルは作成されません。一方、ステートメントベースのフォーマットは、行ベースのフォーマットよりもコンパクトです。 binlog_row_imag パラメータを使用して、行ベースのイベントについてバイナリログに記録される情報量をコントロールすることができます。行の状態は、バイナリログの「イメージ」で表されます。どの行ベースのイベントでも、変更前イメージと変更後イメージの 2 種類のイメージがあります。変更が行われる前の行は、変更前イメージによって表されます。変更が行われた後の行は、変更後イメージによって表されます。すべてのイベントに、変更の前後のイメージがあるわけではありません。 次の表は、さまざまな行ベースのイベントとそれらの使用可能なイメージをまとめたものです。INSERT ステートメントは Write_rows イベントを作成します。 イベントのタイプ […]

Read More

Amazon RDS for MySQL のパラメータ設定 パート 1: パフォーマンス関連のパラメータ

この記事では、RDS for MySQL インスタンスからベストパフォーマンスを引き出すために留意すべき最重要のパラメータを扱います。これらを調整して、ワークロードに適合させ、ベストプラクティスにも合致させることができます。

Read More

2018 年に最もよく読まれた AWS データベースブログ

この記事では、私たちが 2018 年に掲載した AWS データブログ記事で、最もよく読まれた10本を紹介しています。このリストをガイドとして使って、まだ読んでいないデータベースブログに目を通す、または特に有益だと思った記事を読み返すことができます。

Read More

RDS データベースに汎用 IOPS またはプロビジョンド IOPS のどちらを使用するかを決定するための CloudWatch メトリクスの使用方法

 このブログ記事では、最高のパフォーマンスのミッションクリティカルなデータベースワークロードに対して、IO1 としても知られるプロビジョンド IOPS からメリットを得ることができる機会を把握するために Amazon CloudWatch メトリクスを使用する方法について説明します。まず、バーストを生じない一貫性のある高書き込みワークロードをシミュレートするテストケースをセットアップすることから始めます。今回は、価格とパフォーマンスのバランスを保つ、GP2 ボリュームとしても知られる汎用ストレージを使ったデータベースと、IO1 ボリュームを使ったデータベースのパフォーマンスを比較します。次に、対応する CloudWatch メトリクスが明らかにする事柄と、ワークロードのパフォーマンス結果をご覧いただきます。 数ヵ月前、GP2 ボリュームでのバーストバランスとベースラインパフォーマンスを説明する Understanding burst vs. baseline performance with Amazon RDS and GP2 という素晴らしいブログ記事が AWS データベースブログに掲載されました。GP2 ボリュームはプロビジョニングが簡単で使いやすく、低価格です。これは、GP2 ボリュームが必要時にパフォーマンスをバーストさせ、散発的なワークロード、または待機時間が発生する可能性を許容できるアプリケーションを上手く処理できることが理由です。開発、機能テスト、およびサンドボックスなどの環境では、偶発的な負担がかかる場合でさえも GP2 の使用には何ら問題がありません。絶えず負担がかかるデータベースワークロードについては、プロビジョンド IOPS ボリュームがプロビジョニングするレベルでの持続的なパフォーマンスとスループットを提供します。 前提条件 始める前に、先ほど紹介した GP2 バーストパフォーマンスについてのブログ記事、Understanding burst vs. baseline performance with Amazon RDS and GP2 を十分に検討してください。 この記事にあるコードを一通り実行したい場合は、アカウント内に同一の Amazon RDS for MySQL データベースを 2 つ作成してください。ひとつのインスタンスには […]

Read More

専用の AWS Glue VPC を使用して複数の VPC 間で ETL ジョブに接続し、実行する

多くの組織では、Amazon VPC サービスに基づく複数の VPC を含む設定を使用し、セキュリティ、監査、コンプライアンス目的で個別の VPC で隔離されたデータベースが使用されます。このブログ記事では AWS Glue を使用して、複数の VPC にあるデータベースで、抽出、変換、ロード (ETL)、クローラー操作を実行する方法を示します。 ここで紹介するソリューションは、専用の AWS Glue VPC とサブネットを使用して、異なる VPC に配置されたデータベースに対して次の操作を実行します。 シナリオ 1: Amazon RDS for MySQL データベースからデータを取り込み、これを AWS Glue で変換し、結果を Amazon Redshift データウェアハウスに出力します。 シナリオ 2: Amazon RDS for MySQL データベースからデータを取り込み、これを AWS Glue で変換し、結果を Amazon RDS for PostgreSQL データベースに出力します。 このブログ記事では、1 つの VPC の 1 つのソースから消費し、別の VPC […]

Read More

Performance Insights で Amazon RDS for MySQL をチューニングする

Amazon RDS Performance Insights は、Amazon RDS への直感的なチューニングインターフェイスを提供し、RDS データベースのパフォーマンスの問題を発見して調査するのに役立ちます。Performance Insights のルックアンドフィールは、RDS for MySQL、RDS for PostgreSQL、Amazon Aurora など、すべてのデータベースエンジンタイプで共通です。けれども、エンジンはどれも実装の点で少し異なります。 Performance Insights は、エンジンに関係なく常にデータベースの負荷と上位の SQL を表示できます。エンジンはどれも、拡張データの保持や Amazon CloudWatch との統合など、Performance Insights の機能をサポートしています。ただし、データベースエンジンの種類によっては、 Performance Insights はエンジンのネイティブパフォーマンス計測に基づいてわずかに異なる情報を表示します。 たとえば、PostgreSQL との互換性を持つ Aurora では、データベースの負荷が PostgreSQL 10 の待機イベントによって細分化されています。MySQL 互換性 と RDS MySQL を備えた Aurora では、 MySQL Performance Schema 待機イベントによって細分化された負荷が表示されます。Performance Insights は、各エンジンタイプのネイティブ待機イベント計測を待機イベント用に消費することにより、各エンジンのネイティブパフォーマンス計測に忠実でありながら、各エンジンタイプ間で同様のルックアンドフィールを維持することができます。 2018 年 8 月 28 日、バージョン […]

Read More

EMR – Sqoop を使用して RDBMS またはオンプレミスデータを EMR Hive、S3、および Amazon Redshift に移行する

 このブログ記事では、AWS のお客様が Apache Sqoop ツールの使用によって利益を得る方法について説明します。このツールは、データをリレーショナルデータベース管理システム (RDBMS) から AWS の EMR Hadoop Distributed File System (HDFS) にインポートし、データを Hadoop で変換して、それをデータウェアハウス (例: Hive または Amazon Redshift) にエクスポートするために設計されています。 Sqoop ツールのデモを行うために、この記事では以下の 3 つのシナリオにおいて、Amazon RDS for MySQL をソースとして使用し、データをインポートします。 シナリオ 1 — AWS EMR (HDFS -> Hive および HDFS) シナリオ 2 — Amazon S3 (EMFRS)、次に EMR-Hive シナリオ 3 — S3 (EMFRS)、次に […]

Read More

ProxySQL と Percona Monitoring and Management で、Amazon RDS for MySQL のデプロイを強化する

本日は、Percona 社の Michael Benshoof 氏によるゲストブログ投稿です。Benshoof 氏によると、「Percona 社は、3 千人以上の顧客をグローバルに持ち、バイアスのない最善の企業規模サポート、コンサルティング、管理サービスおよびトレーニングを提供し、リスクと運用コストを減らす対策を提供しています。さらにオンプレミスとオープンソース環境でのオープンソースデータベースのためのソフトウェアを使って、ロックインを排除し、機敏性を高め、ビジネスの成長を可能にしています。」 」 クラウドにアプリケーションをデプロイする予定で、データ層には Amazon RDS for MySQL を利用しようと考えている? それはいい選択ですね! それでは、アーキテクチャを最大限に活用するためのベストプラクティスをいくつか見てみましょう。 Amazon RDS for MySQL とは RDS for MySQL は、アマゾン ウェブ サービス (AWS) スタック内でサービスを行う管理データベース (DBaaS) です。RDS for MySQL では、次のような細かな操作作業の多くを処理します。 バックアップ ポイントインタイムリカバリ マイナーバージョンの自動アップグレード 新しいレプリカの追加 自動フェイルオーバー (Multi-AZ を実行している場合) このように、RDS for MySQL は、クラウド上で動作するデータ層にとって最適なオプションです。よく見られるフェールオーバーは標準の Multi-AZ デプロイで対応可能はもちろんのこと、RDSの回復力と使いやすさの向上も目指すことが可能です。これらの方法により、ワークロードの増加に合わせて、よりシームレスにデプロイおよびインフラストラクチャを拡張できます。 標準的なベストプラクティス 任意のアーキテクチャ (クラウドまたは物理データセンター内にある) を一から設計する場合、不具合への対応を準備しておくことは大変重要です。障害に対する準備が整ったインフラストラクチャの設定は、耐障害性のある環境を設計する上でかなめとなります。そのため、本番でのデプロイ (または高可用性が必要なデプロイ) の場合は、少なくとも以下を実行する必要があります。 プライマリインスタンスに、Multi-AZ を指定する […]

Read More

Amazon RDS for SQL Server でデータベースメールをパワーアップ – アンダーアーマーが Amazon RDS for SQL Server でデータベースメールを運用する方法

データベースメールは Microsoft SQL Server で多用される機能の 1 つです。データベースメールは、SMTP サーバーを使用することにより、SQL Server からユーザーにメッセージを送信できるようにします。ここでご紹介するソリューションは、ご使用の SQL Server ワークロードが Amazon RDS 上にある場合に、データベースメールを使用するのに役立ちます。 データベースメールの使用例: テキストメッセージを送信する テキストまたはファイル添付でクエリの結果またはレポートを送信する エラーや通知のアラートを送信する ジョブが成功または失敗したときに、SQL エージェントジョブのステータスメッセージを送信する AWS のカスタマーであるアンダーアーマー社では、SQL Server のワークロードを Amazon RDS for SQL Server に移行する手立てを模索していましたが、RDS でデータベースメールがサポートされていないことがネックとなっていました。SQL のワークロードを Amazon RDS へ移行しようとしているカスタマーにとって、この問題は致命的です。 私はアンダーアーマー社のデータアーキテクト、Leonard Humphries とともにこの問題に対処することになり、2 人で次のようなソリューションを思いつきました。私たちは集中データベースメールハブに SQL Amazon EC2 インスタンスをプロモートしたのです。こうすることで、アンダーアーマー社のデータベースメール問題を解決できました。この記事では私たちのソリューションについて解説します。 使用した AWS のサービス Amazon RDS for SQL Server 既存の SMTP […]

Read More