Amazon Web Services ブログ

Category: Database

Amazon Kinesis Data Streams および AWS Lambda を使用して、Amazon RDS for PostgreSQL の変更をストリーミングする

この記事では、Amazon Relational Database Service (Amazon RDS) for PostgreSQL 中央データベースを、Amazon Kinesis Data Streams にその変更をストリーミングすることで、他のシステムと統合する方法について説明します。以前の記事、「Amazon Kinesis を使用したデータベースの変更をストリーミングする」では、変更を Kinesis へストリーミングすることによって、MySQL データベース用の中央 RDS を他のシステムに統合する方法についてお話ししました。この記事では、さらに進んで、AWS Lambda 関数を使用して Amazon RDS for PostgreSQL の変更をキャプチャし、その変更を Kinesis Data Streams にストリーミングする方法を説明します。 次の図は、分散システムにおける一般的なアーキテクチャ設計を表しています。これには、信頼できる唯一の情報源と呼ばれる中央ストレージと、この中央ストレージを使用するいくつかの派生「サテライト」システムが含まれます。 この設計アーキテクチャーを用いて、データの整合性を維持するためにこのシステムのトランザクション機能を活用しながら、リレーショナルデータベースを中央データストアとして使用することができます。このコンテクストにおいての派生システムとは、全文検索システムであり、この信頼できる唯一の情報源の変更を観察し、それらの変更を変換かつフィルタリングし、最終的にその内部インデックスを更新するものです。もう 1 つの例は、OLAP クエリにより適したカラムナストレージです。一般に、中央リレーショナルシステムの個々の行が変更された時にアクションを実行する必要があるシステムはどれも、派生データストアにするのに適しているとい言えます。 この種のアーキテクチャの単純な実装では、変更された行を検索するために定期的にクエリを発行する派生システムがあります。これは基本的に SELECT ベースのクエリ (バッチ処理システムとも呼ばれます) で中央データベースをポーリングします。一方で、このアーキテクチャにより適した実装は、非同期の更新ストリームを使用するアーキテクチャです。 データベースには通常、行のすべての変更が格納されるトランザクションログがあります。ですので、この変更のストリームが外部のオブザーバシステムに公開されている場合、このシステムはこれらのストリームに接続し、行の変更を処理およびフィルタリングできる可能性があります。 この記事では、PostgreSQL を中央データベースとして、また Kinesis Data Stream をメッセージバスとして使用して、この基本的な実装を紹介します。 通常、PostgreSQL Write-Ahead Logging (WAL) ファイルは、マスター上のすべての変更を読み込んだ後、ローカルに適用するリードレプリカに公開されます。リードレプリカからデータを読み取る代わりに、wal2json 出力プラグインを用いた論理デコードを使用して、WAL の内容を直接デコードします。プラグインはこの GitHub […]

Read More

RDS for MySQL データベースを Amazon Aurora へ移行するためのベストプラクティス

MySQL は世界で最も普及しているオープンソースデータベースです。それにも関わらず、多くの利用者が一様にバックアップ、高可用性の確保にかかる膨大な手間に苦心していたり、また MySQL のスケーリングが複雑である、時間がかかる、あるいはその両方であると感じています。 お客様がそうした既存の MySQL 環境から Amazon RDS for MySQL へ移行する最大の理由の 1 つはそこにあります。Amazon RDS はポイントインタイムリカバリや高可用性などのオプションを複雑な設定など一切なしですぐに使用できる機能を提供します。RDS for MySQL はさらに、ソースあたり 5 つのリードレプリカに対応しています。このように、バイナリログ (binlog) レプリケーションを手動で設定したり、保守したりする必要なく、簡単にワークロードをスケールできます。 MySQL にハイエンドコマーシャルデータベースのパフォーマンスおよび可用性との互換性を期待するのであれば、MySQL データベースを Amazon Aurora に移行することでそれを実現できます。MySQL との互換性を持つ Amazon Aurora を使用することで、fast database clones および autoscaling replicas などの機能を活用できます。また、AWS Lambda および Amazon CloudWatch Logs といった他の AWS サービスとのネイティブ統合も可能になります。これらの機能に加えて、Amazon Aurora はまた、3 つのアベイラビリティーゾーンをまたぐデータのレプリケーションにより、優れた耐久性を実現します。また、最大で 15 個の Aurora レプリカにスケール可能で、すべてが通常では 20 […]

