Amazon Web Services ブログ

Category: Best Practices

AWS Control Tower アクションの追跡、およびワークフローの自動トリガーへのライフサイクルイベントの使用

現在、新規アカウントの作成やプロビジョニングに、AWS Control Towerをご利用になっているお客様が多く見受けられます。こういったお客様は、環境の作成に、AWS のネイティブなソリューションの使用をご希望されます。それが明文化された AWS のベストプラクティスに則っていることをご存知だからです。お客様は、作成したアカウントのスケーリングを行う際に、アカウントをさらに強化できる Control Tower の追加的な機能を利用することもできます。今回の記事では、ライフサイクルイベントの使用方法をご紹介していきます。これは、Control Tower’s Account Factory を使用して新しいアカウントを作成するなどのアクションが完了したことを追跡できるようにする、Control Tower における機能の 1 つです。今回は、このライフサイクルイベントで、自動化したワークフローをトリガーする方法についても、合わせてご紹介します。この記事では、次のようなサービスを使用しています。 AWS Control Tower AWS Service Catalog AWS CloudTrail Amazon CloudWatch Events Amazon SNS 背景 AWS Control Tower では、Well-Architected なマルチアカウントの AWS 環境構築のために、AWS Organizations、AWS IAM、AWS Config、AWS CloudTrail、および AWS Service Catalog などの AWS のサービスを複数使用します。これにより、組織単位 (OU) の中のアカウントでガードレールを有効化するなどのアクションを Control Tower が実行する際には、多くのプロセスが実行され、各サービスに対しては膨大な数の API 呼び出しが送られることになります。 […]

Read More

AWS CDKでクラウドアプリケーションを開発するためのベストプラクティス

この記事では、AWS Cloud Development Kit (AWS CDK) を中心とした、大規模なチームで複雑なクラウドアプリケーションの開発を組織化するための戦略について説明します。AWS CDK では、開発者や管理者は、TypeScript、Python、Java、C#などの使い慣れたプログラミング言語を使ってクラウドアプリケーションを定義することができます。アプリケーションは、Stage、Stack、Constructに整理されており、ランタイムロジック (AWS Lambda コードやコンテナ化されたサービスなど) と、Amazon Simple Storage Service (Amazon S3) バケット、Amazon Relational Database Service (Amazon RDS) データベース、ネットワークなどのインフラストラクチャコンポーネントの両方において、モジュール化された設計手法を可能にしています。 この記事では、AWS CDKの基本的なコンセプトに関する簡単なチュートリアルではなく、より実践的な内容について説明します。ローカルでコードを書きテストする方法や、本番環境や様々なステージングアカウントにデプロイする方法、そしてチームのアプリを整理して、より大きな組織で活用する方法について説明します。 AWS CDKを初めてご利用になる方は、AWS CDK Intro Workshop から始めることを強くお勧めします。この記事では、いくつかの高度なトピックを扱っていますが、基礎を把握しておくと良いでしょう。詳細については、AWS CDKリファレンスドキュメントとGitHub リポジトリにある aws-cdk-examples  のサンプルコードを参照してください。 CDKの哲学 前回の記事では、AWS CDKの歴史とモチベーションについて説明しました。AWS CDKを設計するにあたり、私たちはお客様や社内のチームのニーズを詳しく調査し、複雑なアプリケーションのデプロイや継続的なメンテナンスの際に発生する一般的な障害パターンを分析しました。例えば、本番環境でアプリケーションの設定ファイルを編集すると、テスト環境では見られなかったエラーが発生する、などです。AWS CDKは、アプリケーション全体をコードで定義し、ソースリポジトリへのプッシュによってのみデプロイされたアプリケーションへの変更をするというモデルを可能にしています。 組織では、インフラストラクチャを作成するチーム、ソフトウェア開発を行うチーム、設定とデプロイを行う運用チームなど、一つのアプリケーションを別々の役割で担当する複数のチームが存在する場合があります。あるいは “two-pizza-team” のような小さなチームであっても、アプリケーションは次の図のように、インフラストラクチャーとコードが別々のリポジトリで管理されていて、デプロイがすべて独立したCI/CDシステムで管理されている事があります。 AWS CDKを使用すると、これらすべてを一つにまとめて、単一のリポジトリに格納された単一のアプリケーションを作成することができます。このアプリケーションでは、VPC、S3バケット、Amazon Elastic Compute Cloud (Amazon EC2)インスタンス、セキュリティグループなどの基本的なコンポーネントを定義します。また Typescript で書かれた Lambda関数のコードや、Java […]

Read More

