📖

re:Invent 2024: AWS AmplifyでスケーラブルなFull-stackアプリ開発

に公開

はじめに

海外の様々な講演を日本語記事に書き起こすことで、隠れた良質な情報をもっと身近なものに。そんなコンセプトで進める本企画で今回取り上げるプレゼンテーションはこちら!

📖 AWS re:Invent 2024 - Startup to enterprise: Build frontend and fullstack apps that scale (FWM205)

この動画では、AWS Amplifyを使ってスタートアップから企業レベルまでスケーラブルなフルスタックアプリを構築する方法を解説しています。Frontend開発者がFull-stack開発者として活躍できるようになった背景や、AWS Amplify Gen 2の新機能について詳しく説明されています。特に、AgritechスタートアップのAbitのCEOによる事例では、AWS Amplifyを活用してMVPを6ヶ月でローンチし、開発コストを70%削減できた具体的な成果が共有されています。また、Amazon Bedrock連携によるGenerative AI機能の追加や、Storage Browser、Event APIなど、最新のアップデートについても紹介されています。
https://www.youtube.com/watch?v=eeNDCzL7O7A
※ 動画から自動生成した記事になります。誤字脱字や誤った内容が記載される可能性がありますので、正確な情報は動画本編をご覧ください。
※ 画像をクリックすると、動画中の該当シーンに遷移します。

re:Invent 2024関連の書き起こし記事については、こちらのSpreadsheet に情報をまとめています。合わせてご確認ください!

本編

AWS Amplifyの概要とスタートアップの進化

Thumbnail 0

Thumbnail 20

みなさん、こんにちは。本日は、スタートアップから企業レベルまでスケーラブルなフロントエンドおよびフルスタックアプリの構築についてお話しします。今日のアジェンダはこちらです:まず、AWS Amplifyとは何かについてお話しします。この1年間取り組んできた新機能や、最近発表したばかりの新しい内容についてご紹介できることを大変嬉しく思います。 また、特別ゲストをお迎えして実際のカスタマーストーリーをご紹介します。その後、Amplify Gen 2について説明し、新機能の詳細をご紹介します。さらに、認証、ストレージ、データ、Functions、AIなど、Amplifyが扱う様々なカテゴリーについて見ていきます。最後に、AWS Amplifyを使用したWebサイトのホスティング方法についてお話しします。セッションの最後には、十分な質疑応答の時間を設けています。

Thumbnail 80

まず自己紹介させていただきます。私はSenior Developer AdvocateのErik Hanchettです。Ritik、自己紹介をお願いできますか? ありがとうございます。みなさん、こんにちは。本日はお越しいただき、ありがとうございます。長い1日だったと思いますが、最後まで参加していただき感謝します。私はRitik Khatwaniです。AWSのSenior Startup Solutions Architectとして、スタートアップのお客様のAWS上での構築と成長をサポートしています。

Thumbnail 110

スタートアップから企業への進化は、実に興味深い道のりです。 この journey全体を通して変わらないものは何かと言えば、それはビジネス目標が常にお客様のニーズに沿っているということです。私たちのお客様は要求が厳しく、迅速な開発と、魅力的でスケーラブル、そしてトラフィックスパイクにも対応できるアプリケーションを求めています。また、開発者の体験も重要です。小規模なチームから始まり、チームが成長していく中で、開発者体験は人員の増加やアプリケーションの拡大に対応できる必要があります。そして、可用性と信頼性は決して忘れてはならない要素です。スタートアップとしての評判は、お客様への提供能力にかかっているのです。

スタートアップの成長とAWS Amplifyの役割

Thumbnail 160

では、この進化の過程で変化するものは何でしょうか。ここにいらっしゃる皆さんは何らかの形でビルダーだと考えてよろしいでしょうか?ビルダーでない方は手を挙げていただけますか?照明が明るくて見づらいのですが、手が挙がっていないようで何よりです。初期段階では、インキュベーターやアクセラレーター、寮の一室やガレージなどで、創業者が慣れ親しんだ技術スタックから始めることが多いでしょう。私たちビルダーは同じことを繰り返すのは好みません。知っているものを再利用したいと考えます。この段階では、使用するフレームワークはオープンソース系のものが多く、1つか2つのアプリを構築して運用することになります。

