Amazon Web Services ブログ

Danilo Poccia

Author: Danilo Poccia

Danilo works with startups and companies of any size to support their innovation. In his role as Chief Evangelist (EMEA) at Amazon Web Services, he leverages his experience to help people bring their ideas to life, focusing on serverless architectures and event-driven programming, and on the technical and business impact of machine learning and edge computing. He is the author of AWS Lambda in Action from Manning.

新機能 – Amazon GuardDuty を使った S3 バケットの保護

この記事でお知らせしたとおり、Amazon Macie で以前からご利用いただいていた Amazon Simple Storage Service (S3) アクティビティのための異常および脅威検知が Amazon GuardDuty の一部として強化され、コストも 80% 以上削減されました。これにより、GuardDuty の脅威検出の範囲がワークロードと AWS アカウントの枠を越えて拡大され、S3 に保存されるデータの保護にも役立つようになります。 この新しい機能は、通常とは異なる地理的場所から来るリクエスト、S3 ブロックパブリックアクセスなどの予防的な制御の無効化、または誤設定されたバケットアクセス許可を発見する試みと一致する API コールパターンなどの疑わしいアクティビティを検知するために、GuardDuty が S3 のデータアクセスイベント (通常データプレーンオペレーションと呼ばれます) と S3 設定 (コントロールプレーン API) のモニタリングとプロファイリングを継続的に行うことを可能にします。悪意があると思われる動作を検知するため、GuardDuty は異常検知、機械学習、および絶えず更新される脅威インテリジェンスの組み合わせを使用します。ご参考までに、GuardDuty S3 脅威検知の完全なリストをご覧ください。 脅威が検知されると、GuardDuty がコンソールと Amazon EventBridge に詳細なセキュリティ結果を生成します。これは、アラートをすぐに利用できるようにするとともに、アラートの既存イベント管理およびワークフローシステムへの統合、またはアラートによる AWS Lambda を使用した自動化された是正アクションのトリガーを容易にします。オプションとして、複数のリージョンからの結果を集約する、およびサードパーティーのセキュリティ分析ツールと統合するために、結果を S3 バケットに送信することもできます。 まだ GuardDuty をお使いではない場合は、サービスを有効にするときに S3 保護がデフォルトでオンになります。GuardDuty をお使いの場合は、GuardDuty コンソールで 1 回クリックする、または API […]

Read More

最も高価なコード行を見つける – Amazon CodeGuru が一般提供開始

新しいアプリケーションを本番環境に導入し、それらの成長と発展に合わせてコードベースを維持し、同時に運用上の問題に対応するのはとても困難です。このため、チームの構築方法、適用方法、ソフトウェア配信パイプラインの安全な自動化方法について、多くのアイデアを見つけることができます。 昨年の re:Invent では、プレビューで Amazon CodeGuru を導入しました。これは機械学習を利用したデベロッパーツールで、アプリケーションの改善と、ランタイムデータに基づく自動コードレビューやパフォーマンスの推奨による問題のトラブルシューティングに役立ちます。 過去数か月の間に、より費用対効果の高い料金モデル、Bitbucket リポジトリのサポート、コマンドラインスイッチを使用してプロファイリングエージェントを起動する機能など、多くの改善が行われ、コードを変更する必要がなくなりました。アプリケーションを実行するか、依存関係を追加して、エージェントを実行します。 CodeGuru は次の 2 つの方法で使用できます。 CodeGuru Reviewer は、プログラム分析と機械学習を使用して、デベロッパーが見つけ難い潜在的な欠陥を検出し、Java コードの修正を行うことを推奨します。コードは、GitHub (現 GitHub Enterprise)、AWS CodeCommit、または Bitbucket リポジトリに保存できます。CodeGuru Reviewer に関連付けられているリポジトリでプルリクエストを送信すると、コードの改善方法に関する推奨事項が提供されます。各プルリクエストはコードレビューに対応し、各コードレビューにはプルリクエストのコメントとして表示される複数の推奨事項を含めることができます。 CodeGuru Profiler は、インタラクティブな視覚化と推奨事項を提供し、アプリケーションのパフォーマンスを微調整し、ライブアプリケーションのランタイムデータを使用して運用上の問題をトラブルシューティングするのに役立ちます。現在、Java、Scala、Kotlin、Groovy、Jython、JRuby、Clojure などの Java 仮想マシン (JVM) 言語で記述されたアプリケーションをサポートしています。CodeGuru Profiler は、CPU 使用率や導入されたレイテンシーの観点から最も高価なコード行を見つけ、効率を改善してボトルネックを解消する方法を提案します。本番環境で CodeGuru Profiler を使用できます。また、本番環境前など、有意義なワークロードでアプリケーションをテストする場合にも使用できます。 本日、Amazon CodeGuru が一般提供され、多くの新機能が追加されました。 CodeGuru Reviewer には、次のものが含まれています。 Github Enterprise のサポート – プルリクエストをスキャンし、Github Enterprise オンプレミスリポジトリのソースコードに対する推奨事項を、問題の原因と修正方法に関する説明とともに入手できます。 欠陥を解決してコードを改善するための新しいタイプの推奨事項 – たとえば、入力検証をチェックして、セキュリティとパフォーマンスを損なう可能性のある問題を回避し、同じことを行うコードのコピーを複数個見つけます。 CodeGuru […]

