Amazon Web Services ブログ

Category: Database

Oracle データベースから Amazon Aurora PostgreSQL データベースへの移行の概要

この記事では、Oracle データベースから Amazon Aurora PostgreSQL データベースへの移行プロセスのデモを行うために、リソースをデプロイする AWS CloudFormation スタックを構築します。これは異種間移行であるため、How to Migrate Your Oracle Database to PostgreSQL で詳しく説明されているものと同様の 2 フェーズのアプローチに従います。 この記事は、AWS Schema Conversion Tool (AWS SCT) と AWS Data Migration Service (AWS DMS) の中核的な概念をより良く理解するために役立つ移行スタックの構築に焦点を当てます。また、データベースパラメータグループを使用して、移行のためにターゲットの Amazon Aurora PostgreSQL データベースでトリガーを無効化する方法についても説明します。 今回は、AWS DMS で Oracle データベース (HRDATA) が事前にインストールされた Amazon EC2 インスタンス、Amazon Aurora PostgreSQL クラスター、およびレプリケーションインスタンスをデプロイするために AWS CloudFormation を使用します。移行プロセスに役立てるため、Amazon Virtual Private […]

Read More

AWS Database Migration Service のログ管理

AWS DMS を完全に管理できるように、レプリケーションインスタンスの移行ログを管理する機能をAWSは導入しました。この機能を使用することで、特定のレプリケーションインスタンスの各タスク用のログがどれくらいストレージを消費しているかを確認することもできます。さらに、この機能を利用すると、あなたが都合の良いときにログファイルをパージできます。

Read More

[AWS Black Belt Online Seminar] データウェアハウスのAWSへの移行 資料及びQA公開

こんにちは、ソリューションアーキテクトの有岡です。 先日(2018/3/19)開催致しました AWS Black Belt Online Seminar「データウェアハウスのAWSへの移行」の資料を公開いたしました。当日、参加者の皆様から頂いた QA の回答と併せてご紹介致します。

Read More

新機能 – Amazon DynamoDBに継続的バックアップとPoint-In-Time-Recovery(PITR)機能が追加されました

Amazon DynamoDBチームはencryption at restに引き続き新しい機能を発表しました。AWS re:Invent 2017 では、グローバルテーブルの作成と DynamoDBテーブルのオンデマンドバックアップとリストアを発表しました。そして今日、継続的バックアップとしてPITR(ポイントインタイムリカバリ)を利用出来るようになりました。 AWS Management Consoleからワンクリックするか、簡単なAPIコール、またはAWSコマンドラインインターフェイス(CLI)を使用して継続的バックアップを有効にすることができます。DynamoDBはPITRが有効になってから35日以内であれば1秒単位でデータをバックアップし、1秒単位でリストアできます。誤った書き込みや削除を防ぐためにこの機能を構築しました。開発者がステージングではなくプロダクションに対してスクリプトを実行した場合や誤ったDeleteItemを実行した場合はPITRでカバー出来ます。その為予測できないようなシナリオにも利用出来ます。オンデマンドバックアップはアーカイブ目的のために必要なタイミングを指定できますが、PITRは偶発的なデータ消失に対する追加の保険として機能します。これがどのように機能するか見てみましょう。 継続的バックアップ マネジメントコンソールでこの機能を有効にするには、テーブルに移動して[ バックアップ ]タブを選択します。そこから、Enableをクリックするだけで有効になります。また、UpdateContinuousBackups API呼び出しを使用して継続的バックアップを有効にすることもできます。 継続的バックアップを有効にした後、最も遠い復元日と最新の復元日時を確認出来ます。 削除したい古いユーザーデータがたくさんある、というシナリオを例にとってみます。 私はlast_updateに格納されている日付に基づいてアクティブなユーザーだけに通知を送信したいと考えました。そしてサービスを使用していないユーザーを削除するために簡単なPythonスクリプトを書くことに決めました。 import boto3 table = boto3.resource(“dynamodb”).Table(“VerySuperImportantTable”) items = table.scan( FilterExpression=”last_update >= :date”, ExpressionAttributeValues={“:date”: “2014-01-01T00:00:00″}, ProjectionExpression=”ImportantId” )[‘Items’] print(“Deleting {} Items! Dangerous.”.format(len(items))) with table.batch_writer() as batch: for item in items: batch.delete_item(Key=item) すばらしい!これでサービスに2013年以来ログインしていない厄介な非アクティブユーザをすべて削除するはず・・・CTRL + C CTRL + C CTRL + […]

