Amazon Web Services ブログ

Amazon RDS ポイントインタイムリカバリを管理するための AWS CloudFormation カスタムリソースの構築

Amazon RDS は、クラウド内でのリレーショナルデータベースのセットアップ、運用、およびスケーリングを容易にし、ハードウェアのプロビジョニング、データベースの設定、パッチ適用、およびバックアップなどの時間がかかる管理タスクを自動化しながら、コスト効率に優れ、サイズ変更が可能な容量を提供するため、煩わしい作業を AWS にまかせて、ビジネスロジックとアプリケーション機能に集中することが可能になります。 AWS 責任共有モデルでは、データを保護し、災害に備えて適切なバックアップと復旧を確実にすることがユーザーの責任になります。バックアップは、所定の時点におけるデータセットのスナップショットです。最後の完全なバックアップ後に行われた変更のすべてを復元するための復旧戦略を設計してください。 RDS を使用すると、新しいデータベースインスタンスを作成して、特定の時点にデータベースインスタンスを復元することができます。AWS マネジメントコンソール、AWS CLI、または RDS API を使用してポイントインタイムリカバリを実行できます。 組織がコンソールと AWS CLI へのアクセスをデータベース管理者のみに制限している場合があります。現在、AWS CloudFormation はポイントインタイムリカバリをサポートしないため、その次善策として AWS CloudFormation のカスタムリソースがあります。カスタムリソースでは、スタックを作成、更新 (カスタムリソースを変更した場合)、または削除するたびに AWS CloudFormation が実行するテンプレートに、カスタムプロビジョニングロジックを作成することができます。たとえば、AWS CloudFormation のリソースタイプとして使用できないリソースを含めたい場合は、カスタムリソースを使用してこれらのリソースを含めることができます。そうすることで、引き続き単一のスタック内で関連リソースのすべてを管理することができます。 この記事では、カスタムリソースである AWS Lambda 関数を使用して、バックアップ保持期間内の過去の任意の時間に RDS データベースのポイントインタイムリカバリを行う方法について説明します。 ソリューションの概要 RDS サービスは、データベースインスタンスのすべてのトランザクションログを 5 分ごとに Amazon S3 に保存します。コンソールでは、このプロパティがデータベースインスタンスの最終復元時間として表示されます。復元は、バックアップ保持期間内の任意の時点に行うことができます。 この記事では、以下の手順を実行します。 提供されている AWS CloudFormation テンプレートを使用して Lambda 関数と関連する IAM ロールを作成する。 必要なパラメータを持つ Lambda 関数を呼び出して、指定された時間へのデータベースの復旧を検証するために、もう一つの […]

Read More

コンテナストレージに Amazon EFS を使用するためのベストプラクティス

数万社におよぶ企業がペタバイト規模のデータを Amazon Elastic File System (Amazon EFS) に保存しており、その多くが EFS を使ってコンテナ化したアプリケーションのデータです。Amazon EFS ファイルシステムは、Amazon Elastic Container Service (ECS) と Elastic Kubernetes Service (EKS) の両方で起動したコンテナに接続できます。Amazon EFS はコンテナインフラストラクチャと同様に、データの追加や削除の際に設定が簡単でかつ柔軟なスケーリングが可能な完全マネージド型のサービスであるため、コンテナストレージにうってつけの選択肢です。さらに、ペタバイト級のデータだけでなく、1 秒あたりのギガバイトの総スループットや数千の IOPS にも拡張が可能です。このブログでは、コンテナ化したアプリケーションで EFS を使用するためのベストプラクティスに関する、よくある質問をいくつかご紹介します。 コンテナには共有ストレージが必要ですか? 一般に、共有ファイルストレージは、障害に対する回復力が必要な長期にわたって実行するコンテナや、データを相互に共有する必要があるコンテナに適しています。よく目にする例をいくつか挙げましょう。 WordPress や Drupal などのコンテンツ管理アプリケーションは、パフォーマンスと冗長性を確保するために複数のインスタンスにスケールアウトしたり、複数のインスタンス間でアップロード、プラグイン、テンプレートを共有することで利点を享受します。 JIRA、Artifactory、Git などの開発者ツールでは高可用性を実現するためインスタンス間でデータを共有します。これは、永続性のために複数の AWS アベイラビリティゾーンに保持されているコードとアーティファクトを使って行われます。 MXNet や Tensorflow のような機械学習フレームワークは、ファイルシステムインターフェイスを介してデータにアクセスする必要があります。永続的な共有ストレージを使用すると、複数のユーザーとジョブを同じデータセットで並行して実行できます。 Jupyter や Jupyterhub などの共有ノートブックシステムには、ノートブックやユーザーワークスペース用の耐久性のあるストレージが必要です。共有ストレージを使用すれば、データサイエンティストの間で簡単に共同作業が行うことができます。 コンテナデータを永続化する別のオプションとしては、Amazon Elastic Block Storage (EBS) があります。これは MySQL、あるいは Kafka […]

