Amazon Web Services ブログ

Category: Database

AWS AppSyncキャッシングとAmazon DynamoDBトランザクションのサポートによりGraphQL APIのパフォーマンスと一貫性が更に向上します

AWS AppSyncはGraphQLのマネージドサービスで、単一または複数のデータソースのデータに安全にアクセスしたり、操作したり、結合するための柔軟なAPIを作成でき、アプリケーション開発をシンプルにすることができます。多くの場合、異なったデータソースは異なったユースケースに合わせて最適化され、データが配信されるスピードも異なっていることでしょう。その基になるGraphQLスキーマで定義されているデータフィールドもかなり多様です。

Read More

RDS および Aurora PostgreSQL ログの操作: パート 2

このシリーズの最初の投稿である RDS および Aurora PostgreSQL ログの操作: パート 1 では、PostgreSQL のログの重要性と、より多くのデータベースアクティビティの詳細情報をキャプチャするためのさまざまなパラメータを調整する方法を記載しています。PostgreSQL ログは、データベースの問題を解決するのに役立つ情報を提供します。この投稿は、PostgreSQL ログにアクセスするためのさまざまな方法に焦点を当てています。 PostgreSQL ログはクラスターの各インスタンスに生成および保存されます。これらのログファイルにアクセスする方法は複数あります。以下のセクションでは、これらの方法をいくつか説明します。 AWS マネジメントコンソールにアクセスする PostgreSQL ログファイルにアクセスするための最も直接的な方法は、AWS Management Console を介して行います。以下の手順を実行します。 Amazon RDSを開きます。 RDS/Aurora インスタンスを選択します。 [ログとイベント] を選択します。 [Logs] で必要なログファイルを選択します。 [View]、[Watch]、または[Download]のいずれかを選択します。 以下のスクリーンショットは、[Logs] セクションのプレビューです。 これは、ログファイルを表示またはダウンロードするための最も基本的な方法です。 CloudWatch Logs にログファイルを発行する RDS および Aurora PostgreSQL は、Amazon CloudWatch Logs へのログの発行をサポートしています。詳細については、RDS ユーザーガイドの「PostgreSQL ログの Amazon CloudWatch Logs への発行」を参照してください。 ログが CloudWatch Logs の場合、アラームを作成し、リアルタイム分析を行うことができます。たとえば、log_statements を […]

Read More

RDS および Aurora PostgreSQL ログの操作: パート 1

PostgreSQL は最も人気のあるオープンソースのリレーショナルデータベースシステムの 1 つです。30 年以上におよぶ開発作業を経ている PostgreSQL は、多数の複雑なデータワークロードを処理できる、信頼性が高く堅牢なデータベースであることが証明されています。AWS は 2 つのマネージド型 PostgreSQL オプションを提供しています。Amazon RDS for PostgreSQL と Amazon Aurora PostgreSQL です。デバッグやモニタリングのためのデータベースアクティビティログをどのようにキャプチャするのかという質問が、新規の PostgreSQL ユーザーから多く寄せられます。この記事では、RDS および Aurora PostgreSQL を設定して追加のエンジンログを生成する方法について説明します。記事の第 2 部である RDS および Aurora PostgreSQL ログの操作: パート 2 では、これらのログファイルにアクセスする方法をご紹介します。 PostgreSQL は、データベース管理者 (DBA) に役立つ情報を含むイベントログを生成します。デフォルトでは、SQL クエリエラー、ログイン試行の失敗、デッドロックがデータベースログにキャプチャされます。これらのエラーメッセージはアプリケーションのさまざまな問題の特定に役立ちます。たとえば、レガシーアプリケーションを Oracle から PostgreSQL に変換すると、一部のクエリが PostgreSQL 構文に正しく変換されないことがあります。こうした誤った形式のクエリによってログにエラーメッセージが生成されるため、問題のあるアプリケーションコードを特定するのに役立ちます。 デフォルトのログ記録を使用するだけでなく、PostgreSQL ログ記録パラメータに変更を加えれば、パフォーマンスの低下やセキュリティ監査などの問題を特定、解決するのに役立つ情報を取得できます。このログ記録パラメータを設定すると、接続と切断、スキーマ変更クエリ、すべてのスロークエリとその時間、ロックのため待機中で時間がかかるクエリ、一時的なディスクストレージを消費するクエリ、リソースを消費するバックエンド自動バキュームプロセスなどの情報をキャプチャできます。 このログ情報は、データベース使用中の潜在的なパフォーマンスと監査の問題をトラブルシューティングするのに有用です。この記事では、このログ記録の有効化とその利点について詳しく説明します。 DB パラメータグループ RDS および Aurora […]

