Amazon Web Services ブログ

Category: Database

Amazon Aurora を使用してエンドユーザーの待ち時間を 3 倍に改善する方法

  AWS で誕生 2011年の創業以来、我々の旅に加わっている InfoScout は AWS で誕生しました。友人や家族からアップロードされたレシートを収集する 1 つの Amazon EC2 インスタンス とともにすべてが始まりました。それから7年後、モバイルアプリケーション、データパイプライン、マシンラーニングモデル”→”機械学習モデル、SaaS 分析プラットフォームをサポートするため、現在では 150 以上の AWS インスタンスを管理しています。この記事では、増加するインフラストラクチャとデータベース移行での課題を詳細に分析しています。 我々のビジネスはシンプルです。日常の消費者がショッピングレシートの写真を撮影してクラウドにアップロードが可能なモバイルアプリケーションのポートフォリオを持っています。我々はこのデータを分析し、ブランド、小売業者、代理店、消費者パッケージ商品 (CPG) 企業の買い物客に深い識見を提供します。大規模なデータ収集に対するこの消費者中心のアプローチは、ブランドが最終的に非常に多くの問いの背後にある「なぜ」に答えることを可能にします。「なぜ、私のカテゴリーで売上高が 5% 減少したのでしょうか ? 」「このカテゴリーのどのような消費者シフトが私のブランドに売上に貢献しているのでしょうか ? 」「消費者のどのセグメントがオンラインに移行しているのでしょうか ? 」 米国では 500 回の購入で 1 回のキャプチャを行い、1 日に 300,000 枚のレシート画像をストリームします。 AWS でインフラストラクチャとアプリケーション全体を強化するために、Amazon EC2 、Amazon RDS 、Amazon S3 、Amazon VPC 、および Route 53 を大量に使用しています。2011 年にはカリフォルニア北部の single VPC 1 […]

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

SGK が RDBMS から Amazon DynamoDB に移行することにより、高度に動的なワークロードのデータ構造を簡素化する方法

今日、多くのデータベースソリューションが利用可能となっており、ユーザーの使用事例に適したソリューションを選択することは難しいことがあります。最近では、NoSQL データベースがリアルタイム Web アプリケーションに幅広く採用されています。Amazon DynamoDB は、従来のリレーショナルデータベースマネージメントシステム (RDBMS) に比べて大幅な柔軟性とパフォーマンスの利点をもたらすように最適化された NoSQL データベースの一例です。従来の RDBMS は、固定されたスキーマベースのテーブル設計によって制限される可能性があります。 このブログ記事では、SGK のダイナミックなクライアント設定とルールについて、どのようにして SGK が最適なデザインパターンを作り出したかを SGK Solutions 社のアーキテクトである Murugan Poornachandran 氏が説明します。この設計では DynamoDB を使用して、SGK の進化するマイクロサービスアーキテクチャと多様なステークホルダーに適応します。この新しいデザインは、SGK のレガシー RDBMS ソリューションよりも大幅に改善されました。Murugan 氏はまた、データ管理システムの頻繁な変更を管理または自動化するために、正規化されたリレーショナルデータモデルを使用して、SGK が DynamoDB のスキーマレステーブル機能をどのように使用されているのかについても説明します。このアプローチは、データ処理に要する時間を大幅に短縮します。 背景情報 SGK の Global Content Creation Studio ネットワークは、写真、ビデオ、およびコピーライティングを通じてブランドと製品を消費者に結びつけるコンテンツとソリューションをつくり出します。マルチテナントアプリケーションとしての大規模エンタープライズからマイクロサービスアーキテクチャへ移行する場合、我々が直面した SGK の1つの重要な課題は、クライアントやそれの可変構成とルールを管理することでした。 たとえば、我々はすべてのマイクロサービスでクライアントと構成データを共有する必要がありました。クライアントデータには、カテゴリ、部門、および場所が含まれており、また構成パラメータには、アクセス権限や役割などのセキュリティ関連の詳細が含まれます。さらに、クライアントの構成とルールは、さまざまなユーザー向けにカスタマイズされ、複数のマイクロサービスで共有される必要がありました。 定期的に新しいマイクロサービスをリリースしました。そのため我々にとって、変化するクライアントおよび構成データを関連データベースに保持することがさらに困難になりました。重要な課題は、新しいマイクロサービスごとにデータベースの変更が必要で、またアプリケーション層でのオブジェクトリレーショナルマッピングの更新に時間を要することでした。新しいマイクロサービスの登場のたびにデータ管理システムの複雑さが増したため、新しい REST ベースの管理サービスである DRDS (Dynamic Reference Data Service) を作成することにしました。DRDS は、ダイナミッククライアントの構成とルールを管理するために、プライマリデータストアとして DynamoDB を使用します。DRDS は完全なサーバーレスで、Amazon […]