Read More

Amazon SageMaker の Horovod またはパラメータサーバーでTensorFlow 分散トレーニングを簡単に起動する

Amazon SageMaker は、TensorFlow を含む一般的なディープラーニングフレームワークをすべてサポートしています。クラウド内の TensorFlow プロジェクトの 85% 以上が AWS で実行されています。プロジェクトの多くはすでに Amazon SageMaker で実行されています。これは、Amazon SageMaker が TensorFlow モデルのホスティングとトレーニングにもたらす大きな利便性によるものです。これには、Horovod とパラメータサーバーを使用した完全マネージド型の分散トレーニングが含まれます。 お客様は、1 週間以上かかる大規模なデータセットのトレーニングモデルにますます関心を持ってきています。この場合、クラスター内の複数のマシンまたはプロセスにトレーニングを分散することにより、プロセスを高速化できる可能性があります。この記事では、Amazon SageMaker により、トレーニングクラスターを直接管理する費用や困難なしに、TensorFlow を使用して分散トレーニングを迅速にセットアップおよび起動する方法について説明します。 TensorFlow バージョン 1.11 以降では、Amazon SageMaker の事前作成された TensorFlow コンテナを使用できます。Python トレーニングスクリプトを提供し、ハイパーパラメータを指定し、トレーニングハードウェア設定を指定するだけです。Amazon SageMaker は、トレーニングクラスターをスピンアップし、トレーニングが終了したらクラスターを破棄するなど、残りの作業を行います。この機能は「スクリプトモード」と呼ばれます。 スクリプトモードは、すぐに使用できる以下の 2 つの分散トレーニングアプローチを現在サポートしています。 オプション #1: TensorFlow のネイティブパラメータサーバー (TensorFlow バージョン 1.11 以降) オプション #2: Horovod (TensorFlow バージョン 1.12 以降) 次のセクションでは、これらの TensorFlow 分散トレーニングオプションを […]

Read More

Amazon Quantum Ledger Database (QLDB) が利用可能に