Read More

新しいサーバーレスアプリ作成機能で CI/CD も作成した、その後…

本記事は「新しいサーバーレスアプリ作成機能で CI/CD も作れます」のその後のステップとして記述しています。まだその記事を見ていない方は、まずはそちらをご覧ください。以下は、その機能で、テンプレートとして Serverlerss API backend を選択し、プロジェクトリポジトリとして CodeCommit を作成された結果を元に説明しています。CI/CD や CodeCommit をよくご存知の方は読み飛ばしていただいて構いません。 実行テスト 作成されたアプリケーションは、何も変更しなくてもすでに実行できる状態にあります。 例えば、ターミナルなどから以下のコマンドを実行してみてください(なお、下記のように日本語を含むデータで実行する場合は、ターミナルの文字コード設定が UTF-8 であることを確認ください)。 curl -d ‘{“id”:”001″,”name”:”テスト”}’ -H “Content-Type:application/json” -X POST https://<<API EndPoint>> DynamoDBのコンソールをみると、新しいデータが登録されることがわかります。もちろん、好みの REST API テストツール(ブラウザプラグインなど)を使っても構いません。 構成の確認 生成されたアプリケーションで、API 定義、Lambda 関数がどのように定義されているかを見るのは、サーバーレスを始めたばかりの開発者には参考になるかと思います。例えば、API Gateway の構成を見てみると、以下のように設定されていることがわかります。 名称で想像できる通り、3つの関数は、全件検索、データの書き込み、特定 ID のデータの取得のための処理であり、それらが対応する API に紐づけられています。この 3つの処理はよく使われる典型的なものですので、そのコードは、多くの処理で参考になるでしょう。 コードの編集 テンプレートベースのサーバーレスアプリ作成機能で設定された Lambda 関数がどういうものか、コンソールから確認してみましょう。作成したサーバーレスアプリケーションへ Lambda コンソールからアクセスし、その中のリソースのセクションを見ると Lambda Function タイプのものが作成されていることがわかります。 ここにあるリンクをクリックすれば、それぞれの Lambda 関数の画面に飛びますが、そのコードは表示されず、「インラインコード編集を有効にできません」と表示される場合があります。生成されたコードはどこにあるのでしょう? もう一度、Lambda […]

Read More

S3_INTEGRATION を使用して Amazon RDS for Oracle を Amazon S3 と統合する

Amazon RDS for Oracle では、マネージドサービスソリューションのあらゆる利点を活用できます。リフトアンドシフトアプローチを使用してレガシー Oracle データベースを Amazon RDS for Oracle に移行すると、既存のアプリケーションコンポーネントをリファクタリングしたり変更したりする必要性を減らすことができます。 データウェアハウス (DW) 抽出は、ほとんどのデータベースにおいて不可欠な部分です。データベースのホストと社内データベース用 DW サーバーとの間で、ネットワークファイルシステム (NFS、Network File System) などの共有ファイルシステムに抽出ファイルを保持するのが一般的な方法です。 DW ロード用の共有ファイルシステムを使用してオンプレミスの Oracle から Amazon RDS for Oracle への移行を行う際には、既存の共有転送メカニズムがスムーズに移行できるかという点に特に注意する必要があります。そのことを念頭に置いて、AWS は 2019 年 2 月に、Amazon S3 統合により Amazon RDS for Oracle を強化しました。このオプションにより、Amazon RDS for Oracle Database を Amazon Simple Storage Service (Amazon S3) にシームレスに統合することができます。 この記事では、アプリケーションホストとAmazon […]

Read More

2019 年 11 月 11~15 日までの Amazon DynamoDB のローンチのまとめ

