Amazon Web Services ブログ

Category: Launch

EC2 Image BuilderによるOSイメージビルドパイプラインの自動化

社会人になったばかりの頃、開発チーム向けのOSイメージビルドの仕事がアサインされたのを今でも思い出します。時間はかかるし、エラーはよく出るし、再作成とスナップショット再取得をなんども実行する必要がありました。さらに、ご想像のとおり、そのあとには大量の手動テストが控えていたのです。 OSを最新に保つことの重要性は現在も変わりません。場合によっては自動化スクリプトを開発してくれるチームがあるかもしれませんが、いずれにせよVMのスナップショットを手動で取得するという作業は、多くのリソースを消費し、都度エラー対処が要求される、時間のかかる作業であることに変わりはありません。今日ここで、EC2 Image Builderを発表できることを大変うれしく思います。これは、自動化されたビルドパイプラインによる、簡単、かつ高速にセキュアなWindows ServerおよびLinux OSイメージをビルドし保守していくためのツールです。EC2 Image Builderで作成されたイメージは Amazon Elastic Compute Cloud (EC2)で用いることができ、また満たすべき情報セキュリティ基準を遵守できるよう、セキュリティを強化することができます。今後AWSは規制を受ける業界向けに、はじめの一手として使える“Security Technical Implementation Guide (STIG – セキュリティ設定チェックリスト)”に準拠したセキュリティ強化ポリシーを提供していきます。 EC2 Image Builderパイプラインに含めることのできる設定項目は、OSイメージのレシピ、基盤の構成、イメージの配布先、それからテスト構成です。さらに、セキュリティパッチを含むソフトウェアアップデートに応じて、イメージビルドを自動実行する機能も含まれます。パイプラインにより新たなイメージが作成されたタイミングで、各AWSリージョンにイメージを配布する前に検証すべきテストの自動実行を設定することもできます。またEC2 Image BuilderをEC2 VM Import/Export機能と併用することで、オンプレミスに存在するVMDK, VHDX, OVFそれぞれのフォーマットからなるVMイメージと連携することができます。自動テスト機能ではAWS提供のテストとユーザー定義のテストを組み合わせることもできます。 それでは、EC2 Image Builderの開始方法を見ていきましょう。 OSイメージビルドパイプラインの作成 AWSマネジメントコンソールのサービス一覧からEC2 Image Builderを選択し、EC2 Image Builderマネジメントコンソールに進みます。ここで”Create Image Pipeline”ボタンをクリックします。今回はAmazon Linux 2イメージをカスタマイズしてビルドすることにします。はじめの一歩はソースになるOSイメージを選択し、イメージに適用するビルドコンポーネントを指定し、実行するテストを構成するレシピを定義するところからです。 OSソースイメージの選択では、EC2 Image Builderの提供するAWS管理のイメージを選択しました(“Select managed images”).  この手順では他にも、自分で作成したAMIや共有されたAMIを選択することもできます。AMI IDを直接指定することができます。 “Browse images”ボタンを押すとAWS管理のイメージを選択する画面が開きます。イメージを選択するには、OS名のボックス右上のラジオボタンをクリックします。 続いてイメージに適用するビルドコンポーネントを指定します。これはインストールすべき追加ソフトウェアを指定する手順です。ウィザードの”Create build component”をクリックすると、ユーザー定義の新しいビルドコンポーネント作成のためのオプションを指定することができます。新規にビルドコンポーネントを作成するには、ビルドコンポーネントの名前(と説明書き), OS種別、コンポーネント暗号化のためのAWS Key […]

Read More

CloudTrail Insights の発表: 異常な API アクティビティの特定とそれへの対応