データ型、クエリモデル、インデックスオプション、スケーリングの期待値、パフォーマンス要件を幅広く考慮した場合、データベースは 1 つのサイズですべての製品に合わせることはできません。こうした理由から AWS データベースは多くの種類があり、それぞれが異なる種類のアプリケーションのニーズを満たすように作られています。 QLDB の紹介 本日は、AWS データベースファミリーの最新メンバーである Amazon QLDB についてお話ししたいと思います。最初に 2018 年の AWS re:Invent で発表され、プレビュー形式で利用可能でしたが、5 つの AWS リージョンにおいて本番形式で利用できるようになりました。 QLDB は台帳データベースとして、​​保存したデータの信頼できるデータソース (レコードのシステム として知られる) を提供するように設計されています。更新、変更、または変更不可のデータにコミットされたすべての変更において完全かつ不変の履歴を保持します。QLDB は履歴データへの PartiQL SQL クエリをサポートし、履歴が正確かつ正当であることを暗号で検証できる API も提供します。これらの機能により、QLDB は銀行や金融、e コマース、輸送や物流、人事や給与、製造、政府機関のアプリケーションや、保存したデータの整合性と履歴を維持する必要のあるその他の多くのユースケースに大変適しています。 重要な QLDB の概念 詳しく見ていく前に、最も重要な QLDB の概念を確認しましょう。 台帳 – QLDB 台帳は QLDB テーブルのセットと、テーブルに対する変更の完全かつ変更不可の履歴を保持するジャーナルで構成されます。台帳には名前があり、タグを付けることができます。 ジャーナル – ジャーナルはブロックのシーケンスで構成され、各ブロックは暗号化されて前のブロックにチェーンされているため、変更を検証できます。一方、ブロックにはテーブルに加えられた実際の変更が含まれ、効率的に取得できるようインデックスが付けられています。この追加専用モデルにより、以前のデータを編集または削除できなくなり、台帳が変更不可となります。QLDB を使用すると、ジャーナルのすべてまたは一部を S3 にエクスポートできます。 テーブル – テーブルは台帳内に存在し、ドキュメント改訂のコレクションが含まれます。テーブルは、ドキュメントフィールドのオプションのインデックスをサポートしています。インデックスは、等式 (=) […]

Read More

Kubernetes および Amazon Elastic Inference を使用した TensorFlow モデルの最適化

この記事では、Amazon Elastic Inference を Amazon Elastic Kubernetes Service と共に使用する方法について詳しく説明します。Elastic Inference と EKS を組み合わせると、お好みのコンテナオーケストレーションシステムで低コストでスケーラブルな推論ワークロードを実行できます。 Elastic Inference は、AWS で低コストの推論ワークロードを実行するますます一般的な方法になりつつあります。低コストの GPU を搭載したアクセラレーションを Amazon EC2 および Amazon SageMaker インスタンスに追加して、深層学習推論の実行コストを最大 75% 削減できます。また、Amazon EKS も、AWS でコンテナを実行するスタートアップ企業から大企業まで、あらゆる規模の企業にとって重要性が高まっています。管理された Kubernetes 環境で推論ワークロードを実行したい場合、Elastic Inference と EKS を共に使用すると、高速ながら低コストのコンピューティングリソースでこれらのワークロードを実行することができます。 この記事の例は、Elastic Inference と EKS を併用して、ビデオフレームで物体検出を実行するためのコスト最適化されたスケーラブルなソリューションを提供する方法を示しています。具体的には、以下を行います。 Amazon S3 からビデオを読み取る EKS でポッドを実行する ビデオフレームを前処理する Elastic Inference で動作するように変更された TensorFlow Serving ポッドに物体検出用のフレームを送信する。 このコンピューティング集約型のユースケースは、Elastic Inference […]

Read More

Amazon Neptune が TinkerPop 3.4 機能をサポートするようになりました

Amazon Neptune は、Apache TinkerPop 3.4.1 のリリースをサポートするようになりました。この記事では、テキスト述語、valueMap の変更、ネストされた繰り返しステップ、名前付き繰り返しステップ、非数値比較、順序の変更ステップなど、Gremlin クエリとトラバーサル言語の新機能の具体例を紹介します。TinkerPop 3.4 には TinkerPop 3.3 との違いがほとんどないことに注意してください。エンジンリリースの互換性に関する注意事項を必ず確認してください。 エンジンのすべての最新機能と改善点は、Amazon Neptune リリースページに記載されています。 テストクラスターのセットアップ 以下の手順に従って、この記事の例を試すことができます。この記事は、以前に投稿した「Amazon SageMaker Jupyter ノートブックを使用して Amazon Neptune グラフを分析する」と「Let Me Graph That For You – Part 1 – Air Routes」の 2 本の記事に基づいており、航空路データセットを再度利用しています。 この例で使用する航空路データは、GitHub (こちら) で利用できます。 以下に示す例では、Gremlin Python が 3.4 レベル以上である必要があります。以前の投稿の AWS CloudFormation テンプレートを使用してノートブックのセットと Amazon SageMaker インスタンスを生成した場合、ターミナルウィンドウ (ノートブック内) または %% bash […]