Amazon DynamoDB は、先週 6 つの主要なローンチを行いました。この投稿では、各ローンチの概要を記載しており、すべての新情報を知るのに役立ちます。これらのローンチには、利用可能リージョンの拡大および機能の更新を含みます。これらのローンチについて質問がある場合は、Twitter で@DynamoDB までメッセージをお送りください。 11 月 11 日 (月) Amazon DynamoDB Accelerator (DAX) が欧州 (ロンドン) および欧州 (パリ) の各リージョンで利用可能に DAX が欧州 (ロンドン) および欧州 (パリ) の各リージョンで利用可能になりました。これらの AWS リージョンでは、マイクロ秒のレイテンシーを必要とするアプリケーションのために、Amazon EC2 R4 および T2 インスタンスタイプを用いて、DAX クラスターを作成できます。DAX は、完全に管理された、高可用性のインメモリキャッシュを Amazon DynamoDB に提供します。これにより、DynamoDB からの読み取りを最大 10 倍加速でき、毎秒 100 万リクエストの速度も可能となります。 11 月 12 日 (火) NoSQL Workbench for Amazon DynamoDB がDynamoDB […]

Read More

Redshift コンソールを使用して、Amazon Redshift クラスターの管理を簡素化する

Amazon Redshift は、最も人気があり、最速のクラウドデータウェアハウスです。管理者が Amazon Redshift クラスターを作成、設定、管理するためのコンソールが含まれています。新しい Amazon Redshift コンソールは、ユーザーインターフェイスを刷新し、クラスターとクラスターで実行されるワークロードの管理を改善するためのいくつかの機能を追加します。 新しい Amazon Redshift コンソールには、次の利点があります。 統合されたダッシュボードからのクラスターの正常性とパフォーマンスの可視性。 複数の画面とフローを合理化し、いくつかの日常業務のクリック数を減らすことにより、クラスターの管理を簡素化。 ユーザークエリを監視し、クラスタパフォーマンスメトリクスと相関させる機能を追加することにより、クエリのパフォーマンスの平均診断時間に関する問題を改善。 この記事では、新しいコンソールを使用して最初のクラスターを作成し、AWS アカウントでクラスターを管理および監視する方法について説明します。 前提条件 新しい Amazon Redshift コンソールを使用して最高のエクスペリエンスを得るには、次の前提条件を満たしていることを確認してください。 AmazonRedshiftFullAccess を使用している場合、アクセス許可を変更する必要はありません。AmazonRedshiftFullAccess は、AWS アカウントのすべての Amazon Redshift リソースへのフルアクセスを許可します。 カスタムポリシーを使用している場合、AmazonRedshiftFullAccess をアタッチするか、次のコードを IAM ユーザーのポリシーに追加します。 { “Version”:”2012-10-17″, “Statement”:[ { “Action”:[ “cloudwatch:ListMetrics”, “cloudwatch:GetMetricWidgetImage”, “cloudwatch:GetMetricData”, “tag:GetResources”, “tag:UntagResources”, “tag:GetTagValues”, “tag:GetTagKeys”, “tag:TagResources”, “iam:ListRoles” ], “Effect”:”Allow”, “Resource”:”*” } ] } また、クラスターを最新のメンテナンスパッチにアップグレードする必要があります。 […]

Read More

AWS での安全でスマートなコネクテッドマシンの実行

 この記事は、Konecranes 社のプラットフォームアーキテクトである Henri Gort 氏と、同社のデータレイクソフトウェアエンジニアである Mehmet Yalcinkaya 氏によるゲスト投稿です。彼ら自身の言葉を借りると、「Konecranes は世界をリードする Lifting Businesses™ のグループで、製造およびプロセス業界、造船所、港湾、およびターミナルなどの幅広いお客様にサービスを提供しています。『Konecranes』という言葉には、マシンを意味するフィンランド語の『Kone』と『cranes』が含まれいますが、実際のところ、私たちは生産性を向上させるリフティングソリューションだけでなく、あらゆるメーカーのリフティング装置へのサービスも提供しています。当社は、50 か国に約 16,000 人の従業員を抱えています」とのことです。 この記事では、Konecranes 社が産業用マシンのインテリジェンスとセキュリティを向上させるために、マシンに取り付けられたセンサーからの数十億もの記録をどのように利用しているかが説明されています。 データレイクの作成 まず、私たちは当社のセンサーデータを SQL Server から AWS に移行させました。これは、バッチ ETL プロセスをオンザフライで実行しながら、Amazon S3 および Amazon DynamoDB に SQL からデータを効率的に移動させるためにサーバーレスの AWS Glue サービスを使用して、データレイクを作成することによって実現されました。ETL プロセスは複数のクレーンの履歴データの集合体を対象とし、それらを整合されたデータ構造に統合することで、DynamoDB でマシンの KPI を導くデータをマイニングし、運用のデータを検証しました。 DynamoDB は、運用データを保存するために最適なデータベースです。DynamoDB のスケーリングし、データトラフィックのスパイクに対応する能力と、全体的なパフォーマンスは、Microsoft SQL Server 上の以前のデータベースアーキテクチャをはるかにしのぎます。移行以来、当社のデータベース速度が向上し、データベースの管理コストが低減されました。 AWS Glue の選択 ETL プロセスのための AWS Glue の導入は、複数のメリットを提供してくれました。 […]