Read More

Amazon CloudWatch を使用して Performance Insights メトリックにアラームを設定する

Amazon RDS Performance Insightsは、重要ななパフォーマンスメトリックを Performance Insights から Amazon CloudWatchに送信できる機能を、先ごろリリースしました。この機能を使うと、これらのメトリックに関するアラートを設定できます。 Performance Insights が有効になっている場合、CloudWatch に次の 3 つのメトリックが自動的に送信されます。 DBLoad DBLoadCPU DBLoadNonCPU これら 3 つのメトリックを、次に解説します。 DBLoad 最初のメトリック、DBLoadは、Performance Insights の中核となるものです。DBLoad は、同時にアクティブとなるデータベース接続数の尺度となります。この記事の中でセッションと呼んでいるアクティブな接続とは、データベースが結果を返さなかったデータベースにクエリを送信する接続のことです。クエリが送信される間、およびクエリ結果が戻される前、クエリはいくつかある状態のいずれかの状態となります。つまり、CPU 上で実行されているか、CPU を待っているか、ロックや I/O などのリソースが終了するのを待っているか、他のデータベースリソースへのアクセスを待っているかのいずれかの状態です。 クエリの処理中、通常、クエリはこれらの状態の間で切り替わります。ただし、クエリは待機するのではなく、クエリを実際に処理している CPU 上で動く時間がすべてクエリに費やされるのが理想です。同時にアクティブとなっている接続数とその接続状態を確認することで、データベースの負荷をすばやく強力に把握できます。DBLoadは、アクティブな同時データベース接続の平均数である、平均アクティブセッション (AAS) で測定します。デフォルトでは、Performance Insights ダッシュボードにある DBLoad グラフの各ポイントが、1 分以上経過した平均時間です。 DBLoadは 2 つの種類に分かれます。 DBLoadCPU は、接続が CPU 上で実行されていた時間、または CPU 上で実行準備が整っている時間を表します。 DBLoadNonCPU は、接続が I/O、ロック、データベースバッファーなどのデータベースリソースを待機していた時間を表します。 以下では、DBLoadCPU を中心にお話しします。 DBLoadCPU アラートを設定する […]

Read More

AWS での SQL Server のパフォーマンスベンチマーク

非常に多くのインスタンスタイプから選択できるため、アーキテクトや顧客にとって、SQL Server ワークロードを AWS に移行する際に最適なものを選択することが難しい場合があります。それぞれのインスタンスタイプとストレージのオプションについて詳細な仕様を利用できますが、こうした情報をすべて現実のシナリオにマッピングするのは難しいことがあります。 こうした課題に対処するために、SQL Server のベンチマークに関するホワイトペーパーを紹介しています。インスタンスタイプをベンチマークして、その実行方法をテストする方法に関する情報を提供します。また、コンピューティングとストレージの一般的な組み合わせに関するベンチマークによるパフォーマンスの数値も示しています。 このホワイトペーパーは、TPC ベンチマークの説明から始まり、データベースベンチマークの業界標準である HammerDB を紹介し、次にテストの範囲について説明します。さらに、環境、ワークロード、インスタンスタイプ、ストレージ、およびSQL Server の設定について詳しく説明します。最初のテストでは GP2 ボリュームのみ、2 番目のテストではローカルの NVMe ディスクにトランザクションログがある GP2 ボリュームのテスト、3 番目のテストではインスタンスストア NVMe ディスクのボリュームのテストと、3 種類のテストの結果について検討します。最終的な推奨が提供されます。 SQL Server Performance on AWS (AWS での SQL Server のパフォーマンス) のホワイトペーパーをご覧ください。 著者について Alan Cranfield は、EC2 Windows チームの上級ソフトウェアエンジニアであり、AWS 向けの Windows ワークロードの最適化をテーマにしています。       Bini Berhe は、Microsoft プラットフォームを担当する上級ソリューションアーキテクトであり、この分野の専門家として、オンプレミスのワークロードを AWS へ移行している顧客に指導や技術支援を提供しています。   […]

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