しかし、成長とともに、この journey は大きく様変わりしていきました。独自のコンポーネントを追加し始めるかもしれません。もし聞き覚えがあるかもしれませんが、サービスを追加していく中で、JavaバックエンドやSpringバックエンド用の基本的なPOM XMLファイルを用意したり、独自のブランディングやスタイリングを持つUIライブラリを作成したりすることがあったと思います。これは、プロダクトマーケットフィットを見つけ、より多くの顧客を獲得し始める成長段階で行われます。開発チームも、新しいタイプのエンジニアやビルダーを加えていくかもしれません。典型的には、フロントエンドアプリケーションを構築する人々とバックエンドを構築する人々に分かれ、さらには運用を担当する別のオペレーションチームが存在するかもしれません。

Thumbnail 300

ユニコーン企業や大企業へと成長していくにつれて、より複雑さが増していきます。フレームワークはより独自のものとなり、複数のアプリケーション、複数の開発者やエンジニアリングチーム、さらにはPlatformチームやSREのような役割が必要になるかもしれません。これは、スタートアップがProduct Market Fitから成長段階を経て、ユニコーン企業になり、最終的に安定した大企業へと成長していく典型的な道のりでした。しかし、私たちが近年気づいたのは、Frontendの開発者がFull-stack開発者になってきているということです。

Thumbnail 310

Full-stackと言うとき、それは実際には何を意味するのでしょうか?アプリケーションのスペクトラムを見てみると、私がスマートフォンを手に持って、画面から内部に向かって見ていくと、このスペクトラムの右側にはFrontendがあり、HTML、CSS、JavaScriptなどの技術を使ってそれらを構築しています。そこから順を追って内部に進むと、それらのアプリはどこかのサーバー上で動作しているAPIを呼び出し、そのAPIはJava、.NET、Pythonなどのサーバーサイド言語で書かれ、様々な種類のサーバー上で動作しています。Tomcatを使用し、最終的にはどこかのデータベースにデータを保存します。以前は主にリレーショナルデータベースでしたが、今はそうとは限りません。

現在では、Full-stackアプリケーションは本質的に変化しています。Frontend開発者は、新しい言語や全く新しい技術を学ぶ必要なく、右から左まで全領域をカバーできるようになっています。GraphQLのようなツールを使用すれば、クエリやミューテーションを書き、Frontendが必要とするデータに合わせてAPIを構築し、素早く反復開発することができます。Frontendとサーバーサイドの言語を分ける代わりに、Node、JavaScript、TypeScriptですべてを書くことができるようになりました。

Thumbnail 450

Backendとビジネスロジックの実際の運用に関しては、Serverlessアプリケーションの構築へとシフトしているのが見られます。プロビジョニングされたサーバー、VM、EC2インスタンスを持つ代わりに、FargateのようなServerlessコンテナでAPIを機能させたり、単にLambda内で実行したり、GraphQLリゾルバーとして実行したりすることができます。これがビジネスロジックの新しい居場所となっています。そして、GraphQLを使用してデータベースと通信できる場合、Frontend開発者チームがこのFull-stackアプリケーションを構築するために新しいスキルセットを学ぶ必要はありません。その結果、Frontend開発者がクラウドの意思決定を主導するようになってきています。画面上のピクセルから、ボタンを押したときのAPIコール、そしてデータセンターのどこかにストレージにバイトが書き込まれる最終地点まで、これらすべてを今ではFull-stack開発者が行うことができ、より迅速にアプリケーションを構築できるようになっています。

Thumbnail 470

Thumbnail 510

これが私たちがAWS Amplifyを構築した理由です。AmplifyはFrontend開発者がFull-stackアプリケーションを簡単に構築できるようにするために作られました。Amplifyをご存知の方、あるいはAmplifyで開発したことがある方は何人いらっしゃいますか?手を挙げていただけますか。かなりの数の方がいらっしゃいますね、素晴らしいです。Amplifyをご存知で、過去に使用された経験がある方々に向けて、さらに多くの新機能が登場する予定で、それについては後ほどErikが詳しくお話しします。皆様のような何十万ものお客様が、すでにAmplifyを使用して市場投入までの時間を短縮し、スタートアップをより迅速に成長させています。

