Amazon Web Services ブログ

EMR Notebooks を使用して Python ライブラリをクラスターに実行時インストールする

AWS は昨年、オープンソースの Jupyter ノートブックアプリケーションを基礎としたマネージド型ノートブック環境である EMR Notebooks を発表しました。 本記事では、EMR Notebooks でノートブックスコープのライブラリをクラスターに直接、実行時インストールする方法についてご説明します。その前に、クラスターをプロビジョンする際、ブートストラップアクションを信頼するか、またはカスタム AMI を使用して、EMR AMI に事前パッケージ化されていないライブラリを追加でインストールする必要があります。本記事では、EMR Notebooks 内においてローカルで使用可能なプレインストール済みの Python ライブラリを使用して結果を分析、プロットする方法もご説明します。この機能は、PyPI リポジトリへのアクセス権限はないが、データセットを分析、可視化する必要があるような状況下で役立ちます。 EMR Notebooks を使用したノートブックスコープのライブラリの利点 ノートブックスコープのライブラリには、次のような利点があります。 実行時インストール – 必要なときに、オンザフライで、お気に入りの Python ライブラリを PyPI リポジトリからインポートしてリモートクラスターにインストールすることができます。このライブラリはお使いの Spark ランタイム環境でただちに使用可能です。ノートブックセッションの再起動やクラスターの再作成は必要ありません。 依存関係の分離 – EMR Notebooks を使用してインストールしたライブラリは、ノートブックセッションから分離されているため、ブートストラップされたクラスターライブラリや、他のノートブックセッションからインストールされたライブラリには干渉しません。ノートブックスコープのライブラリは、ブートストラップされたライブラリよりも優先されるためです。ノートブックユーザーが複数であっても、お気に入りのバージョンのライブラリをインポートできます。使用の際も、同じクラスターで依存関係がクラッシュすることはありません。 ポータブルなライブラリ環境 – ライブラリパッケージは、ユーザーのノートブックファイルからインストールされます。そのため、ノートブックコードを再実行して別のクラスターにノートブックを切り替える際にはライブラリ環境を再作成できます。EMR Notebooks からインストールしたライブラリは、ノートブックセッションの終了時にホスティング元の EMR クラスターから自動的に削除されます。 前提条件 EMR Notebooks で本機能を使用するには、EMR リリース 5.26.0 以降を実行するクラスターにアタッチされたノートブックが必要です。クラスターには、ライブラリのインポート元となるパブリックまたはプライベートの PyPI リポジトリに対するアクセス権限が必要です。詳細については、「ノートブックの作成」をご覧ください。 VPC 内のクラスターを外部リポジトリと接続できるように […]

Read More

Amazon Lex のフォールバックインテントを使用した会話フローの管理

質問に困惑したことがありますか? ビジネスレビューで毎週の数字を調べているときに、誰かが「費用はどうですか?」と尋ねたとします。 おそらくあなたの応答は、「わかりません。今その議論をする準備はできていません」となるでしょう。 ボットはまだ同じ理解力を持つには至っていません。答えが得られない場合、ボットはどのように対応すべきでしょうか? ボットは、応答がないときにどのように回復できるでしょうか? ボットがまだ理解していない場合、繰り返すように頼むと非常にイライラする可能性があります。おそらく、最後のやり取りに基づいてあなたが言ったことを理解するふりをすることができるでしょう。 ただし、いつもうまくいくとは限らず、愚かに聞こえることもあります。ボットがその限界を認め、何ができるかを教えてくれるでしょうか? 最初の数回は受け入れられるかもしれませんが、長期的には最適ではない可能性があります。 単一の正しい方法はありません。会話の修復戦略は、作り出そうとしているエクスペリエンスの種類によって異なります。エラー処理プロンプトを使用できます。ボットは、「現時点ではサポートできません」などのメッセージでハングアップする前に、「申し訳ありませんが、もう一度言っていただけますか?」というプロンプトを表示して明確化しようとします。  上記の会話例に基づいて、まず収益の数字に関連する質問に答えるための簡単なチャットボットを構築しましょう。このボットは、「第 1 四半期の収益は?」、「西部地域の売上は?」などの質問に答えます。 Lex ボットには、RegionDetails および QuarterDetails の 2 つのインテントだけが含まれています。このボットの定義では、誰かが費用について議論すると (「前四半期にいくら費やしましたか?」)、ボットは明確化のプロンプトを表示し、最終的に会話を打ち切りました。ビジネスロジックに介入したり実行したりすることはできませんでした。会話は、次のようになりました。 本日から、フォールバックインテントを追加して、このような状況でボットが正常に回復できるようにすることができます。フォールバックインテントを使用すると、追加情報を提供したり、対話を管理したり、ビジネスロジックを実行したりして、ボットの回復を制御できるようになります。会話をより適切に制御し、次のような理想的な結果を得るためにフローを管理できます。 フォールバックインテントの設定 以下の手順を実行して、フォールバックインテントを設定できます。 Amazon Lex コンソールで、[Create intent] を選択します。 既存のインテントで AMAZON.Fallback を検索します。 BusinessMetricsFallback ページの次のスクリーンショットを参照してください。 明確化のプロンプトがある場合は、明確化のプロンプトが実行された後にフォールバックインテントがトリガーされます。明確化のプロンプトを無効にすることをお勧めします。フォールバックが設定されている場合、ハングアップフレーズは使用されません。エラー処理ページの次のスクリーンショットを参照してください。 インテント ContactDetails を追加して、メール ID を収集します。 これは、メールアドレスだけをスロットタイプとして使用する単純なインテントです。意図の詳細については、ボットの定義を確認してください。 フォールバックインテントのフルフィルメントコードフックに AWS Lambda 関数を追加します。 この関数は 2 つの操作を実行します。まず、オペレーターのフォローアップの要求を記録するタスク (例、データベースのチケットエントリなど) を作成します。次に、メール ID などの追加情報を引き出すために、オペレーターが照会を処理した後に応答が出るようにインテントを切り替えます。コードの詳細については、Lambda の定義を確認してください。 前述のボットの定義を使用して、これで会話を制御できるようになりました。「前四半期にどのくらい費やしましたか」と尋ねると、入力は設定されたインテントのいずれとも一致せず、フォールバックインテントをトリガーします。Lambda のフルフィルメントコードフックはチケットを作成し、インテントを ContactDetails […]

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

