Amazon Web Services ブログ

Category: Database

2018 年に発表された Amazon RDS 機能についての要約

 Amazon Relational Database Service (Amazon RDS) で、クラウド内でのリレーショナルデータベースのセットアップ、運用、およびスケーリングが簡単になります。費用効果が高く、容量のサイズ変更も可能です。同時に、ハードウェアのプロビジョニング、データベースのセットアップ、パッチの適用、バックアップといった時間を費やす管理作業を自動化します。そのため、お客様はアプリケーションの開発に集中でき、アプリケーションが必要とする高速な性能、高可用性、セキュリティ、さらに互換性の実現に取り組むことができます。 Amazon RDS では、メモリ、パフォーマンス、または I/O に最適化したデータベースインスタンスタイプを複数利用でき、いつも使用しているデータベースエンジン 6 種類から選択できます。それらは、Amazon Aurora、PostgreSQL、MySQL、MariaDB、Oracle Database、および Microsoft SQL Server です。 2016 年、弊社は、各種データベースエンジンにわたり 50 種類の機能を発表しました。2017 年には、およそ 80 種類の機能を追加しました。そして 2018 年、各種エンジンにわたって、およそ 100 種類の機能を発表しました。以下は、これらトピックによって分類したすべての機能の要約です。 バージョンのサポート – 新しいメジャーまたはマイナーバージョン 管理性とセキュリティ – データベースのセキュリティ管理がさらに容易になる RDS 機能 パフォーマンスのスケーラビリティと可用性 – マルチ AZ の強化によりデータベースの可用性を高めながら、データベースのスケールアップとスケールダウンを向上させる RDS 機能 機能での開始 – データベース固有の開始に関連する機能 AWS リージョンでの開始 – さまざまな AWS […]

Read More

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 DocumentDB (MongoDB 互換) を使って大規模なアプリケーションの構築と管理を行う方法

Amazon DocumentDB (MongoDB 互換) は、MongoDB のワークロードをサポートする高速でスケーラブル、かつ可用性に優れた完全マネージド型のドキュメントデータベースサービスです。Amazon DocumentDB 内のデータは JSON に似たドキュメントとして保存され、アプリケーションにおけるデータのモデル化方法に自然に対応します。このアプローチは、アプリケーションと Amazon DocumentDB の間でのデータの保存、クエリ、および処理を素早く直観的なものにします。 ドキュメントの柔軟な半構造の階層的性質は、各ドキュメントがアプリケーションのニーズと共に進化することを可能にします。このドキュメントモデルは、特に各ドキュメントがユニークで時間の経過とともに進化し得るカタログ、ユーザープロファイル、およびコンテンツ管理システムに適しています。MongoDB API を使用することにより、Amazon DocumentDB クラスターのために強力で直観的なクエリを作成することができます。これらのクエリは、単一のドキュメント、複数のドキュメント、またはドキュメントの集計にあるデータにアクセスできます。 Amazon DocumentDB は、AWS が提供する最新の専用データベースです。Amazon DocumentDB のオンデマンド料金により、長期間の契約や前払い料金なしで時間単位の料金を支払うことができます。これによって、ニーズに先立ってデータベースの容量を計画して購入するコストと複雑性から解放されます。料金と対応 AWS リージョンの詳細については、Amazon DocumentDB 料金を参照してください。 このブログ記事では、Amazon DocumentDB について紹介し、そのユニークな側面を明らかにしていきます。また、Amazon DocumentDB のアーキテクチャが、大規模なアプリケーションの構築と管理にどのように役立つかについても説明します。 Amazon DocumentDB の使用の開始 Amazon DocumentDB の使用は簡単に開始することができます (以下の動画をご覧ください)。Amazon DocumentDB クラスターは、AWS マネジメントコンソールもしくは AWS CLI、または AWS CloudFormation を使用することによって、数分でスピンアップできます。クラスターは、必要なくなれば削除することができます。スピンアップしたら、現在 MongoDB で使用しているものと同じアプリケーションコード、ドライバ、およびツールを使って、Amazon DocumentDB での開発を開始できます。 この記事では、以下のスクリーンショットにあるように、3 個の db.r4.large […]

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

MySQL との互換性を持つ Amazon Aurora での MariaDB JDBC ドライバーの使用

このブログ記事は、Amazon Aurora クラスターへの接続に MariaDB Connector/J として知られる MariaDB JDBC ドライバーを使用する方法について説明するものです。この記事では、フェイルオーバーの状況下でマスターとレプリカを迅速かつシームレスに切り替えるために、このコネクターの自動フェイルオーバー機能を使用します。MariaDB Connector/J は MariaDB サイトからダウンロードできます。 MariaDB Connector/J を使用した Aurora MySQL への接続 この記事を書いている時点でのコネクターの最新バージョンは MariaDB Connector/J 2.3.0 です。コネクターは 2 つの方法でインストールできます。 Maven または Gradle などのパッケージマネージャーを利用する .jar ファイルを直接使用する この記事では、.jar ファイルを使用します。完全なインストールガイドは、MariaDB サイトでご覧いただけます。 コネクターをインストールしたら、次のステップは Aurora MySQL クラスターの作成です。まず、AWS マネジメントコンソールにサインインします。RDS を選択してから [データベース] を選択し、次に [データベースの作成] を選択します。次のページで、エンジンのオプションをデフォルトの [Amazon Aurora] のままにしておき、エディションに [MySQL 5.6 との互換性] または [MySQL 5.7 との互換性] […]

Read More

