Amazon Web Services ブログ

Amazon Aurora under the hood: Z-order curvesを用いたgeospatial indexの作成

Amazon Auroraのような高性能データベースシステムを設計する場合、一般的に最も幅広いワークロードを大きく改善出来るように取り組みたいと考えるかと思います。しかし時には、ゲームチェンジャーになりえる機会がある場合、特別な用途向けに改善を行うこともあります。 geospatial indexとはなにか、なぜ考慮する必要があるのか? 地理空間分析では、XY(Z)座標に沿った近さ、隣接性、重なりを識別することができます。 そのような分析を実行する必要があるアプリケーションには様々な例があります。タクシーアプリでは、利用可能な最寄りのタクシーを見つけることができます。不動産アプリは、サンフランシスコのPacific Heights地区で販売されている物件を探すことができます。 空間分析は、他にも多くの用途でも役立ちます: マーケティング – 店舗から2マイル以内のすべての見込み顧客をターゲットにプロモーションを行います 資産管理 – 顧客の位置と密度に基づいて影響を最小限に抑えるために修理ユニットを配置します リスク分析 – 顧客の居住地や職場の近くで車の盗難が発生した場合のリスクを見積もります 詐欺検出 – 前回のトランザクションからの距離に基づいて詐欺と考えられる取引の可能性を推定します ロジスティクス計画 – 運行の範囲を最小限にするように、トラブルのチケットを現場の技術者に割り当てます これらのアプリケーションは、高性能な空間データのインデックスから利益を得ることができます。残念なことに、Bツリーのような伝統的なインデックスは、Linlandのために作られたものであり、FlatlandやSpacelandではそうではありません。そのため、高性能な空間インデックスが必要です。 Rツリーとは? 最も一般的に使用される空間インデックスはRツリーです(詳細はこちらの論文を参照してください)。 MySQLとOracleはどちらもR-treeを使用しています。基本的な考え方は、バランスサーチツリーないにバウンダリーレクタングルを保存することです。リーフはデータポイントであり、各内部ノードは、その下のノードのミニマムバウンダリーレクタングルです。したがって、次の例では、長方形Aはリーフノードです。このノードは、矩形NおよびTによって順番に境界が作成されます。 Rツリーの主な問題は、安定していないことです(つまり、決定論的です)。挿入順序が異なると、異なるツリーが生成され、パフォーマンスの特性が大きく異なります。私たちのテストでは、ランダムな挿入順序では、最適な順序で構築されたツリーよりも1桁も性能が劣化したツリーが生成されました。これは、データの挿入順序が予測できず、変更可能なOLTP環境では明らかに問題になります。このような状況では、Rツリーは時間とともに性能が劣化します。1つの回避策は、データを定期的にインデックスを再構築することです。しかし、インデックスの再構築は負荷がかかります。加えて通常この作業は、手作業が必要であり、数時間かかることがあります。また、その期間中の他のトランザクションは遅くなる可能性があります。 そのため、Rツリーは人気がありますが、常に良好なパフォーマンスは得られません。 他にいい方法はあるのか? 私たちはそう考えています!トランザクションと同時実行に最適なデータ構造があります。それはBツリーです。 あらゆる場面で使用され、高いパフォーマンスを発揮するのはデータベースにとって基本です。 しかし、ちょっと待ってください。私はB-treeが多次元データに対してうまく機能しないと言いました。それは本当です。2次元を1次元にマップするトリックがあります。 私たちは、space-filling z-order curves(空間充填zオーダー曲線)を使用して行います。これは、ポイントのz値は、その座標値のバイナリ表現をインターリーブすることによって計算されます。zオーダー曲線は、これらの点をz値の順に横切る線です。たとえば、次の図は、0≤x≤7、0≤y≤7の整数座標の場合のz値を示しています(10進数と2進数の両方を示しています)。 zオーダー曲線上のBツリーの単純な実装では不十分です。なぜこれが当てはまるのかを知るために、以下の例を見てみましょう。緑色の四角形内のすべての点をBツリーで検索すると、クエリー領域外に30個の余分なz値(黄色い三角形の警告標識が付いている物)がスキャンされます。 元のクエリをより少ない偽陽性z値をカバーする小さなクエリに分割することで、この問題を改善します。(これを行うために幾つかの方法を使用していますが、それはこの記事でお伝えする範囲を超えています) それは私たちがポイントするために必要なものすべてを提示します。ポリゴンはどのように空間充填曲線で動作するのでしょうか?ポリゴンが単一点のように見えるまでズームアウトしたとします。どの程度ズームアウトしなければならないかは、ポリゴンの”レベル”によります。各空間オブジェクトは、オブジェクトのレベルとzアドレスの組み合わせとしてBツリーに格納されます。zアドレスがポイントのように見えるまでズームアウトしたので、zアドレスをポイントのように扱うことができます。他のシステムでは、このレベルを手動で指定する必要があります。明らかに、予測不可能で変更可能なデータを扱うOLTPシステムでは動作しません。このレベルはユーザーの設定なしで自動的に設定します。 Auroraのgeospatial indexesは、MySQL 5.7よりもselect-only(1秒当たりの読み込み回数)ワークロードで10倍以上、write-only(1秒当たりの書き込み回数)で20倍以上優れています。具体的には、サイズが1 GB未満のデータセットでSysbenchを使用して、AuroraとAmazon RDS for MySQL 5.7をdb.r3.8xlargeインスタンスを用いて計測しました。select-onlyのテストでは、2,000クライアントとST_EQUALSクエリを使用しました。write-onlyテストでは、4,000のクライアントを使用しました。 ご質問がある場合は、aurora-pm@amazon.comまでご連絡ください。 About the Author Sirish Chandrasekaran is a product […]