Abitの成功事例:AWS Amplifyを活用したAgritechソリューション

Thumbnail 540

本日は、Abitの創業者兼CEOであるChiara Antonucciをお招きして、成功事例をお話しいただきます。本日はご参加いただき、ありがとうございます。Chiaraさん、以前はコンサルタントをされていて、現在はAgritechスタートアップの創業者となられましたが、Abitを設立されたきっかけを教えていただけますでしょうか? イタリアの大手食品会社のコンサルタントをしていた時のことです。ある日、R&Dディレクターと話をしていた際、砂糖の価格を知っているかと尋ねられました。私にはわかりませんでしたが、砂糖が彼らの生産における重要な要素だったため、この質問について深く考えさせられました。そして考えを進めていくうちに、原材料の調達と評価に大きな問題があることに気づきました。そこから遡って調べていくと、農業が重大な課題に直面していることがわかったのです。

Thumbnail 610

数字を見てみると、2050年には世界人口が98億人に達すると予測されています。その一方で、農業は世界の淡水の70%を使用し、耕地の50%を使用し、さらに世界の排出量の24%を占めています。この悪循環をどのように断ち切るかという問題に取り組む中で、最も大きな問題の2つが土壌の劣化と土壌の生物多様性の低下であることがわかりました。土壌の健康は、食料生産だけでなく、生態系や気候変動の緩和にとっても重要です。問題は、農家が土壌が健康かどうかを知るためのツールにアクセスできないことでした。

Thumbnail 680

そこでAbitが登場したのです。 Abitは、土壌の生物多様性をKPIとして活用し、農家を支援する初のAgritechソリューションです。私たちは、データ駆動型のプラットフォームを提供し、農家が土壌の健康状態と生物多様性を分析し、生産性とサステナビリティを向上させるための長期的な戦略を立てられるよう支援しています。これは、先進的な診断技術が医療を変革したように、土壌のための診断ツールだと考えていただければと思います。

Thumbnail 730

このプラットフォームは、 衛星データや気象データなど、さまざまなデータソースを活用して機能します。これらのデータは、独自のアルゴリズムによって処理され、一方では生物多様性指数を計算し、もう一方では土壌が将来どのように変化するかを予測します。私たちは顧客に土壌生物多様性指数に関する様々なサービスを提供し、生物多様性を向上させるためのカスタマイズされた推奨事項を提供しています。CO2モニタリングでは、土壌にどれだけのCO2が貯蔵されているかを把握できます。また、サステナビリティ認証の構築を支援し、データ分析間のフィールドモニタリングも実施しています。

Thumbnail 810

このプラットフォームの開発において、AWS Amplifyは私たちにとって不可欠でした。AWS Amplifyは、開発者がフルスタックアプリケーションを迅速かつ効率的に作成することを可能にしました。 このプラットフォームを構築することにしたのは、実験室で土壌を分析すると、このスライドのような状態が見られるからです。土壌は世界で最も複雑な生態系の1つです。たった1匙の中に、2万以上の生物が存在していることを想像してみてください。この土壌サンプルを実験室で見ると、小さな昆虫や菌類、バクテリアなどの生物が観察できます。しかし、このような画像で見ると、実験室の外部とコミュニケーションを取るのが非常に困難です。そのため、私たちにとってテクノロジーが非常に重要なのです。テクノロジーによって、この複雑なデータを使用可能な形に変換することができます。つまり、農家を支援するために、複雑さを明確さに変換することが重要だったのです。

Thumbnail 880

その写真を見て、私は高校の実験室を思い出すと同時に、なぜか食欲も失せてしまいました。その写真を共有していただき、ありがとうございます。この新しい冒険を始めて、このテクノロジープラットフォームの構築を考え始めた時、なぜAWSを選んだのですか?そして、その提携は農家の方々向けのツール開発にどのように役立ちましたか?