Microsoft Excel を使用した AWS DMS タスクのための AWS CloudFormation テンプレートの作成

このブログ記事では、AWS Database Migration Service (AWS DMS) タスクのための AWS CloudFormation テンプレートの作成を自動化するツールについてお話します。DMS タスクのための CloudFormation テンプレートの作成方法をお探しで、CloudFormation に関する知識をお持ちでない場合は、ぜひこの記事をお読みください。

Read More

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

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

Read More

Amazon Neptune が東京リージョンに対応しました。

みなさん、こんにちは。アマゾン ウェブ サービス、プロダクトマーケティング エバンジェリストの亀田です。 Amazon Neptune が東京リージョンに対応しましたのでご報告します。 Amazon Neptuneはフルマネージド型のグラフデータベースです。グラフデータは例えば以下の図のような、高密度に結合したリレーショナルデータのことを指します。 このようなデータを通常のリレーショナルデータベースに格納するためのテーブル設計はそれほど難しいものではありません。一方一度テーブルに格納された上記のデータをSQLを駆使しSelectを行い上記の図を復元することを考えた場合、そのSQL実行コストは大きいものになります。グラフデータベースである、Neptuneはあらかじめこれらのデータの取り扱いに特化した機能を有しおり、ACID属性が備わっています。 数十億のリレーションシップの保存とミリ秒台のレイテンシーでのグラフのクエリに最適化され、一般的なグラフモデルである Property Graph と W3C の RDF、それぞれのクエリ言語である Apache TinkerPop Gremlin と SPARQL がサポートされています。 また、可用性は99.99%を上回るよう設計されており、リードレプリカ、ポイントインタイムリカバリ、Amazon S3 への継続的なバックアップ、およびアベイラビリティーゾーン間のレプリケーション機能などがフルマネージドサービスとしてあらかじめ備わっており、ユーザーは開発に集中することができます。データ暗号化機能も AWS Key Management Service (KMS)  との連携によりサポートされ高いセキュリティを実現できます。 レコメンデーション機能も備わっており、以下のようなデータから、新しいデータの相関を抽出することが可能です。 さらに、個人の E メールアドレスに関連付けられた複数の人物、同じ IP アドレスを共有しているが別々の住所に住んでいる複数の人物など、リレーションシップパターンを簡単に検出するグラフクエリを構築することにより、不正検出の実装などに役出ることもできます。 この Amazon Neptune はソーシャルの相関図以外にも多くの用途があります。例えば以下のようなネットワークのログなどから以下のようなデータ相関を作成し、異常なイベントの発生時にその影響範囲の特定に役立てることができます。そして、例えば、ホストで悪意のあるファイルを検出した場合、Neptune では、悪意のあるファイルを広めたホスト間の接続を特定し、その接続をたどってそのファイルをダウンロードした元のホストを突き止めることができます。   Amazon Neptuneの利用には Gremlin か SPARQL のクライアントが必要となります。 https://docs.aws.amazon.com/ja_jp/neptune/latest/userguide/intro.html のユーザーガイドを見て設定してみてください。 20180703 AWS Black Belt […]

Read More

Amazon DynamoDB が、7 歳の誕生日!

7 年前の今日、AWS の CTO であった Werner Vogels が Amazon DynamoDB のリリースを発表しました。そこで、2018 年と 2017 年の「最新情報」の記事を振り返って、DynamoDB の最近の成長を示すのもおもしろいだろうと考えました。こうした記事は、トランザクション、オンデマンドキャパシティモード、ポイントインタイムリカバリ、グローバルテーブル、バックアップとリストア、Auto Scaling など、さまざまな機能リリースをすべて説明しています。

Read More

Amazon RDS for Oracle における UTL_FILE 問題の解決

 データベースと各種アプリケーションサーバー間でファイルを転送するための一般的な手法として、Oracle の機能である UTL_FILE があります。UTL_FILEを使うと、クライアントサーバーが POSIX 対応のディレクトリにファイルをコピーし、その後そこからファイルを読み取ることを可能にします。さらに、データベースが PL/SQL ルーチンを使用して、これらの同じファイルに対する読み取りと書き込みを行うことも可能にします。 しかし Amazon RDS 上のOracle Databaseへの移動時には、UTL_FILEを用いたファイル転送において問題が生じます。データベースはサーバ上のファイルの読み取りと書き込みを実行できるのですが、これらのディレクトリは外部システムに公開されていないため、外部システムはそれらにアクセスできません。この問題は、多くの組織にとって Amazon RDS for Oracle を導入する妨げとなっています。 このブログ記事では、この問題を解決するプロセスについて順を追って説明していきます。このプロセスは、Oracle PL/SQL ルーチンを使用して Amazon S3 バケットに Oracle RDS インスタンスを統合することによって問題を解決します。こうすることで、現在 UTL_FILE によって提供されている機能性に似た外部ファイル転送メカニズムが提供されます。 このブログ記事では、Amazon RDS for Oracle インスタンスの変更プロセスのみを取り上げます。追加の参照情報は、以下のドキュメントトピックで見つけることができます。これらは、RDS for Oracle インスタンスを作成して、そのインスタンスにアクセスするためのプロセスを説明しています。 Amazon RDS のセットアップ Amazon RDS の使用開始 Oracle DB インスタンスを作成して Oracle DB インスタンス上のデータベースに接続する また、以下のドキュメントトピックにも追加の参照情報があります。これらには、このプロセスをテストするための S3 バケットの作成プロセスが説明されています。 Amazon Simple […]

Read More