Read More

Neptune Streams を使用したグラフの変化の取り込み

 多くのアプリケーションは、Amazon Neptune データベースに保存された項目の変更を、その変更が発生した時点で取り込む機能を利用することができます。Amazon Neptune は、Neptune Streams をサポートするようになりました。これは、Neptune のフルマネージド機能で、グラフに対するすべての変更を、発生順に確実にログに記録し、HTTP REST API を介してこれらの変更を利用可能にします。Neptune Streams は現在、ラボモードで利用可能です。 このブログ投稿では、Neptune Streams 機能を見直し、Neptune が提供するポーリングフレームワークを使用して Neptune と Amazon ElastiCache for Redis データストアを統合するストリームベースのアプリケーションをプロビジョニングし、この同じポーリングフレームワークを使用して独自のストリームベースのグラフアプリケーションを構築する方法を説明します。 Neptune Streams の概要 Neptune Streams を使用して、次のことを行うことができます。 ソース Neptune データベースから別の Neptune データベースに変更をレプリケートする ソース Neptune データベースから、Amazon DynamoDB または Amazon Aurora などの別のデータベースに変更をレプリケートする ソース Neptune データベースの変更を Amazon S3 にアーカイブする Amazon Elasticsearch でソース Neptune データベースで変わるコンテンツをインデックス作成する […]

Read More

Amazon DynamoDB で機密データを保護するためのベストプラクティスの適用

 このシリーズの最初の記事であるAWS データストア内の機密データを保護するためのベストプラクティスでは、いくつかの一般的なセキュリティの概念と、AWS データストアに適用できる AWS セキュリティコントロールについて説明しました。これらを使用して、データに関わるセキュリティ体制をより強固にすることができます。2 番目の記事であるAmazon RDS で機密データを保護するためのベストプラクティスの適用では、こうした概念を Amazon RDS データベースで実装する方法を示しました。この 3 番目であり、最後の記事では、これらの概念を Amazon DynamoDB で実装する方法を示します。 データの分類とセキュリティゾーンモデリング 処理しているデータと処理に関する特定の要件を理解することは重要です。こうした要件は規制であったり、組織の一部として内部的に作成される場合があります。たとえば、この記事で後述するように、データのトークン化などの特殊なセキュリティコントロールの一部は必要ではないかもしれません。常にセキュリティの水準を引き上げようとする必要がありますが、十分に理解してリスクを管理するために適切なコントロールを提供していることも確認してください。 セキュリティゾーンを設計したら、この記事で後述するように、ネットワークアクセスコントロールリスト (ACL) を使用して実装します。この手順では、ネットワークゾーンを粗く定義し、セキュリティグループを使用してこれらのゾーン内でより具体的なマイクロセグメンテーションを許可します。 セキュリティゾーンモデリングを実装するときは、ネットワーク設計を慎重に検討します。CIDR 範囲のサイズによって、各サブネットが表現できる IP アドレスの数が決まります。サブネット内の増加 (より多い IP アドレス) とサブネット数の増加をサポートできるように、CIDR 範囲を設計します。Amazon VPC とオンプレミスのデータセンター間、または VPC 間に矛盾のない IP アドレススペースを確保するための要件とバランスを取ります。詳細については、AWS 単一 VPC の設計を参照してください。 ここで提供されている詳細な説明、およびデータ分類とセキュリティゾーンモデリングの背景にある概念については、AWS データストア内の機密データを保護するためのベストプラクティスを参照してください。 予防的コントロール 次の図はこのシリーズの最初の記事からのもので、防御の概念を詳しく説明しています。コントロールには、予防的コントロールと発見的コントロールの 2 つの主要なカテゴリーがあります。最初に予防的コントロールについて説明しましょう。 DDoS 保護 AWS Shield と連携することで、アプリケーションおよびデータベースを分散サービス拒否 (DDoS) 攻撃から保護することができます。すべての AWS のお客様は、追加料金なしで […]

Read More