Read More

AWS CloudFormation を使用して Amazon DynamoDB テーブルとインデックスの Auto Scaling を設定する方法

AWS リソースをデプロイする上でのベストプラクティスは、Infrastructure as Code を扱う構成システムを使用することです。Infrastructure as Code は、開発者とオペレーションを連携させてアプリケーション配信を自動化する DevOps プラクティスの成功の鍵です。インフラストラクチャ全体を AWS CloudFormation テンプレートのコードとしてモデリングすることで、次のような利点があります。 クラウドソース用の信頼できる唯一の情報源を確立 開発環境とテスト環境のデプロイメントの自動化 災害対策の準備 バージョン管理などのコード管理ツールとの統合 Amazon DynamoDB などのサーバレスデータベースと組み合わせて AWS CloudFormation テンプレートを使用することで、アジャイルな DevOps プロセスを採用した開発チームの高速なオペレーションを大幅に簡素化できます。この記事では、実際の例と、AWS CloudFormation を使用して DynamoDB の Auto Scaling を設定する方法をご説明します。 注意: この記事では、ソリューションについて説明するためのスクリーンキャストを作成しました。どうぞお試しください。 DynamoDB の Auto Scaling DynamoDB は、あらゆる規模で一貫性のある 1 桁ミリ秒台のレイテンシーを必要とするアプリケーション向けの、完全マネージド型で、高速の、スケーラブルかつ柔軟なクラウドデータベースサービスです。2017 年、AWS は DynamoDB に Auto Scaling 機能を追加しました。Auto Scaling を使用すると、予測不能なパフォーマンスのニーズを持つアプリケーションの管理を簡素化することができます。Auto Scaling では、テーブルとグローバルセカンダリインデックスの読取りおよび書込み容量の上限と下限、およびターゲット使用率を構成できます。 AWS CloudFormation […]

Read More

OHDSI を使用して健康分析のために AWS でデータ科学環境を作成する

ヘルスケアデータにテクノロジを適用することには、多くのエキサイティングで重要な成果をもたらす可能性があります。ヘルスケアデータから生成された分析は、医療従事者が自分達が提供するケアを向上させるためにより良い意思決定を行えるようにすることで、個人と集団の健康を改善するようにエンパワメントできます。 観察的なヘルスデータ科学と情報 (OHDSI、「オデッセイ」と発音する) プログラムとコミュニティは、観察的健康データを保存し、分析するためのデータ標準とオープンソースソリューションを生成することを目標にしています。OHDSI ツールを使用して、集団全体の健康を可視化することができます。患者のコホートを構築し、さまざまな状態の発生率を分析し、特定の状態の患者に対する治療の効果を推定することができます。また、機械学習アルゴリズムを使用して健康成果の予測をモデル化することもできます。 ビッグデータツールの操作をするときにしばしば直面する課題の一つは、ツールを実行するときに必要なインフラストラクチャが必要になることです。もう一つの課題は、これらのツールを実装して使い始めるための学習曲線です。アマゾン ウェブ サービスを使用すると、エンタープライズクラスのインフラストラクチャーとテクノロジーを手ごろな費用で伸縮自在で自動化された方法で使用可能にすることにより、従来の IT の多くの課題に対応できるようになります。この記事では、AWS テクノロジーにいくつかの OHDSI プロダクト (Atlas、Achilles、WebAPI、およびOMOP Common Data Model) を組み合わせる方法を示します。そうすることにより、ヘルスデータ科学と情報環境を迅速に、少ない費用で実装できます。