Read More

AWS Solutions Constructs – AWS CDK のアーキテクチャパターンのライブラリ

クラウドアプリケーションは、仮想サーバー、コンテナ、サーバーレス機能、ストレージバケット、データベースなどの複数のコンポーネントを使用して構築されます。これらのリソースを安全かつ反復可能な方法でプロビジョニングおよび設定できることは、プロセスを自動化し、実装の固有の部分に集中できるようにするために非常に重要です。 AWS Cloud Development Kit を使用すると、お気に入りのプログラミング言語の表現力を活用してアプリケーションをモデル化できます。コンストラクトと呼ばれる高レベルのコンポーネントを使用して、カスタマイズ可能な「実用的なデフォルト」で事前設定し、新しいアプリケーションをすばやく構築できます。CDKは、Infrastructure as Code を管理することにおけるあらゆるメリットを得るために、AWS CloudFormation を使用してリソースをプロビジョニングします。私が CDK を気に入っている理由の 1 つは、独自のカスタムコンポーネントを上位レベルのコンストラクトとして作成および共有できることです。 複数のお客様にとって役立ち得るパターンが繰り返し発生することは想像に難くありません。そこで、本日、AWS Solutions Constructs をリリースします。これは、独自のソリューションの構築に役立つ Well-Architected なパターンを提供する CDK のオープンソース拡張ライブラリです。CDK コンストラクトは主に単一のサービスをカバーしています。 AWS Solutions Constructs は、2 つ以上の CDK のリソースを組み合わせ、ロギングや暗号化などのベストプラクティスを実装する複数サービスのパターンを提供します。 AWS Solutions Constructs を使用する パターンベースのアプローチの威力を確認するために、新しいアプリケーションを構築する際にどのように役立つかを見てみましょう。例として、Amazon DynamoDB テーブルにデータを格納する HTTP API を構築します。テーブルのコンテンツを小さく保つために、DynamoDB Time to Live (TTL) を使用して、数日後にアイテムを期限切れにすることができます。TTL の期限が切れると、テーブルからデータが削除され、DynamoDB Streams を介して AWS Lambda 関数に送信され、期限切れのデータを Amazon Simple Storage Service […]

Read More

新機能 – 拡張された Amazon Macie が大幅に値下げされた料金で利用可能に

Amazon Macie は、機械学習を使用してデータを自動的に特定および分類することで、機密データを検出して保護するのに役立つフルマネージド型のサービスです。 お客様に Macie を長期にわたってご利用いただく中で、お気に入りの点とそうではない点を伺いました。 サービスチームはこのフィードバックに対処するために一生懸命取り組んできました。そして本日、Amazon Macie の拡張された新しいバージョンをご利用いただけるようになったことをお知らせします。 この新しいバージョンでは、料金プランがシンプルになっています。評価される Amazon Simple Storage Service (S3) バケットの数と、機密データ検出ジョブで処理されるデータの量に基づいて請求されるようになりました。新しい段階的な料金プランは、料金を 80% 引き下げるものです。さらにボリュームが大きい場合は、90% 超のコストを削減できます。 多くの新機能も同時に導入されています。 個人識別情報 (PII) を検出するための更新された機械学習モデルを含む強化された機密データの検出、および正規表現を使用したお客様が定義する機密データタイプ。 AWS Organizations でのマルチアカウントのサポート。 AWS SDK および AWS コマンドラインインターフェイス (CLI) でサービスをプログラムで使用するための完全な API カバレッジ。 リージョンの可用性を 17 のリージョンまで拡大。 開始とコストの理解に資する、シンプルになった新しい無料利用枠と無料試用版。 完全に再設計されたコンソールとユーザーエクスペリエンス。 Macie はバックエンドで S3 と緊密に統合され、より多くのメリットを提供します。 AWS CloudTrail で S3 データイベントを有効にすることは要件ではなくなり、全体的なコストがさらに削減されます。 すべてのバケットの継続的な評価が行われ、パブリックバケット、暗号化されていないバケット、および Organization 外の AWS アカウントと共有 (またはレプリケート) されたバケットのセキュリティの検出結果が発行されます。 […]