新たに SaaS Journey Framework ホワイトペーパーを公開しました

AWS で SaaS Business Lead を務める Oded Rosenmann による記事です。 SaaS(Software as a Service)提供モデルは、多くの企業にとってますます魅力的になっています。 新規および既存のアプリケーション・プロバイダが、この提供モデルで成功を収めたいと望んでいる一方で、SaaS への移行はビジネスに大きな影響を与える可能性もあります。 多くの企業にとって、SaaS への移行は大きな変化をもたらす出来事であり、企業は自社のビジネスをあらゆる側面から検討する必要があります。サービスとしてのビジネスを定義、構築および運用するためには、製品の販売、マーケティング、開発、サポート、収益化の方法など、評価しなければいけない検討事項がたくさんあります。

Read More

AWS SaaS Boost を利用したモノリスアプリケーションの SaaS 移行

AWS SaaS Factory で Principal Partner Solutions Architect を務める Tod Golding による記事です。 SaaS (Software-as-a-Service) モデルへの移行は多くの企業にとって魅力的ですが、新しいマルチテナントアーキテクチャへの移行に必要な時間、労力、投資は大きな障壁となる場合があります。 多くの企業にとって、SaaS への移行には、新しいテクノロジーの習得、マルチテナント構造の実装、新しい運用ツールの作成、新しい課金体型の採用、といった作業を伴います。 こういった障壁は、SaaS への移行がビジネスを成長させ将来の成功の鍵になると考えている企業にとって、特に深刻な問題になる可能性があります。そのような企業の多くは、わざわざアプリケーションの再構築やコードの書き換えを行うことなく、そして時間やコストも奪われることなく、SaaS への移行を加速する方法を模索しています。 そういったニーズに対応するために、アマゾンウェブサービス (AWS) では、AWS SaaS Boost をリリースしました。

Read More

【開催報告&全資料まとめ&QA公開】Amplify Meetup #02

新年明けましておめでとうございます!アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクトの木村公哉(@kimyan_udon2)です。私は年始早々、厳かな気持ちでこのブログを書き始めたのですが、気づけば2月に突入しておりました。皆様いかがお過ごしでしょうか? 年をまたいで2020年11月27日に「Amplify Meetup #02」を開催しました。「Amplify Meetup」はAWS AmplifyのユーザーとAWS Amplifyに興味のあるエンジニアのみなさんでLTなどを通して盛り上がるコミュニティーイベントです。タイトルに「#02」とありますように、今回は第2回目の開催となります。第1回目の盛り上がりも開催報告ブログにまとまっております。継続して開催できたのは、ひとえにご参加いただいた皆様のおかげです。皆様ありがとうございます!

Read More

AWS Fargate for Amazon ECS のアップデート

先日、AWS Fargate for Amazon ECS 経由でデプロイされたタスクの設定とメトリクスの収集体験を向上させる機能を発表しました。お客様からのフィードバックに基づき、以下の機能を追加しました。 環境ファイルのサポート シークレットバージョンと JSON キーを使用した、AWS Secrets Manager とのより深い統合 より詳細なネットワークメトリクスと、タスクメタデータエンドポイントを介して利用可能な追加データ この記事を通して、これらのアップデートについて深く掘り下げ、Amazon ECS for AWS Fargate にコンテナをデプロイすると、どこに価値をもたらすことができるかを説明します。まず、簡単なデモアプリケーションのデプロイから始めて、これらの各機能を説明します。

Read More

Amazon API Gateway で API キーを使わずに認証とアクセス制御を行う

はじめに Amazon API Gateway の API キーの利用を検討したものの、API キーの制約によってプロダクトの要件を満たせないことがあります。その際、それぞれ Amazon Cognito を利用した認証と AWS WAF を用いた IP ベースのレート制限を利用するという代替案をご紹介いたします。 背景 筆者は普段、プロトタイピングソリューションアーキテクトとして、お客様のプロダクトのプロトタイプ作りをお手伝いさせていただいております。お客様の中には、ユーザー認証やアクセス制御として Amazon API Gateway の API キーの利用を検討している場合があります。しかし、API キーでお客様の要件を満たせるかどうかは、慎重に検討が必要です。 API キーには数の上限があります。Amazon API Gateway のクォータと重要な注意点 にも記載がある通り、1 アカウント、1 リージョンあたりの API キー数の上限は 500 です。そのため、多くのユーザーを抱える API では API キーによる認証は適さないと言えます。 API キーのセキュリティについても検討が必要です。API キーは有効期限が設定できないので、有効期限を設定可能な認証方法に比べ、漏洩した際のリスクが大きいです。 このように、 API キーは容易に利用が可能な反面、いくつかの考慮事項があるため、選定は慎重に行う必要があります。次の考察で、認証とアクセス制限について、それぞれ代替案をご紹介したいと思います。 考察 では、ユースケース別に代替案をご紹介いたします。 一つ目は、認証として API キーを利用したいケースです。それぞれのユーザーに対し、ユニークな API キーを割り当てることを想定しています。この場合、背景にて説明した API […]