EC2 High Memory アップデート – 18 TB と 24 TB の新しいインスタンス

昨年、AWS は 6、9、および 12 TiB のメモリを搭載した EC2 High Memory インスタンスをローンチしました。AWS のお客様は、これらのインスタンスを使用して、Amazon Elastic Block Store (EBS)、Amazon Simple Storage Service (S3)、AWS Identity and Access Management (IAM)、Amazon CloudWatch、および AWS Config などの AWS のサービスを利用しながら、大規模な SAP HANA インストールを実行しています。お客様には、これらのインスタンスが他の EC2 インスタンスと同じ AMI と管理ツールを使用できることについてご好評をいただいており、これらをエンタープライズレベルのデータ保護とビジネス継続性を提供する本番システムの構築に使用されています。 これらは、Virtual Private Cloud (VPC) で実行することが可能なベアメタルインスタンスであり、デフォルトで EBS 最適化されています。 本日、AWS は 18 TiB および 24 TiB のメモリを備えたインスタンスをローンチします。これらは、2.7 GHz で動作する第 2 […]

Read More

Amazon SageMaker で EC2 P3dn GPU インスタンスをご利用いただけるようになりました

ここ数年、深層学習の急速な台頭によって、皮膚がんの発見 (SkinVision) および自動運転車 (TuSimple) などの素晴らしいアプリケーションが実現されました。ニューラルネットワークのおかげで、深層学習にはまさに、大量の非構造データ (画像、動画、自由形式テキストなど) から複雑なパターンを抽出し、モデル化する並外れた能力があります。 しかし、これらのニューラルネットワークのトレーニングには、同じく大量のコンピューティングパワーも必要です。グラフィック処理ユニット (GPU) にその能力があることは長年実証済みで、AWS のお客様は、Amazon Elastic Compute Cloud (EC2) の P2 および P3 インスタンスを使用し、特に AWS の完全マネージド型でモジュラー設計の機械学習サービスである Amazon SageMaker においてそのモデルをトレーニングすることができる方法を素早く理解しました。 本日は、p3dn.24xlarge と名付けられた最大規模の P3 インスタンスが Amazon SageMaker でのモデルトレーニングに利用できるようになったことをお知らせしたいと思います。去年ローンチされたこのインスタンスは、大規模で複雑な分散型トレーニングジョブを迅速化するために設計されており、他の P3 インスタンスと比べて 2 倍の GPU メモリ、50% 増の vCPU、超高速のローカル NVMe ストレージ、および 100 Gbit のネットワーキングを備えています。 では、これをAmazon SageMaker で試してみませんか? Amazon SageMaker での EC2 P3dn インスタンスの導入 Caltech-256 […]

Read More

Amazon EKS Windows Container が一般利用可能になりました

今年 3 月に、当社は Amazon Elastic Kubernetes Service で Windows Container サポートのプレビューを発表し、カスタマーをベータテストにお招きし、フィードバックを提供していただきました。そのフィードバックに基づいて数か月間改修を重ね、Windows Container が一般利用可能になりました。 多くの開発チームは Windows Server で実行されるように設計されたアプリケーションを構築し、継続的にサポートしています。また、この発表により、 Linux アプリケーションと共に Kubernetes で展開が可能となりました。この機能は、システムロギング、パフォーマンス監視、コードデプロイパイプラインでより一貫性を実現します。 Amazon Elastic Kubernetes Service は、Kubernetes の構築、保護、運用、および維持のプロセスを簡素化し、組織が Kubernetes の代わりに、アプリケーションの構築に焦点をあてることができるようにします。AWS は、Kubernetes で Windows Container を一般的に利用可能にした最初のクラウド プロバイダーであることに誇りを思っています。そして、Windows と Linux ワークロードの両方で、Kubernetes のビジネス上の利点をお客様に解放していくことを楽しみにしています。 この機能の動作の方法を示すためには、Amazon Elastic Kubernetes サービスクラスタが必要になります。新しいものを作成しますが、これは Kubernetes バージョン 1.14 以上を使用するクラスタで機能します。クラスタが構成されたら、いくつかの新しい Windows ノードを追加し、Windows アプリケーションをデプロイします。最後に、アプリケーションが期待通りに動作することをテストします。 クラスタのセットアップを行う最も簡単な方法は、EKS の正式な CLI ツールである eksctl […]

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