Read More

[AWS Black Belt Online Seminar] Amazon Neptune 資料及び QA 公開

先日 (2018/7/3) 開催しました AWS Black Belt Online Seminar 「Amazon Neptune」 の資料を公開しました。当日、参加者の皆様から頂いた QA の一部についても共有しております。 20180703 AWS Black Belt Online Seminar Amazon Neptune from Amazon Web Services Japan PDF Q. DynamoDBを利用するのはLambdaなどのMicroserviceとの親和性が高いためです。ネプチューンとLambdaの関係はどうですか ? A. HTTP RESTが使えるのでRDBMSのDB接続と比較して親和性は高いです。 Q. 暗号化を有効にした際は、性能が落ちるのでしょうか。落ちる場合は、どの程度落ちるかの指標等はありますか A. 格納データの暗号化について、特筆すべきオーバーヘッドはありません。 Q. オンデマンドインスタンス料金はRI適用は可能でしょうか。 A. いいえ、現在RIは使用できません。 以上です。 直近で以下の無料オンラインセミナーを予定しています。各オンラインセミナーの詳細およびお申し込み先は下記URLからご確認いただけます。皆様のご参加をお待ちしております! AWS Black Belt Online Seminar AWSで実現するウェブサイトホスティング 2018 年 7 月 10 日 | 12:00 […]

Read More

Amazon RDS の手動スナップショットを管理するための通知メカニズムを構築する

ビジネスの規模に関係なく、ビジネスを遂行する上でデータが不可欠な要素であることは隠すまでもないことです。多くの企業は、リレーショナルデータベースを使用してビジネスデータをホストしています。その結果、バックアップとリカバリはビジネスを継続的に実行するための重要な側面になっています。Amazon RDS の顧客は、複数の戦略を活用して、自動スナップショットと手動スナップショットの両方でデータをバックアップします。データベースを削除すると自動スナップショットも削除されるため、Amazon RDS の手動スナップショットを使用して寿命を延ばすことができます。また、アカウント間およびリージョン間での共有機能を備えた災害対策用の手動スナップショットを使用することもできます。Amazon RDS は、単一のスナップショットからデータベース全体をリカバリできるため、さまざまなバックアップニーズに対応します。 この記事では、RDS インスタンスと Aurora クラスターの両方の Amazon RDS 手動スナップショットを管理するためのサーバーレスの通知メカニズムを構築する方法を示します。実行する主なアクティビティは次のとおりです。 RDS インスタンスと Aurora クラスターのリストを指定されて、定義されたバックアップ間隔で手動スナップショットを作成する バックアップの保存期間に基づいて、古い手動スナップショットを削除する このアクティビティの最後に、新しく作成された手動スナップショットと古い削除されたスナップショット (存在する場合) のリストが登録しているユーザーに通知される。 詳細については、README.md ファイルを参照し、GitHub リポジトリからソリューションを起動してください。 サーバーレスソリューションのアーキテクチャ このサーバーレスソリューションは、AWS CloudFormation スクリプトに組み込まれています。このスクリプトは、ユーザー指定のスナップショットバックアップ間隔、バックアップ保持期間、RDS インスタンス名のリスト、通知用の E メールアドレスなどのさまざまな入力を受け取ります。Amazon CloudWatch Events ルールは、スケジュールに従って AWS Step Functions ステートマシンを起動します。このステートマシンは手動スナップショットを作成し、古いスナップショットを削除し、最終的に Amazon SNS に通知を送信します。SNS は、ユーザー提供の E メールアドレスに E メールを送信します。 Amazon RDS 手動スナップショット (RDS インスタンスと Aurora クラスター) を管理するソリューションは、次の […]

Read More

[AWS Black Belt Online Seminar] データレイク入門: AWSで様々な規模のデータレイクを分析する効率的な方法 資料及び QA 公開