Read More

新機能 – AWS Glue を使用したサーバーレスストリーミング ETL

 アプリケーションが本番環境にあるとき、何が起こっているか、どのようにアプリケーションが使われているかを把握する必要があります。データ分析の最初のアプローチはバッチ 処理モデルで、一連のデータを一定期間収集し、分析ツールで実行します。迅速に対応したい場合には、ストリーミングモデルを使用します。このモデルでは、データの到着時にデータ処理し、一度に 1 レコードずつ、または数十、数百、数千のレコードのマイクロバッチで処理します。 継続的な取り込みパイプラインの管理や即時的なデータ処理は、管理、パッチ適用、スケーリング、一般的な対応を必要とする常時オンのシステムであるため、大変複雑です。現在、拡張 (AWS Glue ジョブを Apache Spark に基づいて ) によってこうした機能をより簡単でコスト効率の高い方法で実装し、ストリーミングプラットフォーム (Amazon Kinesis Data Streams や Apache Kafka (完全マネージド Amazon MSK を含む)) などからデータを継続的に実行し使用しています。 このように、Glue はデータレイク (Amazon S3 の)、Amazon Redshift などのデータウェアハウス、またはその他のデータストアにデータを取り込むために必要なインフラストラクチャをプロビジョニング、管理、スケーリングします。たとえば、ストリーミングデータを DynamoDB テーブルに保存してすばやく検索したり、Elasticsearch に保存して特定のパターンを検索したりすることが可能となります。この手順は通常、抽出、変換、読み込み (ETL) と言います。 Glue ジョブでストリーミングデータを処理すると、Spark Structured Streaming の全機能にアクセスして、集約、パーティション化、フォーマット、他のデータセットとの結合といったデータ変換を実行し、データに情報を追加または修正して分析を容易にします。たとえば、外部システムにアクセスしてリアルタイムで不正を特定したり、機械学習アルゴリズムを使用してデータを分類したり、異常や異常値を検出したりできます。 AWS Glue を使用したストリーミングデータの処理 この新しい機能を試すには、IoT センサーからデータを収集し、すべてのデータポイントを S3 データレイクに保存します。Raspberry Pi と Sense HAT を使用し、温度、湿度、気圧、空間内の位置をリアルタイムで […]

Read More

Amazon DynamoDB 向け NoSQL Workbench を使用したデータモデリング

 Amazon DynamoDB などの NoSQL データベースを使用する場合、リレーショナルデータベースで慣れているものとは異なる最適化を選択する傾向があります。リレーショナルデータベースの経験から、最初は別の方法で実行するように指示されていたため、簡単ではありませんでした。 これを支援するために、AWS は Windows および macOS で利用可能なクライアント側アプリケーションである Amazon DynamoDB 向け NoSQL Workbench をリリースしました。これを使用して、スケーラブルで高性能なデータモデルを構築し、クエリの開発とテストを簡素化できます。NoSQL Workbench を使用すると、次のことができます。 1 つ以上のテーブルを使用してデータモデルを定義します。 データモデルを視覚化して、さまざまなシナリオでどのように機能するかを理解します。 複数のプログラミング言語用のデータプレーン操作を構築します。 このブログ記事では、一般的に利用可能になった NoSQL Workbench を使用して、複数の顧客の URL ブックマークの管理という一般的なユースケースのデータモデルを設計しています。比較的ユースケースが単純な場合でも、多くの興味深い考慮事項があります。 データモデラー このアプリケーションでは、ブックマークと顧客アカウントに関する情報を保存する必要があります。まず、保存したい属性のリストを、保存する予定の簡単な説明とともに書き留めます。 顧客 customerId – ユニバーサル一意識別子 (UUID) email fullName ­– 例: “Shirley Rodriguez” userPreferences – アプリのユーザー設定を記述する JSON オブジェクト creationDate updateDate ブックマーク URL – “https://…” customerId […]