Read More

Amazon RDS リザーブドインスタンスのコストを節約するために AWS コスト管理製品を使用する

Amazon RDS を使用すると、クラウド内のリレーショナルデータベースを迅速かつ簡単に設定、操作、拡張できます。Amazon RDS Reserved Instances(RI)には、1年間または3年間のデータベースインスタンスを予約するオプションが用意されています。このオプションでは、オンデマンド価格と比較して大幅な割引(最大69%)があります。 この記事では、AWS Cost Management 製品を使用する際に、RI でコスト削減の機会を特定するのに役に立つ方法を学ぶことができます。同時に、ネイティブの AWS ツールを使用すると、新規および既存の Amazon RDS の管理に役立てることができます。 AWS Cost Explorer を使用すると、AWS のコストと使用状況を視覚化し、理解し、管理することができます。すでにご存知とは思いますが、Cost Explorer は、コスト分析と使用状況の分析を開始するのに最適です。しかし、Cost Explorer でも、Amazon RDS の使用状況履歴に基づいた、RI 購入推奨事項が提供されていることをご存知でしたか? Cost Explorer の左上隅にあるナビゲーションメニューを使用して、Recommendations エリアから RDS をすばやく選択し、カスタマイズされた RI 購入推奨事項にアクセスできます。 Amazon RDS の Cost Explorer の RI購入推奨事項を開始する 次のスクリーンショットでは、Cost Explorer コンソールを見ることができます。  支払人(マスター)のアカウントから、Cost Explorer が識別した RI 購入機会にアクセスできます。これを行うには、Cost Explorer の RDS RI […]

Read More

2018 年でこれまでに最もアクセスが多かった Amazon DynamoDB 開発者ガイドページのトップ 20

Amazon DynamoDB 開発者ガイドには、Amazon DynamoDB のコンセプトの概要と、各種機能を使用するための詳しい手順が説明されています。以下のリストには、2018 年の最初の 2 ヵ月間、このガイドの中でアクセスが最も多かったページ 20 件を記載しています。このリストには、各ページの内容を説明するために、概要とそれぞれのリンクが含まれています。このリストを使用して、AWS の他のお客様が何を読んでいるかをご覧ください。前から知りたいと思っていた DynamoDB トピックに対する興味が湧くかもしれません。 クエリの操作 Query オペレーションと、プライマリキー値に基づいてアイテムを検索するためにこのオペレーションを使用する方法について学びます。複合プライマリキー (パーティションキーまたはソートキー) がある任意のテーブルまたはセカンダリインデックスをクエリすることができます。 DynamoDB の使用開始 これらの言語別チュートリアルは、DynamoDB についてより詳しく学ぶために役立ちます。これらに含まれるサンプルコードを、ダウンロード可能なバージョンの DynamoDB、または DynamoDB ウェブサービスで実行してください。 DynamoDB ローカル (ダウンロード可能バージョン) のセットアップ ダウンロード可能なバージョンの DynamoDB を使用して、DynamoDB ウェブサービスにアクセスすることなくアプリケーションを記述してテストすることができます。本番用にアプリケーションをデプロイする準備が整ったら、コードを若干変更するだけで DynamoDB ウェブサービスを使用できるようになります。このダウンロード可能バージョンは、プロビジョニングされたスループット、データストレージ、およびデータ転送の料金の節約にも役立ちます。 テーブルのベストプラクティス DynamoDB でのテーブルを使った作業時には、これらのベストプラクティスに従うことが推奨されます。 DynamoDB での制限 これらは、DynamoDB における現在の制限 (または、場合によっては無制限) です。別途指定されている場合を除き、制限はそれぞれ AWS リージョン単位で適用されます。 DynamoDB コアコンポーネント DynamoDB では、テーブル、項目、および属性を使って作業します。これらのコアコンポーネントの詳細について学んでください。 DynamoDB での項目の操作 DynamoDB で、項目とは属性の集まりです。各属性には名前と値があります。DynamoDB は、項目の作成、読み取り、更新、および削除のために […]

