Amazon Web Services ブログ

Category: Database

新しい edX コースで Amazon DynamoDB を使用した NoSQL データベース指向アプリケーションを構築する方法

 最近の組織は絶えずデータからより大きな価値を得る方法を探しており、そのことによりチームや個人が AWS クラウドでデータ指向のアプリケーションを構築する方法を理解することがますます重要になっています。 データ環境はさらに多くのクラウドベースのデータベースを含むように進化し続け、ますます多くの開発者がアプリケーションの特定のニーズを満たす専門的に構築された非リレーショナルデータベースを選択するようになっています。 データベースサービスをご使用のお客様は、必要なデータタイプ、アクセスモデル、そして拡張性に適したデータベースを評価して選択することが求められます。このために、この AWS トレーニングと認定がコースを設定して、Amazon DynamoDB の専門のデータベースサービスを使用する方法を教えてきました。 NoSQL データベースを詳しく説明する NoSQL データベースとそれらが解決する課題を詳細に説明するために、AWS トレーニングと認定は当社のデジタルトレーニングパートナーである edX Amazon DynamoDB: Building NoSQL Database-Driven Applications デジタルコースを独占的に提供します。このコースでは、バックアップと復元、セキュリティと暗号化、グローバルテーブル、そしてベストプラクティスを含むさまざまな Amazon DynamoDB のトピックを見ていきます。また、次のことについてもお教えします。 NoSQL データベースがリレーショナルデータベースと異なる点とそれらが解決する課題 DynamoDB テーブルのプロビジョニング、管理、およびインターラクトの方法 DynamoDB データベースのセキュリティを保護する方法 パーティションキーとスケーリングオプションを使用して、最適なパフォーマンスを確保する方法 このコースについて Amazon DynamoDB: NoSQL データベース指向のアプリケーションを構築することは、以前のアプリケーション開発と AWS マネジメントコンソールの経験で学習者と edX に関する AWS 開発者シリーズ を修了した方々に推奨した中程度のコースです。 4 週間のレッスンに分けて、1 週間あたり 2 時間から 5 時間の学習時間、12 時間のビデオベースの講義、デモ、および実践演習が想定されています。学習者は自分のペースと締め切りを設定できます。 毎週、学習者は自分の知識をテストするために、オプションのクイズにもアクセスすることもできます。 このオンデマンドコースは無料でご利用になれます。ただし、期限があります。検証済みの証明書を取得するため、またはコースの利用可能性を広げるために、学習者は edX の検証済みの証明書トラックに 99 USD の […]

Read More

Amazon Neptune で Streams、グラフ用 SPARQL フェデレ―テッドクエリなどの新機能がリリース

 最新の Amazon Neptune リリースでは、グラフによって開発者の生産性を強化する多数の新機能をご用意しました。本記事では、今回発表した重要機能と、それらを使用する際のヒントをまとめ、詳しくご紹介します。 開始方法 この新しいエンジンリリースは、既存のクラスターには自動適用されません。リリースノートに記載された手順に従って、既存のクラスターのアップグレードを選択することができます。または、エンジンの最新バージョンを受信する既存のクラスターのクローンを作成できます。 Amazon Neptune クラスターが現時点で存在しない場合は、バージョン 1.0.1.0.200463.0 のデータベースを作成します。Neptune Streams は、テストする前にラボモードで有効化する必要があります。Neptune では、お客様からのフィードバックに基づいて、初期段階の機能をプレビュー版としてリリースしています。実際のユースケースで試験使用、検証することができます。そうしたプレビュー版機能は今後のリリースで製品化されるまではラボモードです。ラボモードでは、neptune_lab_mode クラスターパラメータを使用して、Neptune エンジンの実験機能を有効 (または無効) にできます。ラボモードの設定には、AWS コンソールまたは CLI を使用します。 AWS コンソール Neptune 用 AWS コンソールで、左側のナビゲーションメニューから [パラメータグループ] を選択します。Neptune クラスターに関連付けられたクラスターパラメータグループに移動し、[パラメータの編集] を選択します。 neptune_lab_mode パラメータでは、以下を追加して、ストリームおよびトランザクションのセマンティクスを有効にします。 Streams=enabled, ReadWriteConflictDetection=enabled AWS CLI コンソールではなく CLI を使用して、クラスターパラメータグループの値をチェックし、ラボモードのパラメータを設定することもできます。次の 2 つのコマンドをそれぞれに使用します。 aws neptune describe-db-cluster-parameters –db-cluster-parameter-group-name my-test-param-group –region us-east-1 aws neptune modify-db-cluster-parameter-group –db-cluster-parameter-group-name my-test-param-group […]