Abitにとって、このパートナーシップは極めて重要でした。その理由を3つの主要な観点から説明させていただきます。まず1つ目は私たちのニーズです。Startupの世界、イノベーティブな分野から来る、スケーラブルで迅速であることへのニーズがあります。私たちの組織にとって、さらに重要な2つのニーズがあります。それはタイミングと俊敏性です。Agritechの分野で仕事をする場合、好きなタイミングではなく、自然にとって適切なタイミングでソリューションを提供しなければなりません。これは非常に重要です。また、Agritech分野は新しい分野と考えられ、市場の動きが速いため、俊敏性が不可欠です。

Thumbnail 1020

AWSとAmplifyは、これらのニーズを満たす理想的なエコシステムを提供してくれます。AWS Amplifyを使用することで、スタートがより容易になりました。最も重要なのは、AWS Amplifyが成長に対応できる準備が整っているということです。Amplifyのおかげで、より速くスケールアップし、1つの地域から複数の国へ、1人の農家から多くの農家へと展開することができ、初期投資を抑えながら実験、テスト、前進する可能性を得ることができました。 ここで、AWS Amplifyの価値を示す印象的な数字をご紹介します。私たちはわずか6ヶ月でMVPを開発しローンチしました。開発コストを70%削減でき、これらのリソースを他のイニシアチブに再配分することができました。そして、私たちにとって非常に重要だった市場投入までの時間を68%短縮することができました。

Thumbnail 1050

3つ目に強調したいのは、オンボーディング体験です。先ほど申し上げたように、Amplifyの選択は私たちにとって重要な決断でした。なぜなら、私たちはゼロからのスタートで、アイデアと2人の開発者だけのStartupだったからです。そして、AWS Amplifyは私たちにとって全く新しいものでした。本当に助けになったのは、AWSとのコラボレーション、Solution Architectsとの協力、Acceleratorへの参加、コミュニティへの参加、ビデオトレーニングの機会、Advanced Partnerとのコラボレーションでした。これらすべてのことが、初期投資後のROIを2倍にしてくれました。開発速度が2倍になったのは本当に素晴らしいことです。

Thumbnail 1130

私たちにとって、未来はイノベーションを意味します。そして、私たちの未来のイノベーションの4つの領域を強調しました。1つ目は規制の変更への対応です。これは私たちにとって非常に重要です。例えば、2019年にヨーロッパでGreen Dealが発表されましたが、それは緑の移行のための枠組みに過ぎませんでした。2024年には、Green Dealから54の規制が生まれています。そのため、規制の変更に対応する準備をすることが非常に重要です。しかし、規制の変更に対応しなければならない一方で、市場のトレンドを先取りする必要があることも忘れてはいけません。私たちは積極的でなければならず、待つのではなく、時には未来がどうなるかについて賭けをしなければなりません。スピードを活用するためには、テクノロジーを開発し活用する必要があります。

Thumbnail 1220

私たちにとって、Artificial Intelligenceは重要なポイントの1つでした。時が経つにつれて、衛星データが農業において非常に重要になってきました。規制要件で農家がこのデータを持つことを求められているため、私たちは衛星データを統合することを決めました。そこでSageMakerの活用を始めましたが、その決定を下した時、大きな課題に直面しました。プラットフォームに衛星データをどのように統合し、組み込むかということが課題でした。

AWSが私たちの作業をシンプルにし、サポートしてくれました。なぜなら、SageMakerとAWS Amplifyの統合により、私たちのモデル、アルゴリズム、地理空間機能が強力であるだけでなく、容易にデプロイできることが保証されたからです。これにより、アーキテクチャを再構築することなく、新機能やアップデートをリリースできる俊敏性が得られました。素早くスタートし、データとともに成長し、そしてスケールアップするという素晴らしい例ですね。では、これまでのご経験から、聴衆に伝えたい重要なポイントは何でしょうか?

Thumbnail 1330