Read More

Amazon Elasticsearch Serviceでは現在、韓国語分析の改善のためにSeunjeonプラグインをサポート

韓国語テキストの高精度な解析とマッチングを保証するために、Amazon Elasticsearch Service(Amazon ES)がSeunjeonプラグインをサポートするようになりました。このプラグインを使用すると、ユーザーにより良い結果をもたらすカスタムアナライザーを作成できます。 検索のためのアジア言語の処理 検索エンジンを使用するときは、検索ボックスに単語を入力します。その後に検索エンジンはそれらの単語を、索引付けした文書に出てくる単語とマッチングさせます。正しく一致させるには、検索エンジンがソース文字列から単語(言い換えれば、検索語句)を解析する必要があります。 エンジンは一連のステップでこれを行います。ステップに関するいくつかの例としては、空白をトークン化し、語幹を根本的な形にするためのステミングを適用し、ストップワード(頻繁で値の低い用語など)を削除することなどです。 多くの単語は複合語で、空白で区切れないため、アジア言語のテキストの処理は複雑です。同じ文字列は、複合的な文脈で異なることを意味することがあります。 Elasticsearchでのアジア言語の最もベーシックな処理は、cjkアナライザーを介して提供されます。このアナライザーは、空白を分割して、得られたテキストに文字のバイグラム—2文字のペア—を作成します。たとえば、文字列아마존으로は、次の用語をインデックスに追加します。 아마 마존 존으 으로 Elasticsearchは、クエリを実行したときと同じ分析を行います。インデックス内のバイグラムに一致する、クエリ内のバイグラムが多いほど、マッチングが良好になります。 残念ながら、バイグラムをマッチングさせると予期しない結果につながる可能性があります。例えば、아마존이、아마존은、아마존으로、아마존을などは、すべてAmazonを意味する単語です。空白で用語を抽出したりバイグラムを計算すると、結果が悪くなる可能性があります。もし、아마존を照会すると、空白解析の仕組みのために、아마존이、아마존은、아마존으로、そして아마존을を含むドキュメントが結果に含まれない可能性があります。または、そのような文書は、バイグラム分析の仕組みのために、検索結果に表示されるほど十分な高いスコアを示さないことがあります。ユーザーがクエリを書くとき、最も頻繁には、単純に아마존(Amazon)を含むすべての文を検索します。この例のように行うと、多くの結果が抜けてしまいます。 より良い韓国のアナライザー:Seunjeon 高精度のマッチングをサポートするには、空白に基づいた処理条件以上の処理を行う韓国語のアナライザーが必要です。また、バイグラムに分割することもできます。Seunjeonは広く使われているオープンソースの韓国語アナライザーで、現在Amazon ESで利用可能です。このアナライザーは、韓国語の辞書であるmecab-ko-dicに基づいています。この辞書はアナライザーの重要な部分であり、ソーステキストとそのテキストの正しい用語を入力します。Amazon ESは現在、mecab-ko-dic-2.0.1-20150920を提供しています。 プラグインがメモリー不足のインスタンスでうまく動作するように、内部データ構造と関数に対して複数の最適化を行い、コミュニティへの機能拡張に貢献しました。作成されたプラグインのメモリー占有量は59%より少なく、現在はbitbucketリポジトリ内の個別の最適化バージョンとしても利用できます。 Seunjeonプラグインを使ってマッピングを作成する方法 Amazon ESには、Seunjeonアナライザーがあらかじめパッケージ化されており、自動的に導入され管理されます。ソースフィールドにアナライザーを設定した後、韓国語のキーワードで検索を開始することができます。 次のコードは、韓国語アナライザーでインデックスを作成します。 PUT / myindex { “settings” : { “index”: { “analysis”: { [1] “analyzer”: { [2] “korean”: { “type”:”custom”, [3] “tokenizer”:”seunjeon_default_tokenizer” } }, “tokenizer”: { [4] “seunjeon_default_tokenizer”: { “type”: “seunjeon_tokenizer”, “index_eojeol”: false, […]

Read More

Amazon ElastiCache を使用して、ハイブリッド型アーキテクチャのレイテンシーを削減する

クラウドに移行する際、組織が直面する課題の 1 つに挙げられるのは、限られたライセンスを持つ古いレガシーインフラストラクチャを、幅広い機能と従量課金制を提供できる環境に移行する、あるいはそのような環境に統合するための最善の方法があります。AWS には、分析や計画に役立つ多くのオプションが用意されています。それらに共通する 1 つのアプローチは、既存のデータセンターと AWS の間にハイブリッド環境を確立することです。 ハイブリッド環境では、データベース、アプライアンス機器、内部システムなどのオンプレミスリソースに関連するレイテンシーを軽減することが課題の 1 つです。これに対処できるソリューションは、数多くあります。このブログ記事ではそのうちの 1 つ、キャッシングを使用してレイテンシーを短縮し、パフォーマンスを向上させ、同時に耐障害性を向上させる方法について説明します。 シナリオ : 顧客が主に使用しているアプリケーションで、高いレイテンシーがある 今回検討するシナリオでは、顧客が使用する主なアプリケーションで高いレイテンシーを経験しており、日々の操作に影響していました。このアプリケーションとは、データベースによって駆動する検索機能を備えたオンラインのメディカルライブラリーです。次の図は、元のアーキテクチャを示しています。確認の結果、検索エンジンからのクエリの数が多いことが原因の、過負荷データベースの問題であることが分かりました。さらに、クエリの結果が非常に大きいため、顧客の低速なネットワークリンクが飽和状態になり、応答時間に影響を与えたのでした。 この問題を解決するソリューションの 1 つは、この記事では説明していませんが、データベースを Amazon RDS に移行し、読み取り専用インスタンスを有効にすることです。しかし、顧客のデータベースのライセンス条件により、AWS への移行ができませんでした。データベースを移行する際の別の課題は、アプリケーションとデータベースの統合です。システムが稼働中であったため、アプリケーション全体をライセンス制限のない別のデータベースエンジンに書き換えることはできませんでした。 提案するソリューション : Amazon ElastiCache によるインメモリキャッシュ この問題にはバックエンドデータベースのレイテンシーが関係するため、Amazon ElastiCache でのインメモリキャッシュを使用して、ネットワークのレイテンシーを軽減し、データベースの負荷を軽減します。このソリューションでは、データ取得レイテンシーを劇的に短縮できます。また、Amazon ElastiCache は 1 秒あたり 2000 万を超える非常に高い要求速度を実現できるため、要求量も大幅に増加します。次の図は、提案するアーキテクチャを示しています。VPC 内のキャッシュをウェブサーバーおよびアプリケーションサーバーと共に使用すると、アプリケーションは AWS からローカルデータセンターに常に移動する必要がなくなります。この変更により、サーバー間の物理的な距離は関係なくなります。 このソリューションの別の利点は、ワークロードの追加的可用性と規模です。このアーキテクチャーを使用すると、ソースデータベースに障害が発生しても、アプリケーションに対してクエリを継続して実行できます。これは、結果がキャッシュに格納され、キャッシュから検索されるためです。 この新しいアーキテクチャだと、顧客エクスペリエンスが大幅に改善するはずです。 ElastiCache の背景 Amazon ElastiCache は、Redis および Memcached と互換性のある、完全管理型で低レイテンシーのインメモリデータストアです。ElastiCache は Redis と Memcached の管理に関連する管理タスクがほとんどなくなるため、ビジネスとデータに集中することが可能となります。このサービスは、低速ディスクを使ったデータベースに完全に依存する代わりに、高速でかつ管理されたインメモリデータストアから情報を取得できるようにすることで、ウェブアプリケーションのパフォーマンスを向上させます。ElastiCache では、障害の発生したノードを自動的に検出し置き換えるため、セルフ管理型のインフラストラクチャに伴うオーバーヘッドが減少します。したがって、ElastiCache […]

Read More