こんにちは、マーケティングの鬼形です。 先日 (2018/6/19) 開催しました AWS Black Belt Online Seminar「データレイク入門: AWSで様々な規模のデータレイクを分析する効率的な方法」の資料を公開しました。当日、参加者の皆様から頂いた QA の一部についても共有しております。 20180619 AWS Black Belt Online Seminar データレイク入門: AWSで様々な規模のデータレイクを分析する効率的な方法 from Amazon Web Services Japan PDF Q. RDSからGlueでData Catalogを作成する際、負荷などかかるのでしょうか?分析用にユーザ操作から切り離したほうが良いのか?気にしなくて良いのかを知りたいです。 A. RDS をクロールする際、スキーマ取得のため Connection を使用します。瞬間的な処理にはなりますが、Connection が使用される点に留意いただき、検証の実施と実行タイミングの検討をお願いいたします。 Q. ベストプラクティス 2/5, 3/5 で説明されていた Parquetを使用した場合のメトリクスはRedshift Spectrum ではなく、Athenaを使用している場合に同様の情報を知ることは可能でしょうか。 A. Athena では同様の情報を確認いただくことができません。 以上です。 今後の AWS Black Belt Online Seminar のスケジュール 直近で以下のオンラインセミナーを予定しています。各オンラインセミナーの詳細およびお申し込み先は下記URLからご確認いただけます。皆様のご参加をお待ちしております! […]

Read More

カリフォルニア州立工科大学ソフトウェア工学科のキャップストーンで MySQL のキャプチャーリプレイを AWS に構築

カリフォルニア州立工科大学は、「Learn by Doing」(実践で学ぶ) という同大学の理念にのっとり、ソフトウェア工学科のキャップストーンを開講しました。この科目で学生は 1 年を通じて協働産業プロジェクトとはどういうものかを体験します。今回で David Janzen 博士がこの科目を教えるのは 10 年目になります。博士は、この長さの科目に最適なプロジェクトを見付け、適切な難易度を与えることに長けています。 今年のプロジェクトは「AWS MyCRT」でした。これは「MySQL Capture and Replay Tool」のことです。 Amazon RDS のチームがサポートしました。30 人の学生が能力に基づいてチームに分かれた結果、5 つの多才なチームができ、それぞれが独自の MyCRT を実装しました。 チーム会議、顧客との会議、Amazon RDS チームの Brian Welcker、Rosa Thomas、Sachin Honnudike との要件導出がプロジェクトを方向付けました。これらの会議から、チーム Titans が以下のようなプロジェクトの背景を導き出しました。 アマゾン ウェブ サービス (AWS) では、Amazon のマネージドデータベースサービスである Relational Database Service (RDS) が利用できます。さまざまなサーバーハードウェアから、顧客の要求に最適なものを選ぶ必要があります。しかし、性能要求に合うハードウェアの選択は難しい判断です。また、性能が不足していたり、不必要に性能が高かったりするのも大変不経済です。Amazon の顧客は、異なるサーバー設定の間で性能を比較し、要求に対して適切なサーバーリソースかどうかを確認したいと言っていました。 この問題に対する MyCRT のソリューションは、RDS MySQL データベースでのワークロードとメトリクスをキャプチャーすることです。これにより、キャプチャーしたワークロードを異なるデータベース設定でリプレイし、メトリクスを収集することができます。また、収集した結果を解析することにより、ビジネス要求に対して理想的な MySQL と RDS の設定を選ぶこともできます。どのチームも、AWS […]

Read More

Amazon RDS Performance Insights が一般利用可能に

本日、Performance Insights が一般利用可能になったことを発表します。Performance Insights を使用すると、パフォーマンス問題が発生したときのボトルネックを簡単に特定し、対処方法を見つけることができます。

一般利用可能に合わせて、Performance Insights は次の機能を導入します。

* 7日間のパフォーマンスデータ履歴
* パフォーマンスデータの長期保持オプション
* SDKとAPIの一般公開

Read More

マネージドスキーマを使用して Amazon Cloud Directory 上でアプリケーションを迅速に開発する