パフォーマンスの重要性: Amazon Redshift で実環境のワークロードが 3.5 倍の速さに

Amazon Redshift はそのサービスの開始以来、高度な複雑性を持つ分析ワークロードにも妥協を許さない高速処理で数千におよぶお客様の信頼を得てきました。2017 年にお客様にもたらした 3 倍から 5 倍のパフォーマンスゲインの実現には、ショートクエリの高速化、結果キャッシュ、遅延マテリアライゼーション、そのほか重要な多数の改善点が貢献しています。本記事では、Amazon Redshift の最新の改善活動や、パフォーマンス向上への絶え間ない取組みがお客様を支援している様子をご紹介します。また、今でも継続中の改善活動の評価に利用していた業界標準のベンチマークから得られたパフォーマンステストを考察します。 最新のパフォーマンス改善活動 AWS はそのデータウェアハウスの世界最大規模のデプロイメントによって、さまざまな分析ワークロードにわたる使用パターンを分析し、パフォーマンス向上のための機会を探り出します。そこから得た知見は数千におよぶお客様の利益にシームレスにつながる改善をもたらします。パフォーマンス面における過去 6 か月間の主な改善点は、次のとおりです。 メモリ重視型クエリ用途のリソース管理の改善: Amazon Redshift で結合時と集計時のメモリの消費および予約プロセスが向上しました。これにより、大多数のハッシュテーブルに対するキャッシュの効率性を向上させ、メモリ重視型の結合および集計操作の洩れの低減を最大で 1.6 倍改善しました。 コミットのパフォーマンス改善: コミットは書き込みトランザクションの主なコンポーネントとして、ETL (抽出、変換、ロード) ジョブといったデータアップデートおよびデータインジェスチョンのワークロード処理のパフォーマンスに直接インパクトを与えます。2017 年 11 月以降、コミットのパフォーマンスの最適化活動の一環として、複数コミットを 1 回の操作で行うバッチ処理、コミットロック性能の向上、データ局所性認識型のメタデータのデフラグ用プログラムなどを実現してきました。これらに代表される最適化活動は、HDD ベースのクラスターでかかるコミット時間の低減効果を平均で 4 倍にしています。大量トランザクション (Amazon Redshift のコミット操作の上位 5%) では、最適化効果は 7.5 倍になっています。 繰り返しクエリのパフォーマンス改善: Amazon Redshift の結果キャッシュ、ダッシュボード、可視化、ビジネスインテリジェンス (BI) ツールが繰り返しクエリを実行すると、パフォーマンスを大幅に向上します。さらに、結果キャッシュで解放されるリソースにより、他のすべてのクエリのパフォーマンスが向上します。 クエリ処理の改善: Amazon Redshift は繰り返しサブクエリ、述語を使用した高度分析用関数、重複作業を避けて工程を合理化することによる複雑なクエリプランなどの事例では、そのパフォーマンスは 2 倍から 6 倍高速化しています。 文字列操作の高速化: […]

Read More

AWS DevDay Tokyo 2018 Database トラック資料公開