今日のAgritech分野における重要なポイントは2つあると思います。農業は持続可能性の需要に応えるために進化しなければならず、テクノロジーがそれを可能にする enabler なのです。Agritech分野以外で働いている方々に伝えたいのは、AWS Amplifyが私たちのケースのように、アイデアを素早く実現し、スケールするための完璧な基盤を提供してくれるということです。本当にありがとうございました。パートナーシップに感謝し、Amplifyを使用してストーリーを共有してくださったことに感謝し、そして本日ご参加いただいたことに感謝いたします。

AWS Amplify Gen 2の新機能と主要サービスの詳細

Thumbnail 1400

Amplifyの新機能についてお話しするために、Erikにバトンを渡したいと思います。ありがとう、Chiara、素晴らしいストーリーでした。顧客のストーリーを聞き、AWS Amplifyをどのように使用しているかを見るのは本当に素晴らしいことです。このプレゼンテーションの冒頭で少し触れたように、AWS Amplifyの世界には多くの新機能があり、それは実際に顧客の要望から生まれたものです。では、その一部をご紹介させていただきます。Amplify Gen 2をご紹介しましょう。

Thumbnail 1420

ここでAmplify Gen 2を使用したことがある方はいらっしゃいますか?1、2人くらいでしょうか。AWS Amplify Gen 2は今年初めにGeneral Availabilityになったばかりで、これまでのAmplifyとは異なる使い方ができます。私たちはTypeScriptと開発者体験に本当に注力しました。すべてのツールがType-safeであり、非常に素早く開発できることを確実にしたかったのです。私は大のTypeScriptファンで、そこからスタートしました。また、優れたCI/CDフローを確保し、Amplify Hostingサービスで簡単にコードをデプロイできるようにしたいと考えました。バックエンドのAmplify Hostingプロバイダーに直接接続されたGitブランチとGitプッシュを導入し、その仕組みについて少しご紹介させていただきます。

Thumbnail 1500

これまでの Amplify のバージョンで気づいたことの1つは、Amplify の機能を超えて何かをしたいというユーザーがいたということです。そこで、CDK をファーストクラスの存在として扱えるようにしました。Amplify で構築できるものはすべて CDK でも構築でき、Amplify で提供していない機能が必要な場合は CDK レイヤーまで掘り下げることができます。これは非常に強力なパターンだと考えています。 つまり、Amplify は Frontend 開発者がフルスタックアプリを作成するためのツールセットなのです。重要なのは、CDK 上に構築されているという点で、これは私たちにとって非常に重要な意味を持っています。

AWS Amplify はアラカルト方式と考えることができます - すべてを使う必要はなく、必要な部分だけを選んで使用できます。提供している機能の一部をご紹介します:エンドツーエンドの型安全性、Git ベースのフルスタック CI/CD、ファイルベースの規約、開発者ごとのサンドボックス、Gen AI、そして刷新されたマネジメントコンソールです。AWS コンソールで Amplify と入力すると、まったく新しい直感的なインターフェースが表示されます。

Thumbnail 1570

Thumbnail 1580

Thumbnail 1590

Thumbnail 1600

それではデモを始めましょう。 片側にサーバーコードがあり、クライアント側にモデルを作成できます。リアルタイムで Todo のデータスキーマを構築しているところです。 位置情報、緯度、経度を追加しています。これを追加して保存すると、 クライアント側でこれを認識できるようになり、IntelliSense を使って補完できます。例えば、ここに priority があり、priority の high、low、medium が 使用可能になっています。これによってデータ側の作業が非常に迅速に進められます。このリソースファイルは Frontend コードの Amplify フォルダに存在し、インフラストラクチャを定義します。一般的な CDK とは見た目が異なりますが、これは実際にはより高レベルの構成要素です。Amplify での構築を開始し、データを作成することを簡単にしたかったのです。

これは Gen 2 で導入した機能の1つで、エンドツーエンドのカバレッジを確保しています。こちらは Amplify Gen 2 を使用した場合のフルスタック体験を示す図です。お好みのフレームワークで Frontend コードを書くことができます - 私は Vue.js の大ファンですが、React、Angular、Astro、Next.js なども使えます。Amplify のオープンソースツールを使ってアプリを構築でき、UI コンポーネントライブラリや TypeScript ライブラリも含まれています。Figma でウェブサイトをデザインして Frontend で利用できるようにする Figma-to-code オプションも用意しています。