Read More

New – Amazon Keyspaces (Apache Cassandra 用) が正式リリース

 昨年の re:Invent で、Amazon Managed Apache Cassandra Service (MCS) のプレビュー版を紹介しました。過去数か月の間に、このサービスは多くの新機能を導入し、今日 Amazon Keyspaces (Apache Cassandra 用) という新しい名前で一般公開します。 Amazon Keyspaces は Apache Cassandra 上に構築されており、フルマネージドのサーバーレスデータベースとしてご利用いただけます。アプリケーションは、既存の Cassandra Query Language (CQL) コードを使用して、まったくまたはほとんど手を加えずに Amazon Keyspaces からデータを読み書きできます。各テーブルでは、以下のように、ユースケースに応じて最適な設定を選択できます。 オンデマンドでは、実際に行った読み取りと書き込みに基づいて料金が発生します。これは、ワークロードが予測できないときに最適なオプションです。 プロビジョニングされた容量では、容量設定を事前に行うことで、予測できるワークロードのコストを削減できます。 また、Auto Scaling を有効にすることで、コストをさらに最適化できます。これにより、その日のトラフィックの変化に応じてプロビジョニングされた容量設定が自動的に更新されます。 Amazon Keyspaces の使用 私が子供の頃に構築した最初の「本格的な」アプリケーションの 1 つは、本用のアーカイブでした。それを今すぐ、以下を使用してサーバーレス API として再構築したいと思います。 データを保存するための Amazon Keyspaces。 ビジネスロジック用の AWS Lambda。 Amazon API Gateway と新しい HTTP API。 Amazon […]

Read More

新規オープン – AWS 欧州 (ミラノ) リージョン

 今日は、待ちに待った新しい AWS リージョンがイタリアで利用可能になったことをお知らせしたいと思います! 欧州 (ミラノ) リージョンは欧州 6 番目の AWS リージョンで、信頼性に優れた方法で複数のデータセンターにアプリケーションを分散させるため (たとえば、Amazon Elastic Compute Cloud (EC2) インスタンスに異なる AZ を使用するよう Amazon Virtual Private Cloud のサブネットを設定するなど) に使用できる 3 つのアベイラビリティーゾーン (AZ) で構成されています。 各 AZ は、AWS のインフラストラクチャの完全に隔離されたパーティションで、1 つ、または複数のデータセンターが含まれます。 AZ は分離された個別の地理的地域に設置されており、単一のイベントがリージョンの可用性に影響するリスクを大幅に減らすために十分な距離が置かれていますが、迅速なフェイルオーバーおよび同期レプリケーションを必要とするビジネス継続性には十分な近さです。これは、単一のデータセンターで実現できるものよりも、可用性、耐障害性、およびスケーラビリティに優れた本番アプリケーションを運用する能力を提供します。Amazon Simple Storage Service (S3)、AWS Lambda、および Amazon DynamoDB などの完全マネージド型サービスは、自動的にデータとアプリケーションを複数の AZ にレプリケートします。 ミラノの AWS リージョンは、イタリアのエンドユーザーへのサービス提供を目的とするお客様に低レイテンシーを提供すると共に、オーストリア、ギリシャ、およびブルガリアなどの他の国々からのお客様へのサービス提供時にも、その他の既存 AWS リージョンより優れたレイテンシーを提供します。その成果は、エンドユーザーのラストマイルネットワークにおける接続の品質、キャパシティー、および距離に応じて異なる場合があります。 政府、ヘルスケア、および金融サービスで業務を行うお客様など、データレジデンシーの要件および規制があるイタリアのお客様にとっては、国内インフラストラクチャも同じく重要です。 イタリアの AWS 現在 AWS […]

Read More