Database フリークな皆様、こんにちは!AWS DevDay Tokyo 2018 Database トラックオーナーの江川です。 2018 年 10 月 29 日(月)〜 11 月 2 日(金)にかけて、AWS DevDay Tokyo 2018 が開催されました。本記事では、11/1(木)に実施された Database トラックのセッション資料をご紹介します。 セッション資料紹介に先立ち、お客様セッションとしてご登壇いただいた、Sansan株式会社間瀬様、株式会社ソラコム安川様、Amazon Pay 吉村様にお礼申し上げます。併せて、ご参加いただいた皆様、ストリーミング配信をご覧いただいた皆様ありがとうございました。   ●お客様セッション資料 AWSサービスで実現するEightの行動ログ活用基盤(Sansan株式会社 間瀬哲也様) AWSサービスで実現するEightの行動ログ活用基盤 from Tetsuya Mase DynamoDB Backed なテレコムコアシステムを構築・運用してる話(株式会社ソラコム 安川 健太様) AWS Dev Day Tokyo 2018 | Amazon DynamoDB Backed な テレコムコアシステムを構築・運用してる話 from SORACOM,INC DynamoDBとAmazon Pay で実現するキャッシュレス社会 […]

Read More

【開催報告】AWS Data Lake ハンズオンセミナー 秋

こんにちは。AWS ソリューションアーキテクトの上原誠(@pioh07)です。 9月21日に、「AWS Data Lake ハンズオンセミナー」を開催いたしました。前回行ったワークショップの3回目となります。前回も盛況でしたが、今回も80名近くのお客様にご参加頂きました。 はじめに、AWSにおけるデータ活用のベストプラクティスであるAmazon S3を中心とした Data Lakeについて解説し、ビッグデータ分析基盤の考え方として有名なラムダアーキテクチャの解説を行いました。 当イベントでは、AthenaやRedshiftのAWSサービスを駆使して実際にラムダアーキテクチャを構築してみる、というのがゴールです。とはいえすべてを構築し切るのはボリュームが大きいため、コース別に取り組めるようにハンズオンコンテンツを用意しました。最初にコースの説明を行い、出席いただいたお客様ご自身の課題に合わせてコースを選択頂き、ハンズオンを行っていただきました。今回、参加者も多くいらっしゃいましたので、サポートするソリューションアーキテクトも4名で対応させていただきました。 今回参加できなかった方も、ソリューションアーキテクトのサポートを受けながらハンズオンを行いログ分析を初めてみてはいかがでしょうか?   次回は冬ごろに開催予定です。ご参加お待ちしております。

Read More

AWS Database Migration Service を使用して Amazon Aurora から Amazon S3 にデータをレプリケート

このブログ記事でご紹介するのは、AWS CloudFormation テンプレートを使って Amazon Aurora のようなリレーショナルデータベースから Amazon Simple Storage Service (Amazon S3) にデータをレプリケートできるよう、設定を自動化する方法です。CloudFormation テンプレートのサンプルを使って説明していくので、ニーズに合わせて応用してください。 AWS Database Migration Service (AWS DMS) を使えば、データをあるデータソースから別のデータソースに移行できます。たとえば、Oracle から Aurora、NoSQL から SQL、オンプレミスからクラウドへの移行などがあります。顧客が DMS を利用するのは 1 回限りのデータ移行の場合だけではありません。ETL プロセスの一部として継続的な異種データレプリケーションを行う場合にもよく利用します。それこそがこのブログ記事のテーマです。 ソリューションの概要 アーキテクチャを図で示します。 この CloudFormation テンプレートのサンプルは、この例に必須のすべてのリソースを記述しプロビジョニングします。コードは GitHub で探すことができ、テンプレートをスタックとしてデプロイするには [Launch Stack] ボタンをクリックします。注意: us-east-1 リージョンでは、このテンプレートは RDS DB クラスタースナップショットを使用します。スタックを別のリージョンにデプロイしたい場合は、希望するリージョンにスナップショットをコピーして、CloudFormation テンプレート内の SnapshotIdentifier の値を置き換えます。 このプロセスの開始からスタックが作成されるまでには、約 50 分ほどかかります。このテンプレートは下記の処理を行います。 AWS DMS Sample Database […]

Read More