クラウド上でソフトウェアを構築すると、ログ記録用のシステムを初期の段階から簡単に実装できます。AWS CloudTrail などのツールを使用すると、AWS のアカウントおよびサービスで実行されたすべてのアクションの追跡が容易になり、変更の原因となったイベントを探し出すことができます。ただし、ログエントリがすべて役立つわけではありません。スムーズに実行されている場合のログエントリは、さながら工場で安定して響く安心感のある機械音のようなものです。しかし不具合が発生した際には、その音が邪魔になりどの機器に不具合があるのかが聞き取りにくくなります。ログデータの量が膨大になる可能性があるような大規模なソフトウェアシステムでも、同じことが言えます。その記録を精査して実用的な情報を見つけるのは骨が折れる仕事です。記録の精査には通常、多くのカスタムソフトウェアやカスタム統合が必要なため、新しいサービスが追加されたときに誤検知やアラート疲れを引き起こすおそれがあります。 そこで、ソフトウェアのオートメーションと機械学習が役立ちます。本日、すべての商用 AWS リージョンで AWS CloudTrail Insights をリリースします。CloudTrail Insights は、CloudTrail の証跡からの書き込み管理イベントを自動的に分析し、異常なアクティビティを警告します。たとえば、確立されたベースラインと異なる TerminateInstance イベントの増加があった場合、Insight イベントとして表示されます。こうしたイベントにより、異常な API アクティビティの検出とそれへの対応がこれまで以上に簡単になります。 AWS CloudTrail Insights の有効化 CloudTrail は、ユーザーアクティビティと API の使用状況を追跡します。AWS マネジメントコンソール、AWS SDK、コマンドラインツール、その他 AWS のサービスを通じて実行されたアクションを含む、AWS アカウントアクティビティのイベント履歴が提供されます。AWS CloudTrail Insights を起動すると、これらのログの異常なアクティビティを検出する機械学習モデルが、数回クリックするだけで有効になります。AWS CloudTrail Insights は、過去の API コールを分析し、使用パターンを識別し、異常なアクティビティの Insight イベントを生成します。 put-insight-selectors コマンドを使用して、AWS コマンドラインインターフェイス (CLI) から証跡に対する Insights を有効にすることもできます。 $ aws cloudtrail put-insight-selectors –trail-name trail_name […]

Read More

Amazon S3 アップデート — SigV2 の廃止時期、延期と変更

Amazon S3 API に対して行うすべてのリクエストは、それが本物であることを確認するために署名する必要があります。初期の AWS では、署名バージョン2 または SigV2 と呼ばれる署名モデルを使用していました。2012年には、より柔軟な署名方法である SigV4 を発表し、2013年以降に開始されたすべてのリージョンでは、こちらを唯一の署名方法としました。また、その時点で、すべての新しい S3 アプリケーションにこちらのSigV4を使用することをお勧めしました。 2018年に、我々はSigV2のサポート終了を2019年6月後半とするという発表をしました。多くのお客様がアプリケーションを更新してくださいました(多くのケースで単純にSDKのアップデートを行うだけです)が、SigV4を使用するために、サポートを延期してもらえないかという多くのご要望をいただきました。 新しい日付、新しいプラン オリジナルのプランに関するフィードバックに応じて、重要な変更を行っていきます。概要は次のとおりです。 オリジナルのプラン — SigV2のサポートは2019年6月24日に終了します。 改訂されたプラン — 2020年6月24日以降に作成された新しいバケットは SigV2 署名付きリクエストはサポートされません。ただし、既存のバケットについて引き続き SigV2 がサポートされますが、我々はお客様が古いリクエスト署名方法から移行するよう働きかけます。 既存のバケット、それは SigV2 をサポートする一部のAWSリージョンにおいて、SigV2 を引き続き使用することはできますが、SigV4 に移行することを強くお勧めします。そのことで重要なセキュリティ上のメリットと効率性のメリットが得られます。この新しい署名方法では、長期のAWSアクセスキーから派生した、別途これに特化した署名キーを使用します。このキーは、サービス、地域、および日付に固有です。これにより、サービスとリージョン間の分離が強化され、キーの再利用に対する保護が強化されます。内部的に、SigV4 実装では認証チェックの結果を安全にキャッシュすることができます。これにより、レイテンシーが改善され、アプリケーションの全体的な堅牢性向上が期待できます。詳細については、「署名バージョン4の変更点」を参照してください。 SigV2 を使っているかどうかの判断方法 S3 は 2006年以来からのAWSサービスです。あなたやあなたの前任者が書いたコードの一部はまだまだ現役で利用されている可能性があり、SigV2で署名された要求を忠実に行っているかもしれません。CloudTrailのデータイベントまたは S3 サーバーアクセスログを使用して、この古風なリクエストを見つけることができますので、そのアプリケーションを更新対象にしてください。 CloudTrailのデータイベント — 各 CloudTrail イベントエントリの additionalDataElement 内で SignatureVersion 要素を探します(詳細については、「AWS CloudTrail を使用して Amazon S3 署名バージョン2リクエストを識別する」を参照してください)。 S3 サーバーアクセスログ […]