この度、Amazon Cloud Directory がマネージドスキーマを使用して、アプリケーションを迅速に開発できるようになりました。マネージドスキーマを使うと、ディレクトリを作成して、それからオブジェクトの作成と検索をさらにすばやく開始できます。今回の立ち上げでは、QuickStartSchema という Cloud Directory マネージドスキーマが利用可能となっています。豊富な種類の階層データモデルを構築し、Amazon Cloud Directory の Typed Links などの構造を使用して、オブジェクト間の関係性を確立することができます。ひいては、階層をトラバースすることで、データ内の任意の情報をクエリすることができます。 Amazon Cloud Directoryでは、動的ファセットという新しいスタイルのファセットも導入されています。これにより、ファセット内の属性を定義しなくても、アプリケーションを迅速にプロトタイプし、開始できるようになりました。アプリケーションのさらなる開発に際して、新しい属性を追加したり、属性に格納されている値をサポートされている他のデータ型へと後日変更したりすることが可能です。 Amazon Cloud Directory では、バリアントという新しいデータ型も導入されています。バリアントデータ型として定義された属性の値を格納するには、Amazon Cloud Directory でサポートされているプリミティブデータ型のいずれかの値 (例えば、文字列またはバイナリ) を利用します。その後、属性の値を別のデータ型に変更することもできます。データ検証を強制されることはありません。 Amazon Cloud Directory は、QuickStartSchema の 1 つのファセットを動的スタイルとして定義しました。これにより、アプリケーションに必要な任意の数の属性を作成することが可能となります。このファセットを使用して任意の属性を作成すると、バリアントデータ型として作成されます。 のブログ記事では、学校のスポーツチームの生徒を追跡するアプリケーションを作成する方法を説明します。Amazon Cloud Directory と新しい QuickStartSchema を使用します。生徒を 1 次元、そしてスポーツチームを 2 次元で作成します。生徒とチームの情報をディレクトリに追加し、データをクエリします。 このブログ記事の例では、Java コードを使用しています。AWS SDK に精通しており、Java ベースのコードを使って Amazon Cloud Directory のコード例を構築できるものとしましょう。この記事で示した概念を、Python や Ruby など他のプログラミング言語に適用してもらって結構です。 Amazon Cloud Directory マネージドスキーマを使って、すばやい開発を行う スポーツチームのディレクトリアプリケーションを大急ぎで開発し、すぐに利用したいとします。階層をトラバースする階層データとクエリが必要です。生徒名やスポーツチーム名など、保存しているデータ型には所定の値が決まっていないため、Cloud Directory が提供するデータ型や制限を確認する作業は必要ありません静的ファセット。つまり私のニーズは、Amazon Cloud […]

Read More

新機能: Amazon RDS for Oracle Database がvCPUの削減や最適化に対応

すべてのAWSサービスと同様に、Amazon RDS のロードマップは、主にお客様からのフィードバックや製品改善リクエストに基づいています。Oracle RDS for Oracle Database でデータベースワークロードを実行しているエンタープライズの複数のお客様から、私たちはフィードバックを受けました。そのフィードバックとは、物理コアに対するRAMの比率を Amazon RDS for Oracle より大幅に高くすることで、Oracleのワークロードを実行しているエンタープライズのお客様は、ソフトウェアライセンスの価値を最大化しているというものでした。

この記事の目的は、Amazon RDS 上の Oracle Database のための2つの新機能を使用することで、仮想CPU (vCPU) の数を減らし、ライセンスコストを最適化する方法を説明することです。

Read More

Redis セキュリティ アドバイザリ

日本時間 2018年6月13日 03:00 インメモリデータストアであるRedisのセキュリティアドバイザリが公開されました。Amazon ElastiCache によって管理される Redis互換のノードは、単一のエンジンが稼働する、お客様の VPC で独立したお客様専用のノードです。したがって、VPC の設定で明示的に許可されていない限りは、他のお客様がそれらのノードに対しアクセスすることはできません。 Amazon ElastiCache においても、アップデートを含む新しい Redis バージョンがリリースされました。2018年6月10日以降に起動された ElastiCache クラスターには、影響はありません。既存の ElastiCache クラスターをお持ちのお客様は、メンテナンスウィンドウにて新しいバージョンへのアップデートが予定され、順次実施されます。このアップデ―トは今回の問題に完全に対処できるよう設計されており、ElastiCache はデフォルトで意図しない外部からのアクセスを防ぎます。このアップデートに関して、お客様によるアクションは必要ありません。 本件に関してセキュリティの懸念がある場合は、http://antirez.com/news/119 をご覧ください。また、Amazon ElastiCache クラスターへのネットワークアクセスをセキュアに保つ方法は、”Amazon VPCs and ElastiCache Security”[1] をご覧ください。 [1]: https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/VPCs.html   上記はAWS Japan Security Awareness Teamによって翻訳されました。原文は以下です: https://aws.amazon.com/jp/security/security-bulletins/AWS-2018-016/

Read More