Read More

Amazon SageMaker の TensorFlow Serving を使用したバッチ推論の実行

TensorFlow モデルをトレーニングしてエクスポートした後で、Amazon SageMaker を使用して、モデルを使用した推論を実行します。以下のいずれかを行うことができます。 モデルからリアルタイムの推論を取得するために、エンドポイントにモデルをデプロイします。 Amazon S3 に保存されたデータセット全体に対する推論を取得するために、バッチ変換を使用します。 バッチ変換の場合、ラージデータセットで高速で最適化されたバッチ推論を実行するためにますます必要となります。 この記事では Amazon SageMaker バッチ変換を使用してラージデータセットに対して推論を実行する方法を学びます。この記事の例では、TensorFlow Serving (TFS) コンテナを使用して、画像のラージデータセットに対するバッチ推論を実行します。また、Amazon SageMaker TFS コンテナの新しい事前処理と事後処理の機能を使用する方法も確認していきます。この機能は、TensorFlow モデルで S3 のデータで直接推論を行い、S3 に処理後の推論を保存することもできるようになります。 概要 この例のデータセットは、「Open Images V5 Dataset」の「Challenge 2018/2019」サブセットです。このサブセットには、JPG 形式で 100,000 個の画像が含まれ、合計 10 GB になっています。使用するモデルlは、 image-classification モデルで、ImageNet データセットでトレーニングされ、TensorFlow SavedModelとしてエクスポートされる ResNet-50 アーキテクチャに基づいています。このモデルを使用して、各画像のクラスを予測しっます (例: ボート、車、鳥)。事前処理と事後処理のスクリプトを書き、それを SavedModel でパッケージ化して、推論を素早く、効率的に、大きな規模で実行します。 チュートリアル バッチ変換ジョブを実行するとき、次のことを指定します。 入力データが保存される場所 データを変換するために使用する Amazon SageMaker モデルオブジェクト (「モデル」という名前) バッチ変換ジョブクラスターインスタンスの数 私たちのユースケースでは、モデルオブジェクトは […]

Read More

Apache Knox を使用して EMR でペリメータセキュリティを実装する

ペリメータセキュリティは、Apache Hadoop クラスターリソースをクラスター外部からアクセスするユーザーに対して保護するのに役立ちます。Apache Hadoop クラスターとのすべての REST および HTTP でのインタラクションに対して単一のアクセスポイントを有効にし、クラスターとのクライアントによるインタラクションを簡素化します。たとえば、クライアントアプリケーションは、Kerberos 対応クラスター上のサービスとインタラクションする前に、Kinit または SPNEGO を使用して Kerberos チケットを取得する必要があります。この記事では、Apache Knox のセットアップ設定を順をおって説明し、EMR クラスターのペリメータセキュリティを有効にします。 以下の利点があります。 さまざまな Hadoop サービスと UI の認証を簡素化する プロキシとして機能することにより、サービス固有の URL/ポートを非表示にする ペリメータでの SSL 終了を有効にする 複数のクラスターにわたって公開されたエンドポイントの管理を容易にする 概要 Apache Knox Apache Knox は、REST API エンドポイントを使用して Hadoop クラスターにアクセスするためのゲートウェイを提供します。エンタープライズ ID 管理ソリューションと統合し、クラスターのデプロイの詳細を非表示にする隠すことで、Hadoop クラスターでのサービスとクライアントのインタラクションを簡素化します。 この記事では、以下の設定を実行します。 Amazon VPC に基づいて仮想プライベートクラウド (VPC) を作成する Active Directory ドメインコントローラー用の Amazon EC2 Windows インスタンスをプロビジョニングする […]

Read More

Amazon DynamoDB Transactions を使用して複数のアイテムに調整された変更を加える