Read More

新発表 – AWS Toolkits for PyCharm、IntelliJ(プレビュー)、Visual Studio Code(プレビュー)

ソフトウェア開発者には好みの開発ツールというものがあります。パワフルなエディタを使う人もいれば、特定の言語やプラットフォームに最適化された統合開発環境(IDE)を使う人もいます。AWS Lambda のコンソールのエディタを使って、2014年に私は初めての AWS Lambda 関数を作りました。現在では、サーバーレス・アプリケーションをビルドしデプロイするためのツールの選択肢は豊富になりました。例えば、昨年 AWS Cloud9 がリリースされて AWS Lambda のコンソールのエディタ環境は大きく強化されました。.NET アプリケーションでは、 AWS Toolkit for Visual Studio と AWS Tools for Visual Studio Team Services を使う事ができます。 AWS Toolkits for PyCharm、IntelliJ(プレビュー)、そして Visual Studio Code(プレビュー) 今日、 AWS Toolkit for PyCharm の一般提供をお知らせします。また、 AWS Toolkits for IntelliJ と Visual Studio Code の開発者プレビューをお知らせします。これら(AWS Toolkits for IntelliJ と Visual Studio […]

Read More

新発表 – AWS Step Functions が コンピュート、データベース、メッセージング、アナリティクス、機械学習 のサービスと統合

AWS Step Functions はアプリケーション開発者のためのフルマネージドなワークフローサービスです。各アクティビティの接続と整理を、信頼性があり繰り返し可能な形で、ビジネスロジックとワークフローロジックを分離しながら、高レベルの設計と作業で実現できます。ワークフロー(ステートマシンと言います)を設計、テストした後、スケーラブルにデプロイして10,000から100,000もの処理を独立かつ同時に実行することができます。Step Functions は各ワークフローの状態を追跡し、モニタリングやロギングもシンプルにします。詳しくは 「サーバーレスワークフローを作成する」 のチュートリアルをお試しください。

Read More

新機能 – Amazon SageMaker Neo – トレーニングしたモデルをどこでも実行

機械学習(Machine Learning: ML)は、トレーニングと推論という2つの異なるフェーズに分かれています。 トレーニングは、モデルを構築すること、すなわち、意味のあるパターンを識別するためにデータセット上で ML アルゴリズムを実行することを扱います。これには大量のストレージとコンピューティングパワーが必要なことが多く、クラウドは Amazon SageMaker や AWS Deep Learning AMI などのサービスで ML ジョブをトレーニングするためのうってつけな場所になります。 推論は、モデルの使用、すなわちモデルが一度も見たことがないデータサンプルの結果を予測することを扱います。ここでは、要件が異なります。開発者は通常、待ち時間(1回の予測でどれくらい時間がかかるか)とスループット(並列で実行できる予測の数)を最適化することに関心があります。 もちろん、リソースが制約されているデバイスを扱う場合は、予測環境のハードウェアアーキテクチャがこのようなメトリックに非常に大きな影響を与えます。Raspberry Pi の愛好家として、私はしばしば、若い仲間が私の推論コードをスピードアップするためにもう少し誘導して欲しいと思っています。 特定のハードウェアアーキテクチャーのモデルをチューニングすることは可能ですが、ツールの欠如が原因でエラーが発生しやすく時間がかかります。ML フレームワークやモデル自体にマイナーな変更を加えると、通常、ユーザーは再び最初からやり直す必要があります。残念なことに、ほとんどの ML 開発者は、基礎となるハードウェアにかかわらずどこでも同じモデルを展開する必要があり、パフォーマンスは大幅に向上しません。

Read More

Amazon SageMaker RL – Amazon SageMakerを使ったマネージドな強化学習

この数年、機械学習はたくさんの興奮をもたらしました。実際、医療画像分析 から自動運転トラックまで、複雑なタスクを機械学習によって成功させ、成長を遂げてきました。それにしても、どうやってこれらの機械学習モデルは賢くなっているのでしょうか? 端的には、機械学習のモデルは、以下の3つのいずれかの方法で学習されています。 教師あり学習:ラベル付きのデータセット(サンプルと答えを含む)を使って学習を実行します。徐々にモデルは学習し、正しい解を予測をするようになります。回帰と分類などが、教師あり学習の例として挙げられます。 教師なし学習: ラベルのないデータセット(サンプルのみを含む)を使ってアルゴリズムを実行します。ここでは、モデルはデータ中のパターンを徐々に学習し、それに応じてサンプルを編集します。クラスタリングやトピックモデリングなどが、教師なし学習の例として挙げられます。 強化学習: これは上の二つとはとても異なっています。ここでは、コンピュータープログラム(エージェントを指す)は環境と相互作用し、ほとんどの場合、これはシミュレータの中で行われます。エージェントは行動に応じて正または負の報酬を得ますが、報酬は、その行動がどれぐらい良いのかを表す数値表現を出力するユーザー定義関数によって計算されます。生の報酬を最大化することで、エージェントは最適な意思決定の戦略を学ぶことができます。

Read More

Amazon SageMaker Ground Truth — 高い精度のデータセットを構築し、ラベル付けのコストを最大70%削減

1959年、アーサー・サミュエルは機械学習を「明示的にプログラムされなくても新しいことを学べる能力をコンピュータに与える学問分野」と定義しました。しかし、機械仕掛けの神 (deus ex machina) など存在せず、学習プロセスにはアルゴリズム (「どのように学ぶか」) と学習用データセット (「何から学ぶか」) が必要です。 今日では、ほとんどの機械学習タスクは教師あり学習という技術を用いており、アルゴリズムはラベル付けされたデータセットからパターンや行動を学習します。ラベル付けされたデータセットにはデータサンプルに加え、それぞれに対する正しい答え、すなわち “ground truth” が含まれています。手元の問題に合わせて、ラベル付きの画像 (「これは犬」「これは猫」) を使ったり、ラベル付きのテキスト (「これはスパム」「これは違う」) を使ったりします。

Read More

新発表 – Amazon Forecast – 時系列予測を容易に

未来を予見する能力は、信じられないほどのスーパーパワーとなります。AWSは、あなたにその力を与えることはできませんが、機械学習において、数ステップで時系列の予測を行うお手伝いができます。 時系列予測のゴールは、毎週の売上、1日の在庫レベル、1時間ごとのウェブサイトトラフィックなどの時間依存データの将来の値を予測することです。 今日の企業は、シンプルなスプレッドシートから複雑な財務計画ソフトウェアまであらゆるものを使用して、製品需要、リソースニーズ、財務パフォーマンスなどの将来のビジネス成果を正確に予測しようとしています。 これらのツールは、時系列データと呼ばれる一連の履歴データを見て予測を作成します。例えば、そのようなツールは、レインコートの将来の売上を、過去の売上データと、未来が過去によって決定されるという前提をもとにして、単に予測しようとする場合があります。 このアプローチは、不規則な傾向を持つ大量のデータセットに対して正確な予測を生成するのに苦労する可能性があります。 また、時間とともに変化するデータ系列(価格、割引、ウェブトラフィックなど)を、製品の機能や店舗の場所などの関連する独立変数と簡単に組み合わせることもできません。

Read More

Amazon Elastic Inference — GPUを利用した深層学習推論の高速化

近年の AI や深層学習の発展には、Graphics Processing Units (GPU) の素晴らしい処理能力が重要な役割を果たしてきました。 10年程前、研究者は機械学習や High Performance Computing (HPC) に対して、大規模なハードウェア並列演算能力を活用する方法を編み出しました。興味のある方は、2009年にスタンフォード大から発表され大きな影響を与えた、この論文 (PDF) をご覧ください。 現在では、GPU のおかげで開発者やデータサイエンティストは複雑なモデルを医療画像分析や自動運転の大量のデータで学習できています。例えば、Amazon EC2 P3 ファミリーを利用すると1インスタンスあたり最大8枚の NVIDIA V100 GPU、つまり混合精度演算で最大 1PFLOPS を利用できます。これが10年前の最速のスーパーコンピューターと同じパフォーマンスだなんて信じられるでしょうか?

Read More