Read More

Amazon DynamoDB での優先度付きキューの実装

 キューイングは、分散処理システムで計算コンポーネントを分離するために一般的に使用されるソリューションです。これは、サーバーレスおよびマイクロサービスアーキテクチャで使用する非同期通信システムの形式です。メッセージは処理のためにキューで待機し、1 人のコンシューマーが受信するとキューから出ます。このタイプのメッセージングパターンは、ポイントツーポイント通信と呼ばれます。 この記事では、他の大規模なキューイングシステムで行うように、Amazon DynamoDB テーブルのいずれかを、エンキュー (メッセージをキューに配置) とデキュー (メッセージを読み取り、キューから削除) が行えるキューに変換する方法について説明します。 DynamoDB は、任意の規模で 1 桁のミリ秒のパフォーマンスを実現するキーと値のドキュメントデータベースです。これは、モバイル、ウェブ、ゲーム、広告技術、IoT、および大規模で低レイテンシーのデータアクセスを必要とするその他のアプリケーションに使用できる、サーバーレスで完全マネージド型のサービスです。 永続性、単一メッセージ処理、および分散コンピューティングを提供する多くのキュー実装があります。一般的なキューイングソリューションには、Amazon SQS、Amazon MQ、Apache ActiveMQ、RabbitMQ、Kafka などがあります。これらのサービスは、実装方法、スケーリング、パフォーマンスなど、いくつかの異なる特性を持つさまざまなキュー機能を処理します。 ただし、キューシステムのほとんどは、アイテムがキューに到着した後、アイテムの順序を簡単に変更することはできません。DynamoDB で議論された実装は、処理前にキュー内の順序を変更したり、アイテムをキャンセルしたりできます。 この記事では、DynamoDB のキューイングシステムの重要な側面についても説明します。たとえば、アイテムの優先度の変更、メッセージごとに 1 人のコンシューマーのみの許可、処理成功時のメッセージの削除、メッセージ処理の順序の保証方法、例外の処理方法などです。 通常のキューと優先度付きキュー キューは、アイテム (メッセージ) のコレクションを順番に保持する線形データ構造を定義する抽象データ型です。1 人のコンシューマーは、個々のメッセージを 1 回だけ処理します。最も一般的なキューイング方法の 1 つは、先入れ先出し (FIFO) 構造です。この構造では、新しいアイテムがキューの最後に結合し、キュープロセスは前 (ヘッド) から順番に処理されます。 この記事では、キュー内のメッセージをメッセージの特性でソートする機能を追加することにより、典型的なメッセージキューの実装を強化する方法を示します。これは、優先度付きキューとして知られています。 優先度付きキューでは、各アイテムにキュー内の優先度を定義する追加の属性があります。優先度が変わると、キュー内のアイテムの順序が変わります。優先度付きキューは、ヒープと呼ばれる構造を頻繁に使用するか、自己バランスツリーを使用します。 DynamoDB は、アイテム (レコード) を動的に並べ替えるためにグローバルセカンダリインデックス (GSI) を使用します。キュー項目が表示されている (まだ処理されていない) 限り、キュー内の項目の順序を変更できます。 ソリューションのアーキテクチャ この記事では、DynamoDB のテーブルを使用するマイクロサービスがあるシナリオを使用します。この記事では、キューイングの主なアイデアを説明するために、仮想アプリケーションオブジェクトであるシップメントも紹介します。倉庫内のすべてのアイテムを見つけて、発送の準備ができていることを確認するまで、シップメントを発送できません。シップメントの準備ができたら、それをマークし、ダウンストリーム処理のために FIFO キューに入れることができます。キューでは、アイテムのタイムスタンプが優先度属性として使用されます。 次の図は、このワークフローを示しています。 この記事のアーキテクチャは比較的単純です。JSON […]

Read More

【開催報告】Amazon Analytics 事例祭り – データウェアハウスマイグレーション

こんにちは。アマゾン ウェブ サービス ジャパン株式会社 ソリューションアーキテクトの平間です。 9月24日に、「Amazon Analytics 事例祭り – データウェアハウスマイグレーション」を開催いたしました。今回は既存のデータウェアハウス(DWH)環境から、AWSの高速かつ完全マネージド型のDWHであるAmazon Redshiftへ移行されたお客様に、移行の決め手や移行後の効果について「本音」でお話ししていただきました。セミナーは前半がAWSソリューションアーキテクトからAWSのデータレイク及びアナリティクスサービスの概要と、DWHの移行をどのように検討すればよいかの方法をお話させていただき、後半はお客様より移行時の体験談をお話しいただいております。