Read More

Amazon RDS for PostgreSQL から Amazon Aurora PostgreSQL リードレプリカを作成可能になりました

Amazon Aurora PostgreSQL リードレプリカ(2018/1/23現在英語版ドキュメントのみとなっています)を Amazon RDS for PostgreSQL のインスタンスとして作成し、継続的に Amazon Aurora PostgreSQL へレプリケーション出来るようになりました。これにより、実稼働ワークロードを Amazon RDS for PostgreSQL から Amazon Aurora PostgreSQL に移行する際、アプリケーションとユーザーを Amazon Aurora PostgreSQL へ移す準備ができるまで、インスタンスタイプを同期させておくことで、ダウンタイムを最小化させることが可能です。 Amazon Auroraは、高性能の商用データベースのパフォーマンスや可用性と、オープンソースデータベースのシンプルさや費用対効果を兼ね備えています。スケーラビリティ、耐久性、およびセキュリティの向上とともに、高いクエリ並列度、データサイズが大きい環境下で標準的なPostgreSQLデータベースのパフォーマンスを最大で3倍向上させます。詳細については、Amazon Auroraの製品ページをご覧ください。 翻訳は江川が担当しました。原文はこちらをご覧ください。

Read More

暗号化されたスナップショットを Amazon Aurora PostgreSQL へ移行可能になりました

Amazon RDS for PostgreSQL の暗号化されたスナップショットから Amazon Aurora PostgreSQL へ移行できるようになりました。これにより、Amazon RDS から Amazon Aurora へ移行中の間も、データ暗号化を維持することが可能です。 Amazon Auroraは、高性能の商用データベースのパフォーマンスや可用性と、オープンソースデータベースのシンプルさや費用対効果を兼ね備えています。スケーラビリティ、耐久性、およびセキュリティの向上とともに、高いクエリ並列度、データサイズが大きい環境下で標準的なPostgreSQLデータベースのパフォーマンスを最大で3倍向上させます。詳細については、Amazon Auroraの製品ページをご覧ください。 翻訳は江川が担当しました。原文はこちらをご覧ください。

Read More

AWS データセンターのセキュアな設計について

