Amazon Web Services ブログ

Category: Amazon DynamoDB

[AWS Black Belt Online Seminar] Amazon DynamoDB Advanced Design Pattern 資料及び QA 公開

先日 (2018/12/25) 開催しました AWS Black Belt Online Seminar「Amazon DynamoDB Advanced Design Pattern」の資料を公開しました。当日、参加者の皆様から頂いた QA の一部についても共有しております。 AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern from Amazon Web Services Japan AWS クラウドサービス活用資料集(すべての過去資料が閲覧できます) Q. 「時系列データが必要なアプリケーション」のスライドで GSIKey Rand(0-N) というのがありましたが、これはどのような目的がありますか? A. こちらにあるような形で、書き込み後の検索効率向上の為のテクニックになります。 今後の AWS Webinar スケジュール 直近で以下のオンラインセミナーを予定しています。各オンラインセミナーの詳細およびお申し込み先は下記URLからご確認いただけます。皆様のご参加をお待ちしております! AWS Black Belt Online Seminar 1月分申込先 ≫ Redshift Recently Features Update 2019 年 […]

Read More

2018 年に最もよく読まれた AWS データベースブログ

この記事では、私たちが 2018 年に掲載した AWS データブログ記事で、最もよく読まれた10本を紹介しています。このリストをガイドとして使って、まだ読んでいないデータベースブログに目を通す、または特に有益だと思った記事を読み返すことができます。

Read More

AWS データストア内の機密データを保護するためのベストプラクティス

このブログ記事では、データを保護する一般的なデータセキュリティパターンとそれに対応する AWS セキュリティコントロールに焦点を当てます。クラウド内の機密データを保護するための効果的な戦略を立てるには、一般的なデータセキュリティパターンをよく理解し、これらのパターンを明確にマッピングしてクラウドセキュリティコントロールに活かすことが必要です。

Read More

Amazon DynamoDB グローバルテーブルを使用してマルチリージョンアーキテクチャを強化する方法

この記事では、Amazon DynamoDB を使用して、複数の AWS リージョンにデプロイされたグローバルバックエンドのデータベースを強化する方法について説明します。ここでは DynamoDB グローバルテーブルを使用します。これは完全マネージド、マルチリージョンかつマルチマスターのデータベースを提供するもので、世界中のどこにいても低レイテンシーのデータアクセスをユーザーに提供できます。

Read More

DynamoDB グローバルセカンダリインデックスを使用してクエリのパフォーマンスを向上させ、コストを削減する方法

この記事では、グローバルセカンダリインデックスを使用してデータを照会し、アプリケーションのパフォーマンスを向上させ、毎月の DynamoDB 請求金額を削減する方法をいくつかご紹介します。最近、テーブルあたりのグローバルセカンダリインデックスの最大数が 5 から 20 に、制限が引き上げられました。そのため、今が DynamoDB の使用を最適化するためのグローバルセカンダリインデックスの使用方法を学ぶ恰好のタイミングです。

Read More

新しい Amazon DynamoDB キー診断ライブラリを使用して、アプリケーションのトラフィックパターンを視覚化および理解する方法

最もアクセスしたデータベース項目のグラフとダッシュボードを表示することを可能にする Amazon DynamoDB キー診断ライブラリを公開しました。このブログ記事では、主要な診断ライブラリを設定する方法を説明します。次に、ライブラリの視覚化を使用して、映画データベースの例で、不均一なアクセス分布のキーを特定する方法を説明します。

Read More

Amazon DynamoDB On-Demand – 事前のキャパシティプランニングが不要のリクエスト課金が可能になりました。