Read More

セキュリティの実践とベストプラクティス -日本銀行様『クラウドサービス利用におけるリスク管理上の留意点』によせて-

本Blogは、クラウドにおける新しい常識”new normal”を考えるBlogの第五弾です。
多くのお客様は、より安全にサービスを提供するために多様なセキュリティを組み込み、また規制要件を満たしていくことで組織としての説明責任を果たそうとしています。
日本銀行様では、多くの金融機関のお客様がよりクラウドを活用したイノベーションをおこし、サービスを向上するために『金融システムレポート別冊』として「クラウドサービス利用におけるリスク管理上の留意点」(以下、本別冊とします)を発表しました。本Blogでは本別冊に基づき、組織がセキュリティを実践するために必要な考え方のいくつかを示してみたいと思います。

Read More

Amazon SageMaker RL を利用した Unity 上での強化学習エージェントの作成

Unityはゲーム業界をはじめ、映画や自動車業界など幅広い分野で利用されている仮想環境エンジンです。ユーザーはUnityで提供されるツールを通して、独自の物理法則、地形、キャラクターを作成することが可能です。Unity Machine Learning Agents Toolkit (ML-Agents)はオープンソースプロジェクトで、Unityで構築した仮想環境内で動作する強化学習エージェントを作成することが可能です。強化学習とは機械学習の一種であり、エージェントはある環境上の一連のアクションに対して受け取る総報酬を最大化するための方策を学習します。SageMakerにおける強化学習の取り組みについてはこちらのブログを参照ください。Unity ML-Agentsは強化学習エージェントの作成において広く使われているツールであり、作成された強化学習エージェントはレベルデザイン、バグ検出、チート検出など様々な用途で応用されています。より複雑な環境における強化学習エージェントの作成には、分散学習、ハイパーパラメータチューニングなどにおいて効率よくコンピューティングリソースを配置することが重要となります。このブログでは、SageMaker RLとUnity ML-Agentsを統合し、フルマネージドな環境で効率よくコンピューティングリソースを配置し強化学習エージェントを作成する方法について紹介します。 SageMaker RLを使う利点 Amazon SageMaker はフルマネージドサービスであり、機械学習モデルを迅速に構築、トレーニング、デバッグ、デプロイなどをするための様々な機能を提供しています。SageMaker RLはこのSageMaker上で動作し、ビルド済みのRL ツールキットを提供しています。SageMaker RLを用いることで、容易にRL環境を構築でき、TensorflowやPyTorchといったフレームワークを使用した強化学習が可能です。学習、推論ジョブはSageMakerによって管理されており、お客様は強化学習エージェントの作成に多くの時間を割くことができます。また、SageMaker RLは複数のサンプルノートブックを提供しており、どのように強化学習をロボティクス、オペレーションズ・リサーチ、金融に利用するのかなどを学ぶことが可能です。以下に紹介するソリューションもこのサンプルノートブックからすぐさま利用可能です。 SageMaker RL – Unity ML-Agents integrationの利用方法 今回利用するSageMaker RLの学習ジョブの構成は以下のようになっています。強化学習ツールとしてはRay-RLLibを使用しています。分散学習、アルゴリズム構築、ネットワーク構築、パラメータ設定などをRay-RLLib上で管理することで煩雑な作業を減らすことが可能です。Unity環境はOpenAI Gym環境としてラップすることでRay-RLLibからはUnity独自の仕様を意識することなく一般的な強化学習タスクとして扱えます。そして、学習を実行するリソースや設定についてはSageMakerで管理しています。 では、実際にこの構成で強化学習エージェントを作成する方法を順を追って説明します。 セットアップ はじめに、ノートブックの環境設定を行います。下記を実行することで、API実行用のIAMロール、S3バケットの設定やPythonライブラリのインポートなど環境設定を行うなうことができます。 import sagemaker import boto3 # set up the linkage and authentication to the S3 bucket sage_session = sagemaker.session.Session() s3_bucket = sage_session.default_bucket() s3_output_path = ‘s3://{}/’.format(s3_bucket) print(“S3 […]

Read More