新情報 – Amazon EventBridge スキーマレジストリが一般公開

 Amazon EventBridge は、アプリケーションを簡単に接続できるようにするサーバーレスイベントバスです。AWS サービスのデータ、独自のアプリケーション、Software-as-a-Service (SaaS) パートナーとの統合を使用できます。昨年の re:Invent では、EventBridge スキーマレジストリと検出のプレビューで、イベントの構造 (スキーマ) を中央に保存する方法を導入しました。また、Java、Python、Typescript 用にイベントを処理するコードを生成することにより、コード内のイベントの使用を簡素化しました。 本日より、EventBridge スキーマレジストリが一般公開され、リソースポリシーのサポートが追加されたことをお知らせいたします。リソースポリシーにより、異なる AWS アカウントと組織間でスキーマリポジトリを共有できます。このようにして、異なるチームの開発者は、別のチームが共有レジストリに追加したスキーマを検索して使用できます。 EventBridge スキーマレジストリリソースポリシーの使用 企業は、一般的にさまざまなサービスに取り組んでいるさまざまな開発チームを抱えています。より具体的な例を示すために、互いに通信を行う必要があるサービスに取り組んでいる 2 つのチームを見てみましょう。 CreateAccount 開発チームは、ウェブ/モバイルクライアントからリクエストを受信して、会社の新しい顧客アカウントを作成するフロントエンド API に取り組んでいます。 FraudCheck 開発チームは、新しく作成されたアカウントのデータをチェックするバックエンドサービスに取り組み、それらが偽物であるリスクを推定します。 各チームは、独自の AWS アカウントを使用してアプリケーションを開発しています。 EventBridge を使用すれば、次のアーキテクチャを実装できます。 フロントエンドの CreateAccount アプリケーションは、Amazon API Gateway を使用して、Python で記述された AWS Lambda 関数を使ってリクエストを処理します。新しいアカウントが作成されると、Lambda 関数はカスタムイベントバスで ACCOUNT_CREATED イベントを発行します。 バックエンドの FraudCheck Lambda 関数は Java で作成されており、ACCOUNT_CREATED イベントを受信して Amazon Fraud Detector […]

Read More

新機能 – Step Functions と AWS CodeBuild を使用した継続的インテグレーションワークフローの構築

 ソフトウェアビルドの自動化は、DevOps のベストプラクティスを採用するための重要なステップです。これを支援するために、フルマネージド型の継続的インテグレーションサービスである AWS CodeBuild を構築しました。これは、ソースコードをコンパイルし、テストを実行し、デプロイの準備ができたパッケージを生成します。 しかし、お客様のビルドプロセスには非常に多くのカスタマイズの選択肢があり、ソフトウェアビルドに必要なさまざまなアクティビティを調整するために、開発者が独自のカスタムワークフローを作成することに時間を費やしていることがわかりました。たとえば、一部のテストを実行し、もしくは実行しないこととし、またはクイックフィックスをデプロイする必要がある場合にコードの静的分析をスキップしたい場合があります。 単体テストの結果に応じて、さまざまなアクションを実行したり、SNS を介して通知を受けたりしたい場合があります。 これを簡素化するため、本日、新しい AWS Step Functions の CodeBuild とのサービス統合をリリースします。これで、ステートマシンの実行中に、ビルドの開始または停止、ビルドレポートサマリーの取得、および過去のビルド実行レコードの削除ができるようになります。 これにより、独自のワークフロー主導のビルドプロセスを定義し、手動または自動でトリガーできます。たとえば、次のことができます。 Amazon EventBridge ルールを使用して、定期的に (夜間ビルドの場合)、または何かが発生したときに (AWS CodeCommit リポジトリへのプルリクエストなど)、ビルドワークフローを開始します。 Amazon API Gateway を使用して、ステートマシンへの直接統合で、またはワークフローを開始する前に入力ペイロードの有効性をチェックする AWS Lambda 関数を介して、GitHub などのサービスによって呼び出すことができる webhook を構築します。 この投稿で説明されているように、AWS CodePipeline アクションの動作をカスタマイズします。 この統合により、Step Functions の全機能を使用して、ソフトウェアのビルドを自動化できます。たとえば、Parallel 状態を使用して、ビルドの独立したコンポーネントの並列ビルドを作成できます。コードリポジトリ内のすべてのブランチのリストから始めて、Map 状態を使用して、各ブランチに一連のステップ (自動化ビルド、ユニットテスト、統合テスト) を実行できます。 同じワークフローで他の Step Functions のサービス統合を活用することもできます。 たとえば、メッセージを SQS キューに送信してアクティビティを追跡したり、Amazon ECS とAWS Fargate を使用して構築したコンテナ化されたアプリケーションを開始したりできます。 ワークフロー主導のビルドプロセスのために Step Functions […]

Read More