少し前まで、あなたのビジネスに合わせていつでもスケールし安定した低いレイテンシを提供するデータベースを作成することは困難でした。2012年にWerner VogelsがpostしたブログでAmazon DynamoDBがアナウンスされました。(これは私がAWSに入る数ヶ月前の事でした。)DynamoDBは2007年にAmazonが公表したDynamoの論文に基づいて設計されています。それから数年、多くの新機能がAWSの顧客が利用するデータベースを更に簡略化するために導入されました。今、フルマネージドかつマルチリージョン、マルチマスターデータベースとencryption at rest、point-in-time recovery、in-memory cachingなどの機能、そして99.99%のuptime SLAを提供しています。 Amazon DynamoDB On-Demand 今日我々はAmazon DynamoDB on-demand、事前のキャパシティプランニングが不要で1秒あたり数千リクエストのトラフィックにも対応が出来るフレキシブルな課金を実現する新しいオプションを案内します。DynamoDB on-demandはシンプルなpay-per-request課金モデルを提供しreadリクエストとwriteリクエストを使った分に応じて支払うだけになります。これによりシンプルなコスト計算とパフォーマンス管理を実現します。例えばtableにon-demanmd modeを適用すると、DynamoDBは即座に対応しワークロードに応じて以前に観測されたトラフィックレベルまで処理できるようにパフォーマンスを調整します。また新たなピークトラフィックが観測されたときはDynamoDBはワークロードに対応するために迅速に適応します。(翻訳者注: DynamoDBは内部的にパーテーションという概念で負荷を分散します。そのため一度拡張されたテーブルは内部的に何もしなくても拡張された状態を維持している事と、新たな負荷が発生したときも自動的に拡張して対応します。) DynamoDBのコンソールを見るとon-demand read/wriite capacity modeが新規テーブル作成時と既存テーブルのCapacityタブに追加されている事が確認出来ます。 on-demand modeを適用したTableは全てのDynamoDBの機能がサポートされ(例としてencryption at rest、point-in-time recovery、global tablesなど)、例外としてauto scalingはこのmodeでは無効になります。 on-demand modeが有効な状態でセカンダリインデックスを構築した場合も同じスケーラビリティと課金モデルが適用されます。セカンダリインデックスへも使った分だけお支払い頂き事前にキャパシティプロビジョニングする必要はありません。もしon-demand modeが有効なtableでread/writeリクエストが発生しなかった場合、支払う必要があるのはストレージ課金のみになります。 DynamoDBは予測困難なアプリケーショントラフィックへの対応や短期間で大きなスパイクが発生するワークロード、もしくはあなたのテーブルの使用率が平均では低い場合にとても有効です。例えば以下のようなユースケースです。 新たなアプリケーション開発時、もしくはワークロードが複雑で予測が困難な場合 pay-per-use な課金モデルのサーバレスサービスとの組み合わせ SaaSプロバイダやソフトウェアベンダーでシンプルかつリソース分離を必要とするようなアプリケーションを開発している on-demand modeへの変更は1日1回可能です。on-demandからprovisioned modeへの変更も可能です。 簡単にパフォーマンステストをやってみましょう では早速新たに作ったDynamoDB on-demand modeのtableに対して負荷テストを実施してみましょう。 私は2つのサーバレスアプリケーションを作ってみました。 1つ目のアプリケーションはAmazon API GatewayとAWS LambdaでHTTPインターフェイスによるDynamoDBに対してread/writeする処理を実装しています。 2つ目のアプリケーションはLambdaで1000個の並行に同時実行でランダムにHTTPメソッドを生成しendpointに各Itemに操作リクエストを生成するファンクションです。 全てのファンクションは同時実行数100でリクエストを実行し、終了するとすぐにまた別の100同時実行がスタートする処理を一分間行います。ランプアップするために必要な時間は無く、負荷の生成はフルスピードで実行されます!! DynamoDB コンソールのメトリクス tabから、ピーク時には5000request/secの負荷が流れていることとスロットリングが発生しないことをメトリクスから確認ができます。 サーバレスアプリケーションがscalingするか、API GatewayとLambdaとDynamoDBはフルマネージドで対応が出来ています。スループットやアプリケーションロジックに寄る課金の仕組みを計画する事はなく実現出来ました。 […]

Read More

新機能 – DynamoDB Transactions