Thumbnail 1700

お客様から聞いた声の1つに、ローカルでのテストが必要だが、それが必ずしも簡単ではないということがありました。モックサーバーやさまざまな回避策を使用している人もいました。そこで、いつでも停止、再起動、削除が可能で、複数のソフトウェア開発者間で共有できる Ephemeral 環境を作成しました。この場合、開発者はローカルマシン上で Frontend と Backend のコードを実行する環境を持ち、クラウド上に Ephemeral 環境をスピンアップしてローカルでテストし、終了したら環境を削除できます。これにより開発者の生産性が大幅に向上しました。

Thumbnail 1760

リソースと環境を管理するためのGitベースのワークフローについてご説明します。フロントエンド開発者が一時的な環境でローカルテストを行う場合、QAチームやプロダクトマネジメントチームが、開発者の作業内容や環境を確認する必要があるかもしれません。Gitワークフローでブランチを作成すると、それぞれのブランチを異なる環境に接続できます。例えば、mainブランチをユーザーが利用するプロダクション環境に接続し、開発者がテストを行うための開発ブランチや、さまざまなフィーチャーブランチを用意することができます。これらはすべて、バージョン管理システムとAmplify Hostingを使って簡単にセットアップできます。

Thumbnail 1830

開発環境については、パスワード保護を設定することができ、ブランチプレビューなどの便利な機能も用意されています。では、どのように始めればよいのでしょうか?npm create amplify@latestを使用します。 Node.js 18以上が必要です。このコマンドを実行すると、フォルダ構造が作成されます。通常は、フロントエンドコードと同じ場所で実行し、そこでバックエンドインフラストラクチャの定義を始めることができます。すべてTypeScriptで記述され、必要に応じて段階的に拡張できます。データのセットアップやアイデンティティプロバイダーとしてのAmazon Cognitoバックエンドのセットアップに役立つ、便利なボイラープレートコードも用意されています。

Thumbnail 1860

AWS Amplify Gen 2ではどのようなサービスに焦点を当てているのでしょうか?主に6つのサービスを選びました。データレイヤーについては、先ほどのデモで見たリソースファイルで、クライアント側と、AWS AppSyncによってサポートされているモデルを定義する側がありました。ここでモデルやリレーションシップ、データベースに必要な要素を定義できます。AWS AppSyncは私たちのマネージドGraphQLサービスですが、現時点では、GraphQLクエリを書かなくても、APIライブラリを使用できるように、GraphQLの複雑さの多くを抽象化しています。

現代のアプリケーションにはAWS Lambdaが不可欠だと考えています。Functionを使用するのが正しいアプローチで、AWS Amplifyを使えば、この優れたインターフェースでFunctionを簡単にセットアップできます。認証にはAmazon Cognitoを使用しており、フェデレーションログイン、ユーザーディレクトリなど、さまざまな機能を提供しています。ストレージにはAmazon S3を使用しています。Gen AIについては、今回のre:Inventでも多く取り上げられましたが、AWS Amplifyは最近、Amazon Bedrockや大規模言語モデルへの接続を非常に簡単にする新機能をリリースしました。そして繰り返しになりますが、私たちが提供するこれらの高レベルの構成要素では対応できないサービスを作成する必要がある場合は、いつでもCDKレイヤーまで戻ることができます。

Thumbnail 1990

認証については、ライブラリはアラカルト方式です - 必要に応じて使用できます。フロントエンドアプリケーションにサインイン、サインアウト、フェデレーションログインを追加する必要がある場合、数行のコードでこのログインシステムを追加できる、事前構築されたUIコンポーネントライブラリを提供しています。ブランディングやニーズに合わせて簡単にカスタマイズでき、多要素認証やパスワード回復などの便利な機能も備えています。サインアップを非表示にしてサインインインターフェースだけを表示することもできます。完全にオープンソースで、常に課題や機能リクエストを募集している事前構築されたUIコンポーネントライブラリを使用しない場合でも、JavaScript/TypeScriptクライアントライブラリを利用できます。実際、プラットフォームに応じて複数の種類のライブラリを用意しており、必要な機能すべてにAmazon Cognitoを使用して、お好みのUIを自由に作成できます。