近年、NoSQL データベースをリレーショナルデータベース管理システム (RDBMS) の制約から解放するソリューションと見なす組織が増えているため、NoSQL データベースの使用が大幅に増加しています。NoSQL データベースの柔軟性、俊敏性、およびパフォーマンスは、移行をトリガーする主な利点ですが、組織の重要な要件の一部によって RDBMS は同じままでした。 RDMBS は、最も広く知られ議論されている機能であるトランザクションサポートのために、重要なデータを操作する場合 NoSQL データベースよりも好まれます。 Amazon DynamoDB Transactions 使用する理由 多くのアプリケーションでは、1 つ以上の項目に対して「アトミック」またはオールオアナッシングのデータベース操作を必要とするビジネスロジックが常に必要です。これにより、間違った操作が 1 つ発生した場合、すべてのデータベース操作をロールバックできます。通常、このニーズに対処しようとすると、接続されたすべての操作を追跡し、操作を元に戻すという点で、アプリケーションの実装が難しくなります。 Transactions は、re:Invent 2018 で DynamoDB の新機能として発表されました。データベース内のトランザクションのネイティブサポートを提供し、単一の AWS アカウントとリージョンにある複数の項目に ACID (原子性、一貫性、分離性、耐久性) を提供します。 従来、DynamoDB は単一の項目に対してのみ、これらのプロパティをサポートしていました。データの可用性と耐久性を確保するために設計されましたからです。Transactions は、複数の項目で 1 つ以上のテーブルに原子性 (オールオアナッシング) と分離性 (Transactions 同士は影響なし) を追加しました。 さらに、Transactions の ClientRequestToken キーを使用すると、API 呼び出しがべき等になる可能性があるため、複数の同一の呼び出しが同じ操作を再生せず、呼び出しが 1 つの場合と同じ効果が得られます。 Transactions を使用すると、データベース内でロールバック操作について心配したり、苦労したりする必要がなくなります。Transactions は、複数の項目とテーブルにわたってアクションを調整することにより、データの整合性を維持するのに役立ちます。 仕組みの説明 DynamoDB Transactions は現在、TransactWriteItems […]

Read More

【開催報告】クラウドネイティブ動画配信の実現方法とビジネスへの活用例 2019/8/28(水)

8月28日 AWS目黒オフィスにて、メディアソリューションにご興味ある内製エンジニア および WEBコンテンツ事業に関わる企業様を対象とした、クラウドネイティブサービスを活用した動画配信の事例紹介イベントを開催しました。 株式会社サイバーエージェント様、ブイキューブ様をゲストに、ライブ動画配信サービスをクラウドでどのように構築・運用されているのかなど語っていただきました。当日は 70 名近くのお客様にご参加いただきました。 ■クラウドネイティブサービスで実現するライブ動画配信 アマゾン ウェブ サービス ジャパン ソリューションアーキテクト 廣瀬 太郎 当日講演資料はこちらからダウンロードいただけます。 ソリューションアーキテクトの廣瀬から、ライブ動画配信に関連する技術トレンドや課題と、動画ワークロードのためのマネージドサービス AWS Media Services を利用したライブ動画配信基盤の構築、運用方法、各社様事例についてお話しました。 AWS Media Services は現在 MediaConnect, MediaLive, MediaPackage, MediaStore, MediaTailor, MediaConvert の計 6 つのサービスで構成されていますが、必ずしもそれら全てを最初から活用する必要はなく、要件にあわせて組み合わせて使って頂けるように疎結合な作りとなっています。本セッションでは代表的なユースケースと、それらに必要となるサービスやアーキテクチャパターンをご案内しつつ、AWS Media Services が生まれてからこの 2 年弱の間に追加された各サービスの機能アップデートを交えてご紹介しました。 2019 年に追加された MediaLive のスケジュール機能強化や MediaPackage の Just-in-Time Packaging などの最新機能についてもご紹介しました。   ■ ゲストスピーカーより導入事例のご紹介 「 WinTicket における競輪ライブ配信ステムの実現 」 […]

Read More