AWS は AWS のデータセンターのデジタルなツアーを公開しました。AWS が世界中で運用しているデータセンターをいかにセキュアに保護しているのか初めてお客様にご紹介するものです。このデジタルなツアー内のビデオ、写真および情報は、データセンターの設計、グローバルの統制および AWS のカルチャーがセキュリティの本質であることを解説しています。 このツアーにご参加いただくことで、AWS データセンターのセキュリティストラテジーが、お客様の情報を保護するためにスケーラブルな統制と複数の防御レイヤーによって成り立っていることを理解いただけます。例えば、AWS は潜在的な洪水や地震活動のリスクを慎重に統制しています。 AWS は境界防御レイヤー、保安要員、侵入検知システムおよびその他の電子システムを用いてデータセンターへのアクセスを制限しています。AWS はシステムのバックアップを実施し、定期的に装置やプロセスのテストを行い、継続的にAWSの従業員にトレーニングを行うことで予測不能な事態に備えています。 データセンターのセキュリティを検証するために、年間を通して、外部の監査人が2,600以上もの基準や要求事項に沿ったテストを行っています。そのような独立したテストが、セキュリティ基準が継続的に満たされている、もしくは基準を上回っている事を証明するために役立っていることになります。その結果、AWS は世界中の最も厳しい基準を有する監査機関からお客様のデータ保護に関して信頼を得ています。 データセンターのセキュアな設計の詳細についてはこちらのツアーにご参加ください。 – Chad Woolf, AWS Security Assurance (翻訳:AWS セキュリティ・アシュアランス本部 戸内加奈。原文はTake a Digital Tour of an AWS Data Center to See How AWS Secures Data Centers Around The World)

Read More

Microsoft Azure SQL Database から Amazon Aurora への移行

Oracle や Microsoft SQL Serverなどのライセンスが必要なエンジンから、AWS上で稼働するオープンソースエンジンへ移行する気運がますます高まっています。対象データの移行先として Amazon Aurora が選ばれています。この投稿では AWS Database Migration Service (AWS DMS) を用いた Microsoft Azure SQL database から Amazon Aurora MySQL クラスタへの移行方法を紹介します。 前提条件 この記事では、Azure SQLデータベースが既にインストールされていることを前提としています。移行には、このデータベースの接続情報(DNSエンドポイント、ユーザー名、パスワードなど)が必要です。また、移行作業に使用するユーザには、Azure SQLデータベースのデータにアクセスするための適切な権限が必要です。 記事の目的に合わせ、ターゲット(移行先データベース)として Amazon Aurora クラスタを作成します。 AWS DMSはソース(移行元データベース)およびターゲットとして、様々なデータベースエンジンをサポートしていますが、多くのお客様は独自のストレージエンジンを使用したAmazon Auroraを選択します。このエンジンは、3つのアベイラビリティゾーンに跨る耐久性、自動ポイントインタイムバックアップ、最大15台の低レイテンシ読み取りレプリカを実現します。 ターゲット用の Aurora クラスタを既に作成している場合は、新規に作成する必要はありません。新しい Aurora クラスタを作成する場合は、Amazon Aurora DB クラスタ作成の手順を参照してください。 AWS DMS インフラのセットアップ ここまででソースとターゲットの情報が確認できたので、AWS DMS インフラを設定していきましょう。 AWS DMSは非常に高い柔軟性をもつ為、多くのコンポーネントから構成されています。AWS CloudFormationを使用することで、これらのコンポーネントをまとめて単一の「スタック」にグループ化し、原子性を保った1つのユニットとして何度も再作成することができます。 AWS CloudFormation のコンソールを開いて設定を始めます。 […]

Read More

最新 EC2 Goodies – 起動テンプレートとスプレッドプレイスメント