Amazon DynanmoDBがローンチされてから多くのユースケースで使われてきました。microservicesやゲームなどのモバイルバックエンドシステム、IoTソリューションなど様々です。例えばCapital Oneのユースケースではモバイルアプリケーションから使われていたメインフレームの処理をサーバレスアーキテクチャに移行しレイテンシの軽減にもなりました。TinderはDynamoDBにゼロダウンタイムで移行し、世界中のユーザーのために必要なスケーラビリティを獲得しました。 開発者の多くはビジネスロジックの実装に複数のItemを操作し、all-or-nothingな結果を一つか複数のtableにまたがって行いたいと思う場面があると思います。要件によっては実装に不必要な複雑さが加わることがあります。今日、我々はこのユースケースに対応するためにDynamoDBにtransaction機能をネイティブサポートしました! Amazon DynamoDB Transactionsについて DynamoDB transactionsは開発者に原子性、一貫性、分離性、永続性(ACID)を保証した操作を一つか複数のテーブルに対して提供します。一つのAWSアカウントの単一リージョンで行います。アプリケーションからinsert、delete、updateを複数のアイテムに対して実施出来る事でビジネスロジックの操作を一回のリクエストで実行出来ます。DynamoDBは、複数のパーティショニングとテーブル間でトランザクションをサポートする唯一の非リレーショナルDBです。 TransacstionsはDynamoDBを利用してより広いワークロードに対してエンタープライズレベルでのbenefitとスケール、パフォーマンスをもたらします。多くのユースケースではすぐに簡単にtransactionsを利用することが可能です。例えば 金融取引 商品の受注から決済までの管理 マルチプレイヤーでの操作を提供するゲーム 複数のコンポーネントによる操作を行うシステム 2つ目にDynamoDBのオペレーションでどうtransactionsを扱うのか紹介します。 TransactWriteItems 書き込みを含む操作で利用します。一つか複数のPutItem、UpdateItem、そしてDeleteItemオペレーションをサポートします。TransactWriteItemsは指定した前提条件にマッチするかをチェックしてから更新することも可能です。これらの条件には書き込みセット内で同一Itemや異なるItemが含まれる場合があります。いずれかの条件が満たされない場合トランザクションはリジェクトされ失敗します。 TransactGetItems 読み込みを含む操作で利用します。一つか複数のGetItemオペレーションをサポートします。もしTransactGetItemsリクエストで対象となっているItemがTransactWriteItemsで書き込まれている最中は読み込みトランザクションはキャンセルされます。書き込みトランザクション処理前の値は取得可能なので通常の読み込み操作は可能です。 これらのトランザクションはユニークな10個のItemと最大4MBのデータ、条件付き書き込みがサポートされます。 この機能を利用してDynamoDBは、さまざまなアプリケーション要件を満たす複数の読み取りと書き込みのオプションを提供し、複雑なデータ駆動型ビジネスロジックを実装する開発者に大きな柔軟性を提供します。 3種類の読み込みオプション – 結果整合性の読み込み、強力な整合性のある読み込み、そしてトランザクションによる読み込み 2種類の書き込みオプション – 通常書き込みとトランザクションによる書き込み たとえば、仮想コインでアイテムを購入できるゲームを構築しているとします。 player tableでは、各playerは多数のコインと購入したアイテムの在庫を持っています。 itemsテーブルでは、各アイテムに価格が設定され、boolean値で使用可能(または使用不可)としてマークされます。 ゲーム内で商品を購入するフローの場合にアトミックトランザクション処理を実装出来ます。 始めに商品があるかを確認し、プレイヤーに必要な残高があるか確認する これらの条件が満たされている場合、商品を在庫無しに変更し所有者をプレイヤーに変更 支払ったアイテムをプレイヤーの持ち物リストに追加する JavaScriptを用いた例として、AWS SDK for JavaScript in Node.jsで例を見てみましょう。 data = await dynamoDb.transactWriteItems({ TransactItems: [ { Update: { TableName: ‘items’, Key: { id: […]

Read More

過去18ヶ月間で見逃した可能性のあるAmazon DynamoDBのハイライト

Amazon DynamoDB は、信頼性の高いパフォーマンスをあらゆる規模で提供できる非リレーショナルデータベースです。これは完全管理型マルチリージョンのマルチマスターデータベースで、レイテンシは一桁台のミリ秒単位の安定性です。また、ビルトインのセキュリティ、バックアップとリストア、およびメモリ内キャッシュを提供します。 このブログの投稿は、過去18ヶ月のDynamoDBハイライトを要約したものです。この記事を読んで、データベースの規模、パフォーマンス、そして可用性を改善させながら、所有者の総コスト(TCO)を削減してクラウド変革を促進する方法を学んでください。 1. DynamoDBなどのAWS独自のデータベースは、アプリケーションに理想的なツールを提供します ワークロードをクラウドに移行する際に、アプリケーション用に画一的なリレーショナルデータベースを実行するための、フリーサイズのすべてのアプローチが不要です。独自のデータベースを使用して、適切な仕事(アプリケーション)に適したツール(データベース)を選択し、非リレーショナルデータベースの基礎となるDynamoDBを選択できるようにします。 ワーナー・ヴォゲルス:AWS独自のデータベース(ブログ記事) AWS独自のデータベース戦略:適切な仕事に適したツール(ビデオ) AWS独自のデータベース戦略の適用 (ビデオ) 2. DynamoDBは過去18ヶ月間に多くの新機能を追加しました DynamoDBは、心配の無い暗号化、バックアップとリストア、Amazon DynamoDB Accelerator、Time To Live、そしてグローバルテーブルなどの機能を着実に開始しています。次のビデオを見るか、付属のプレゼンテーションのスライドを読んで、AmazonのDynamoDBの歴史と、皆さんが操作にではなくコードに集中することができるよう、私たちがどのように革新を続けて行くかを学んでください。 Amazon DynamoDBの新機能(ビデオ) Amazon DynamoDB の新機能 (デッキ) 3. DynamoDBは、99.999%のサービス水準合意(SLA)をご提供します。 AWSは稼働時間を考慮してDynamoDBを設計しました。2018年6月から、DynamoDBには99.999%の稼働率のSLAがあります。DynamoDB SLAの詳細をお読みください。 DynamoDBサービス水準合意(ウェブページ) 4. 適応能力により容量の計画がさらに簡単になります 不均一なアクセスパターンやワークロードに対して、DynamoDB適応能力により、アプリケーションは一貫したパフォーマンスで読み書きを継続できます。 Amazon DynamoDBの適応能力が不均一なデータアクセスパターンに対応する仕組み(または、なぜDynamoDBについて知っている情報が古くなっているのか)(ブログ記事) DynamoDB適応能力:入り組んだワークロードのためのスムーズなパフォーマンス(ビデオ) 5. ポイントインタイムリカバリーとオンデマンドバックアップを使用して、データベースのバックアップとリストアを自動化 DynamoDBは、今年初めに連続バックアップとポイントインタイムリカバリー(PITR)を開始しました。これらの機能を使用すると、過去35日間のデータベースを1秒あたりで自動的にバックアップおよびリストアすることができます。PITRを有効にするためのメンテナンスやコードは必要ありません。 Amazon DynamoDB連続バックアップとポイントインタイムリカバリー(ブログ記事) DynamoDBのオンデマンドバックアップとリストア(ドキュメンテーション) 6.グローバルテーブル:DynamoDBは、唯一のマルチリージョン、マルチマスターデータベースサービスです グローバルテーブルでは、DynamoDBは唯一のマルチリージョン、マルチマスターデータベースサービスです。グローバルテーブルを使用して、最も厳しいビジネスの継続性要件を満たすマルチレージンソリューションを実行できます。また、グローバルテーブルを使用して、世界中のどこからでもエンドユーザーに向けた低レイテンシのデータアクセスが可能になります。 Amazon DynamoDBアップデート – グローバルテーブルとオンデマンドバックアップ(ブログ記事) 7.顧客は、Cassandraなどの他のデータベースからDynamoDBに移行しています SamsungやGumGumなどの企業は、CassandraからDynamoDBに移行し、結果としてTCOを最大70%削減しました。おそらく、DynamoDBへの移行の最大のメリットは、データベースを稼動させ続けることではなく、ビジネス革新に集中できるようになることです。 Apache CassandraデータベースをAmazon DynamoDBに簡単に移行する(ブログ記事) SamsungはCassandraからDynamoDBへ1 PBを移行(ビデオ) Hosted CassandraからAmazon DynamoDBへの移行:年間60%のコスト削減へと飛躍(ブログ記事) 概要 この記事では、過去18ヶ月間の主要なDynamoDBのハイライトの一部が再度要約されています。DynamoDBの機能の詳細については、Amazon DynamoDBの機能をご参照ください。DynamoDBの使用を開始するには、DynamoDB入門をご参照ください。 著者について […]

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