Thumbnail 2070

Amplify Dataについてですが、先ほどデモをお見せしましたが、これはAWS AppSyncと呼ばれるマネージドGraphQLサービスです。デフォルトではAWS AppSyncはAmazon DynamoDBと通信しますが、すでに作成済みのRDSデータベースなど、他のデータベースがある場合はそれに接続することもできます。AWS AppSyncとの通信を簡単にするためのライブラリを提供しており、作成、読み取り、更新、削除の操作やリストのサブスクリプションなど、必要な機能をすべて実行できます。

最近、Event APIと呼ばれる新機能を追加したばかりです。このEvent APIはGraphQLを使用せず、パブリッシュ-サブスクライブ通信のためのAWSサービスへの接続を簡単に実現できます。これはチャットなど、さまざまなユースケースに最適で、ぜひ知っておいていただきたい機能です。

Thumbnail 2140

Amplify Storage は、S3バケットを作成する方法を提供します。データのアップロード、署名付きURLの取得、保存データの一覧表示など、期待される操作を実行するためのS3バケットとの通信ライブラリをはじめ、いくつかのライブラリを用意しています。また、アップロードの追跡などの追加APIも提供しています。3日前にリリースしたばかりの素晴らしい新機能が、Storage Browserです。Storage Browserは、Webページに配置できるS3バケット用のビジュアルインターフェースを提供します。エンタープライズIDやAmazon Cognitoなどの企業ログインと連携でき、各ユーザーが独自のバケットを持ち、ファイルのアップロード、削除、一覧表示を行うための使いやすいインターフェースを利用できます。Storage Browserの製品ページにアクセスすると、私が作成したデモ動画をご覧いただけます。S3バケットを使用する際の優れたビジュアル体験を求めている方々にとって非常に有益で、堅牢な認可レイヤーも含まれています。

Thumbnail 2220

Lambdaは非常に重要で、私はすべてのアプリケーションでComputeとServerlessを使用しています。Lambda関数を作成するための使いやすいインターフェースを提供しており、ここで示すように、タイピングだけで簡単にLambdaを作成できるdefine関数を使用できます。今日お見せしているすべての機能に対応しています。IAMセキュリティルールについて気になる方もいらっしゃるかもしれませんが、それらはすべて私たちが処理します。AWSではセキュリティを最優先事項としているため、すべてが安全であることを確認しています。また、Lambda関数との通信のためのライブラリも用意しています。GraphQL APIのリゾルバーとしての使用や、ユーザーのサインアップ時のLambdaのトリガー、API Gatewayを介したREST APIの背後への配置など、さまざまなシナリオで使用できます。これらの機能の実装を簡単にし、最近ではLayerのサポートも追加しました。

Thumbnail 2290

Thumbnail 2310

これらの新機能に加えて、多くのお客様がAmazon Bedrockによる大規模言語モデルの使用を望んでいたことから、生成AIを追加する機会を認識しました。そこで、AWS AmplifyにAmplify AI kitという新機能を導入しました。これは、Amazon Bedrockの大規模言語モデルと対話するための、シンプルで直感的な方法を提供します。先ほど示したリソースファイルと同じように、システムプロンプトやアクセスしたい異なるモデルを定義できます。期待される引数と出力をJSON形式で定義できるAPIを用意しています。フロントエンド開発者にとって特に便利な点は、大規模言語モデルからの予期せぬ返答を心配する必要がないことです。会話APIを使用してそれを処理し、クライアントのオープンソースAPIライブラリとUIコンポーネントライブラリの両方を提供しています。