いくつかの重要な新しい EC2 インスタンスタイプをローンチして、AWS re:Invent で紹介しています。M5、H1、T2 Unlimited および Bare Metal インスタンス、またHibernation や New Pricing Model などの Spot 機能については、すでにお伝えしてきました。Amazon Time Sync Service については、Randall がお伝えしました。今日は、私たちがローンチした 2 つの機能、すなわち、スプレッドプレイスメントグループと起動テンプレートについて説明いたします。どちらの機能も EC2 コンソールと EC2 API で使用でき、「aws」パーティションのすべての AWS リージョンで使用できます。 起動テンプレート 起動テンプレートを使用して、EC2 インスタンスの起動に使用するインスタンス、ネットワーク、セキュリティ、ストレージ、および高度なパラメータを保存できます。また、任意のタグを含めることもできます。各テンプレートには、パラメータのフルコレクションの希望するサブセットを含むことができます。たとえば、タグやネットワーク構成などの一般的な構成パラメータをテンプレートで定義し、その他のパラメータを実際の起動の一部として指定することができます。 テンプレートを使用して、On-Demand およびSpot フォーム内、および EC2 Auto Scaling を介して、または Spot Fleet の一部として起動されたインスタンスにまたがる、一貫性のある起動環境をセットアップできます。これらを使用して、組織全体の標準を実装し、ベストプラクティスを実施することができます。また、基盤となる API を使用せずに、テンプレートを介してインスタンスを起動する機能を IAM ユーザーに提供できます。 テンプレートはバージョン管理されているので、1 つのインスタンスを起動するときに、任意のバージョンを使用できます。テンプレートは、最初から作成したり、以前のバージョンに基づいたり、または実行中のインスタンスからパラメータをコピーすることができます。 コンソールで起動テンプレートを作成する方法は以下のとおりです。 ネットワークインターフェイス、ストレージボリューム、タグ、およびセキュリティグループを追加する方法は以下のとおりです。 高度なパラメータと特殊なパラメータを指定する方法は以下のとおりです。 テンプレートですべてのパラメータを指定する必要はありません。複数のインスタンスまたは起動に共通する値を起動時に入力して、その他のパラメータを追加できます。 Create […]

Read More

Amazon SageMaker BlazingText: 複数の CPU または GPU での Word2Vec の並列化

AWS は、Amazon SageMaker の最新組み込みアルゴリズムとして Amazon SageMaker BlazingText をリリースします。BlazingText は、Word2Vec 埋め込みを生成するための教師なし学習アルゴリズムです。大規模コーパスには単語の密なベクトル表現があります。Word2Vec の最高速実装である BlazingText が、以下を使用する Amazon SageMaker ユーザーにご利用いただけるようになりました。 シングル CPU インスタンス (Mikolov によるオリジナルの C 実装および fastTextなど) 複数の GPU を備えたシングルインスタンス、P2 または P3 マルチ CPU インスタンス (分散 CPU トレーニング) 単一の p3.2xlarge (Volta V100 GPU 1 個) インスタンス上の BlazingText は、単一の c4.2xlarge インスタンス上の fastText よりも 21 倍速く、20% 割安になる場合があります。 複数の CPU ノード全体における分散トレーニングでは、BlazingText は […]

Read More

AWS KMS ベースの暗号化を Amazon SageMaker のトレーニングおよびホスティングに使用できるようになりました

Amazon SageMaker は、EC2 インスタンスのトレーニングおよびホスティングにアタッチされる ML General Purpose ストレージボリュームの暗号化に Throwaway key (Transient key とも呼ばれます) を使用します。これらのキーは、ML ストレージボリュームの暗号化にのみ使用され、すぐに破棄されるため、ボリュームを安全に使用して機密データを保管することができます。ボリュームには、アクセス制限されている関連するインスタンスを通じてのみアクセスできます。インスタンスが終了すると、ML ボリュームは削除され、ボリューム内のデータにはアクセスできなくなります。 お客様は、AWS Key Management Service (KMS) を通じて管理されるキーの使用を可能することを要求しています。これは KMS マスターキー ID を指定する際に、ノートブックインスタンスにアタッチされたストレージが暗号化される方法と同じです。 今日から、トレーニングとホスティングのデータを暗号化するために、KMS マスターキーを使い始めることができます。これにより、一元的なキー管理、キー使用監査ロギング、マスターキーローテーションなどの AWS KMS 機能を、分散トレーニングとモデルホスティングに活用できます。 トレーニングデータを暗号化するには、CreateTrainingJob API の呼び出しで KMS マスターキーを指定します。ホスティングの場合は、CreateEndpointConfig API の呼び出しでキーを指定します。 Amazon SageMaker および KMS の詳細については、Amazon SageMaker Developer Guide をご覧ください。 今回のブログの投稿者について Kumar Venkateswar は、Amazon SageMaker、Amazon Machine Learning、Deep Learning AMI […]