Read More

Amazon Relational Database Service (RDS)とAmazon AuroraのSSL/TLS 証明書のアップデートについて

Amazon Relational Database Service (RDS)/Amazon Auroraをご利用のお客様に対し、「SSL/TLS 証明書のアップデートについて」のご案内をお送りさせていただいております。こちらは、現在RDSにて利用しているSSL/TLS 証明書が期限を迎えるため、新しいSSL/TLS 証明書へ更新が行われるという通知となっています。 SSL/TLS 証明書更新に際して、お客様よりよく頂くご質問を以下にまとめましたので、ご確認をお願いいたします。   Q: SSL/TLS 接続を使用している場合、CA 証明書をアップデートする必要がありますか? はい、もしお客様が CA 証明書をアップデートしなかった場合、SSL/TLS 接続ができなくなります。CA 証明書のアップデートは 2020 年 3 月 5 日までに完了する必要があります。AWS では、CA 証明書のアップデートによる影響のテストや対応のための時間を確保するために、2020 年 2 月 5 日までにアップデートを完了していただくことを強くお勧めしております。 Q: CA 証明書のアップデートを 2019 年 10 月 31 日までに完了させる必要がありますか?最終期限はいつになりますか? 2019 年 11 月 1 日以降、お客様が新たに DB インスタンス (Amazon RDS DB インスタンス、Amazon […]

Read More

DataSunrise Security を使用して Amazon Redshift の PII データを保護および監査する

 DataSunrise は、自社の説明によると、各種のデータベースのためのデータマスキング (動的および静的マスキング)、アクティビティモニタリング、データベースファイアウォール、および機密データ検出を含む、幅広いセキュリティソリューションを提供するデータベースセキュリティソフトウェア企業です。目標は、外部および内部の脅威と脆弱性からデータベースを保護することです。お客様はしばしば、DataSunrise Database Security を選択します。これは、Amazon Redshift、Amazon Aurora、すべての Amazon RDS データベースエンジン、Amazon DynamoDB や Amazon Athena など、AWS で実行するさまざまなデータベースエンジンを保護するときに、統一された制御とシングルユーザーエクスペリエンスを提供するからです。DataSunrise Security Suite は、Amazon Redshift の PII データを保護および監査できるツールのセットです。 DataSunrise は、アクティブなデータとデータベースセキュリティに加えて、データ監査によるパッシブなセキュリティを提供します。アクティブなセキュリティは、機密データへの不正アクセスの防止、疑わしい SQL クエリのブロック、SQL インジェクション攻撃の防止、またはリアルタイムでのデータの動的なマスキングと難読化などの事前定義されたセキュリティポリシーに基づいています。DataSunrise は、高可用性、フェイルオーバー、および Auto Scaling を備えています。 この記事では、Amazon Redshift のアクティブなセキュリティ、特に個人情報 (PII) のマスキングとアクセス制御に関する DataSunrise の機能に焦点を当てています。これは、機密情報へのアクセスの監査など、DataSunrise のパッシブなセキュリティ機能でバックアップできます。この記事では、Amazon Redshift の DataSunrise セキュリティ、その仕組み、および開始方法について説明します。 Amazon Redshift にアクティブなセキュリティが必要な理由 Amazon Redshift は、世界中で 15,000 を超えてデプロイされた、完全マネージド型のペタバイト規模のデータウェアハウス (DW) […]

Read More

大規模な Amazon DynamoDB テーブルに適切なシャード数の選択

一般的な設計のベストプラクティスとして、アプリケーションをテーブル内のすべての論理パーティションキーとインデックス全体での均一な読み込みと書き込みアクティビティのために設計することによって、Amazon DynamoDB のスループットキャパシティーを最大限に活用することができます。このような設計により、テーブルのキャパシティーを過剰に消費する可能性があるホットパーティションの発生を防ぐことができます。 書き込みアクセスをパーティション全体に均等に分散させる 1 つの方法は、パーティションキースペースを拡大させることです。この戦略は、パーティションキーに追加のサフィックスを付加して、基盤となるパーティション全体での配分を向上させるもので、書き込みシャーディングと呼ばれます。 しかし、このアプローチは、いくつかの興味深い設計面での疑問を生じます。いつシャーディングを検討すればよいのか? パーティションキーごとに何個のシャードを作成するべきなのか? シャードをいつ作成するのか? シャード数をスケールするにはどうすればよいのか? シャーディングは読み込みおよび書き込みパターンにどのように影響するのか? この記事では、複合プライマリキー (パーティションキーとソートキー) が存在する DynamoDB テーブルのための動的な書き込みシャーディングのメカニズムを説明します。このメカニズムは、書き込みスループットの需要の増加に基づいてパーティションキーに新しいシャードを臨機応変に追加することによって、DynamoDB テーブルの書き込みキャパシティーを最適化できるようにしてくれます。 パーティション、キー、および書き込みシャーディング DynamoDB は水平分散されたワークロードで能力を発揮します。DynamoDB はテーブルを作成するときに、プロビジョンドスループット要件に対応するために十分なパーティションをテーブルに割り当てます。作成時、DynamoDB はテーブルのキャパシティーを基盤となるパーティション全体に均等に分散します。DynamoDB は、テーブルが作成された後で追加のパーティションをテーブルに割り当てることもあります。詳細については、「パーティションキーを効率的に設計し、使用するためのベストプラクティス」と「パーティションとデータ分散」を参照してください。 DynamoDB は、パーティションに項目を分散するために一貫した内部ハッシュ関数を使用し、DynamoDB が項目を保存するパーティションは項目のパーティションキーによって決定されます。同一のパーティションキーを共有する項目のグループ (コレクションと呼ばれます) は、コレクションがパーティションのストレージ容量を超える場合を除き、同じパーティションにマップされます。 さらに、単一のパーティションが複数のコレクションに関連付けられた項目を保持する場合があります。同じパーティションにマップされた 1 つ、または複数のコレクションに対する過剰な書き込みアクティビティは、ホットパーティションの原因になります。ホットパーティションとは、集中的な読み込みおよび書き込みアクティビティが、パーティションのプロビジョンドキャパシティー、またはパーティションの最大キャパシティーを超え、キャパシティーエラーを生じる場合のことです。 これらのキャパシティーエラーは、プロビジョンドキャパシティーモデルにおける ProvisionedThroughputExceededException、およびオンデマンドキャパシティーモデルにおける InternalServerError によって識別されます。同じコレクションの項目が同じ基盤となるパーティションにマップされるため、これらのキャパシティーエラーは大規模なコレクションで発生する可能性が高くなります。詳細については、「エラー処理」および「読み込み/書き込みキャパシティーモード」を参照してください。 書き込みシャーディングとは、コレクションを効率的に DynamoDB テーブルのパーティション全体に分散させるメカニズムです。これは、パーティションキーに対する書き込み操作を複数のパーティションに分散させることによって、パーティションキーあたりの書き込みスループットを向上させます。このため、個々のパーティションキーの書き込みスループットが基盤となるパーティションのキャパシティーを超過してもよくなり、DynamoDB のパーティションレベルでのキャパシティーエラーが最小限に抑えられます。 さらに、書き込み操作を DynamoDB のパーティション全体に分散させることによって、パーティションのキャパシティーがより均等に使用されます。これはテーブルのキャパシティーのより効率的な使用につながり、コストが削減されます。 書き込みシャーディングは、パーティションキーにシンプルな値のサフィックスを付加することによって、クライアント側から実装することができます。サフィックスの付加による書き込みシャーディングは、パーティションキーに対する 1 バイトの変更でさえも内部ハッシュ関数での異なる出力の生成につながり、項目を異なるパーティションに置くために効率的です。詳細については、「書き込みシャーディングを使用してワークロードを均等に分散させる」を参照してください。 DynamoDB は、一時的な需要のバーストを緩和するバーストキャパシティー、および不均等なアクセスパターンに合わせてパーティション間のキャパシティーを再利用するアダプティブキャパシティーの機能をネイティブに提供します。書き込みシャーディングは、DynamoDB のパーティション全体にトラフィックを均等に分散させるための補完的なメカニズムです。 事前に設定された数のシャードを使った書き込みシャーディングの例 シャーディングすると良いテーブルの例は、ファイルシステムの監査ログです。ここでのパーティションキーはファイルパス、ソートキーはアクセスタイムスタンプになります。このファイルの人気が極度に上がり、頻繁に共有されるようになった場合、単一の DynamoDB パーティションが過剰な数の書き込みリクエストを受けます。 以下の表は、3 つの異なるシャーディングスキームに出現する同一の項目を示しています。 最初のメソッドでは、データが […]

Read More

Amazon Aurora PostgreSQL から通知を送信する

企業のお客様は、Amazon Aurora PostgreSQL データベースで多くの日々のバッチジョブを実行し、そのようなジョブを完了した後にアクティビティを追跡するためにメールやテキストなどの通知方法が必要です。Aurora PostgreSQL はマネージドサービスであるため、セキュリティ上の理由から pgsmtp や pgplpythonu などのデータベース拡張機能へのアクセスを制限しています。これにより、他の自動メッセージングの手段で通知を送信するデータベースの必要性が高まります。 この記事では、組織が定期的にビジネス検証のために従業員の情報をプルし、ジョブの完了後に通知を必要とするシナリオを使用します。この記事では、Python を使用してサンプルジョブを作成し、AWS Lambda と Amazon SNS を使用して、E メールまたはテキストメッセージで通知する方法を示します。 前提条件 このソリューションには以下が必要です。 適切な AWS のサービスにアクセスできる有効な AWS アカウント。 Aurora PostgreSQL データベース。詳細については、「Amazon Aurora DB クラスターの作成」を参照してください。 VPC の外部に通知を送信するための、SNS の VPC エンドポイント。詳細については、「Amazon SNS の Amazon VPC エンドポイントの作成」を参照してください。 データベースに接続するための pgadmin または PSQL Client ツールなどのクライアントツール。 AWS Secret Manager にすでに設定および保存されているデータベースパスワード。詳細については、「AWS Secrets Manager とは」を参照してください ソリューションアーキテクチャ […]

Read More

Amazon RDS で詳細なバックアップストレージ請求をサポート開始

 最近、AWS は、Amazon RDS の詳細なバックアップストレージ請求機能を一般提供することを発表しました。この機能は、PostgreSQL、MySQL、MariaDB、Oracle、および SQL Server データベースのエンジンに適用されます。この機能がリリースされる前の Amazon RDS バックアップ料金は、毎月の請求書のリージョンごとに単一行の項目として提示されていました。ただし、毎日の自動データベースバックアップと手動 DB スナップショットの両方による Amazon RDS バックアップ請求料金の内訳は理解が困難でした。今後は、AWS Cost Explorer および Cost and Usage Report (CUR) で、コストアロケーションタグに基づいて Amazon RDS バックアップストレージの請求を表示できます。 このブログ投稿では、Amazon RDS データベースインスタンスにタグ値を設定し、コストアロケーションダッシュボードでこれらのタグをアクティブにし、AWS Cost Explorer と CUR で詳細なバックアップストレージ請求コストを表示する方法を示します。 設定 AWS マネジメントコンソールにログインしたら、Amazon RDS バックアップストレージ請求を表示するように設定するために、簡単なステップがいくつか必要です。DB インスタンスに既にタグが付いている場合は、RDS コンソールから、または AWS Cost Explorer から直接開始できます。 ステップ 1: Amazon RDS コンソール、AWS CLI、または API を介して […]

Read More

AWS Step Functions および AWS Glue を使用した Amazon Redshift ベースの ETL ワークフローのオーケストレーション

 Amazon Redshift は、ペタバイト規模の完全マネージド型クラウドデータウェアハウスサービスで、現在お使いのものと同じ SQL ベースのツールとビジネスインテリジェンスアプリケーションを使用した迅速なクエリパフォーマンスを提供します。お客様の多くは、既存の SQL ベースのスクリプトを素早く移行するために既存の SQL 開発者スキルセットを使用する ETL (抽出、変換、ロード) エンジンとして Amazon Redshift を利用しておられると共に、Amazon Redshift が完全に ACID 対応であることから、ソースデータシステムからの変更データを統合するための効率的なメカニズムとしても利用しておられます。 この記事では、AWS Step Functions および AWS Glue Python Shell を使用して、完全にサーバーレスな方法でこれらの Amazon Redshift ベースの ETL ワークフローのタスクをオーケストレーションする方法をご紹介します。AWS Glue Python Shell は、SQL クエリを送信して応答を待つといった小規模から中規模の ETL タスクを実行するための Python ランタイム環境です。Step Functions は、一連の ETL タスクを簡単に実行して監視できるように、複数の AWS サービスをワークフローにまとめることを可能にします。AWS Glue Python Shell と Step Functions […]

Read More