AWS Step Functions と AWS Systems Manager を使用して、Amazon EBS ボリュームのサイズ変更を自動化する

アクティブなアプリケーションで、Amazon EC2 インスタンスの Amazon EBS ボリューム使用率がプロビジョニング済み容量に達してしまうことがあります。どのアプリケーションを使用しているかによって異なりますが、プロビジョニング済み容量が使い果たされると、アプリケーション停止のリスクが生じ、お客様に影響を与えることがあります。これに対するソリューションの 1 つに、アプリケーションへのフェールオーバーメカニズムの設計がありますが、オーケストレーションの負担になる可能性があります。より簡単なソリューションは、EBS ボリュームのサイズを自動的に変更することです。 Infor では、本番環境での数千に及ぶ EC2 インスタンス (Windows と Linux) を管理しています。当社はこうした停止を防ぐ予防的アプローチが必要であったため、特定のしきい値に達したときボリュームが自動的に増加するように、本投稿で説明するソリューションを開発しました。このアプローチには 2 つの利点があります。 異常が発生し、ボリュームのスペースが非常に少なくなると、プロビジョニング済み容量が枯渇する前に自動的にボリュームを拡張します。このアクションにより、根本原因を調査し解決するまで、問題に対処できます。 そのため、ボリュームを過剰にプロビジョニングする必要がなくなりました。このソリューションは、より多くのスペースが必要になると、徐々に自動的にボリューム容量を増やし、EBS コストを削減します。 この投稿では、Infor で開発した自動 EBS ボリュームサイズ変更プロセスを順を追って説明します。さらに、そのアーキテクチャを確認し、ベストプラクティスをいくつか学びます。 概要 AWS は Amazon EBS Elastic Volumes を 2017 年に発表しました。この機能では、ダウンタイムなしでシンプルな API 呼び出しで、ボリュームのサイズを増やしたり、パフォーマンスを調整したり、ボリュームタイプをその場で変更したりできます。 ボリュームの変更は比較的簡単ですが、ファイルシステムを拡張して、追加のストレージを活用しようとすると一筋縄ではいきません。これは通常、OS 上で手動で行いますが、AWS Systems Manager がインスタンスを管理している場合には、AWS Lambda を使用して OS レベルのスクリプトを実行する Systems Manager コマンドを送信できます。 次のリストは、このワークフローの手順を示しています。 ボリュームが 80% に達することをモニタリングし、自動化をトリガーします。 特定のシステムが除外されたため、続行する前に一連のチェックを実行します。フリートの […]

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

AWS Firewall Manager の最新情報 – VPC Security Groups のサポート

私は皆さまに、昨年、AWS Firewall Manager をご紹介し、それをAWS WAF ルールと AWS Shield の高度な保護を一元的に設定し、管理するために使用する方法を示しました。AWS Firewall Manager は AWS Organizations を利用して、一貫した方法で、複数の AWS アカウントにわたってポリシーを構築し、適用できるようにします。 セキュリティグループのサポート 現在は、AWS Firewall Manager をさらにより便利にして、VPC Security Groups の利用のための組織全体のポリシーを定義、管理、監査するための機能を与えます。 このポリシーを使用して、指定されたアカウントとリソースにセキュリティグループを適用し、セキュリティグループで使用されるルールを確認して管理し、その後、未使用で冗長なセキュリティグループを見つけてクリーンアップできます。誤って設定されたルールが検出されるときにリアルタイムの通知を受けて、Firewall Manager コンソールの中で是正措置を講じることができます。 この機能を利用するために、AWS Organization をもつ必要があり、AWS Config がそのすべてのアカウントに対して有効化されていなければりません。AWS アカウントをファイアウォール管理者としても指定しなければなりません。このアカウントには、AWS WAF ルール、シールドアドバンスト保護、セキュリティグループルールを所属する組織全体にデプロイする許可があります。 ポリシーの作成と使用 組織のルートアカウントにログインした後で、Firewall Manager コンソールを開いて、[Go to AWS Firewall Manager] をクリックします。 次に、[AWS FMS] セクションの [Security Policies] をクリックして開始します。コンソールは既存のポリシー (該当する場合) を表示し、[Create policy] をクリックして先に進みます。 […]

Read More