Read More

機械学習と BI サービスを使用してソーシャルメディアダッシュボードを構築する

このブログ記事では、Amazon Translate、Amazon Comprehend、Amazon Kinesis、Amazon Athena、Amazon QuickSight を使用して、自然言語処理 (NLP) を採用した、ツイートのソーシャルメディアダッシュボードの構築方法をご案内します。 各企業がお客様とソーシャルメディアでやりとりすることで、ブランドの認知度が高まります。ツイートによる情報の拡散は、それほどコストがかからないにもかかわらず、お客様候補を獲得し、ウェブサイトのトラフィックを増やし、お客様との関係を構築し、顧客サービスを改善するのに役立ちます。 このブログ記事では、サーバーレスのデータ処理と機械学習 (ML) パイプラインを構築し、Amazon QuickSight でツイートの多言語ソーシャルメディアダッシュボードを提供する方法を紹介します。API 駆動型 ML サービスを活用すると、可用性が高くスケーラブルでセキュアなエンドポイントを呼び出すだけで、開発者はインテリジェンスをコンピュータビジョン、音声、言語分析、およびチャットボット機能など、あらゆるアプリケーションに簡単に追加できるようになります。これらの構築ブロックは、AWS のサーバーレス製品を活用することで、ごくわずかなコードで構成できます。このブログ記事では、システムを通じてのツイートフローに、言語翻訳と自然言語処理を行っていきます。 ソーシャルメディアダッシュボードを構築するだけでなく、生データセットとエンリッチなデータセットの両方をキャプチャし、データレイクに永続的に格納できます。データアナリストは、このデータで新しいタイプの分析や機械学習をすばやく簡単に実行できます。 このブログ記事を通じて、以下のことをどのように行うことができるかをご案内します。 Amazon Kinesis Data Firehose を活用すると、リアルタイムのデータストリームを容易にキャプチャおよび準備して、データストア、データウェアハウス、データレイクに読み込むことができます。この例では、Amazon S3 を使用します。 AWS Lambda をトリガーして、AWS の完全に管理された 2 つのサービス、Amazon Translate と Amazon Comprehend を使用してツイートを分析します。これらのサービスでは、ほんの数行のコードだけで、言語間の翻訳が可能となり、ツイートの自然言語処理 (NLP) を実行できます。 Amazon Kinesis Data Firehose の個別の Kinesis データ配信ストリームを利用して、分析されたデータをデータレイクに書き戻します。 Amazon Athena を利用して、Amazon S3 に格納されたデータのクエリを実行します。 Amazon QuickSight […]

Read More

Amazon RDS for PostgreSQL が新しいマイナーバージョン 9.6.6, 9.5.10, 9.4.15, 9.3.20 をサポート

PostgreSQL コミュニティによるアップデートに追従し、PostgreSQL のマイナーバージョンである 9.6.6, 9.5.10, 9.4.15, 9.3.20 が Amazon RDS for PostgreSQL でサポートされました。このリリースでは、PostgreSQLの3つのセキュリティ上の脆弱性が修正され、追加のバグ修正と改善が行われています。 このアップデートでは、Oracle Database で利用される関数、パッケージの一部を実装した Extension “orafce” と、プレフィックスマッチングを提供する Extension “prefix” のサポートがバージョン 9.6.6 に含まれています。 マネジメントコンソールを使い数クリックで新たな RDS for PostgreSQL を作成するか、既存のインスタンスをワンクリックでアップグレードすることで、新しいバージョンを利用できます。アップグレードする場合、短いダウンタイムが発生することにご注意ください。データベースインスタンスをアップグレードするにあたっての詳細は、 Amazon RDS ユーザーガイドをご覧ください。 Amazon RDS for PostgreSQL は、クラウドで簡単に PostgreSQL を設定、運用、スケール可能です。それぞれのリージョンでご利用いただけるかどうかは、Amazon RDS for PostgreSQL の料金ページをご覧ください。 翻訳は江川が担当しました。原文はこちらです。

Read More