私たちは、これらのモデルとの対話にチャットが優れた方法であることを発見したため、チャットインターフェースを作成するためのUIコンポーネントライブラリとAPIを開発しました。現在はReactのみで利用可能で、Reactアプリケーションに追加できます。WebSocketsやその他の実時間通信を自分で実装する心配なく、チャットインターフェースを提供します。Large Language Modelに接続し、設定したプロンプトを追加するだけで済みます。この例では、いくつかのプロパティを表示するように依頼しましたが、チャットインターフェースはシンプルに見えるかもしれませんが、実際には非常に優れた機能を追加しています。

これらの機能をご覧いただくと、ユースケースに応じて特定のチャット出力を得ることができます。例えば、Webページに表示される顧客の事実やよくある質問でこれを使用する場合、誰かが質問をしても単純なチャットインターフェースで表示したくない場合があります。私たちが「Response Component」と呼んでいるものを作成でき、好みのインターフェースを正確に実現できます。基本的にはReactコンポーネントなので、Large Language Modelが返す情報を含む素敵な小さなカードを作成し、使いやすいインタラクティブなインターフェースを実現できます。私たちは、これを分かりやすく使いやすいものにしたいと考えており、実際にそれが実現できています。

Amplify HostingとAmazon Q Developerの紹介

Thumbnail 2470

Thumbnail 2490

Amplify Hostingは、おそらくAmplifyの名を冠したサービスの中で最も人気のあるものの1つです。これは単独で使用することも、先ほどお見せした関数やGenerative AI、Amplify AI Kitなどと組み合わせて使用することもできますが、これは管理されたWebホスティングプラットフォームです。CI/CDデプロイメントと連携でき、このフルスタックのアイデアと本当によく機能します。Next、React、Angular、Viteを含む、Webホスティングプラットフォームに期待されるすべての主要フレームワークをサポートしています。カスタムドメインをサポートしており、Amazon Route 53で設定するか、既存のレジストラから移行できます。きめ細かなアクセス制御、複数環境のマッピングがあり、先ほどの図で示したように、各環境をGitブランチに基づいて設定できます。通知ビルド、フック、ブランチプレビューがあり、常に新機能を追加しています。

Thumbnail 2550

これがAmplify Hostingで実行されているWebサイトの例です。お気に入りのフレームワークでフロントエンドを構築したWebサイトをAmplify Hostingでホストできます。UIコンポーネントライブラリ、さまざまなAmplifyライブラリ、さらにはFigmaからコードまでを使用してフロントエンドを好きなように作成し、すべてが私たちのマネージドでグローバルに分散されたホスティングサービスでホストされます。Gen 2または Generation 1のどちらを使用しても、すべてが問題なく動作します。

Thumbnail 2600

Thumbnail 2630

このカンファレンスで働き、多くの人々と話をしている中で、Amazon Q Developerがますます良くなっているので、特別に言及したいと思います。私たちはこれを、ソフトウェアの構築、運用、変革のための最も有能なGenerative AI搭載アシスタントと呼んでいます。VS Codeの拡張機能として追加するか、さまざまなIDEで使用でき、ソフトウェア開発の効率を本当に向上させます。Build、Operate、Transform、Data and AIという重要なテネットがあります。基調講演のアナウンスでこれらの情報の一部をご覧になった方もいらっしゃると思いますが、特にAWSを使用していてAWSのカンファレンスに参加されている方には、非常に強力なツールなので言及しておきたいと思います。

IDE で Amazon Q を試してみて、実際の使い心地を確認してみてください。私たちは、ソフトウェア開発ライフサイクル全体を通して、本当に素晴らしいツールだと考えています。特にセキュリティ面での性能は抜群です。先日、デモを作成していた時に、セキュリティの脆弱性をチェックするように提案してくれたのですが、それは本当に素晴らしかったですね。どのようなアプリケーションでも、さまざまなユースケースに対応できることは間違いありません。ありがとうございました。


※ こちらの記事は Amazon Bedrock を利用することで全て自動で作成しています。
※ 生成AI記事によるインターネット汚染の懸念を踏まえ、本記事ではセッション動画を情報量をほぼ変化させずに文字と画像に変換することで、できるだけオリジナルコンテンツそのものの価値を維持しつつ、多言語でのAccessibilityやGooglabilityを高められればと考えています。

Discussion