📖

re:Invent 2025: AWS Amplifyによるフルスタック開発とMCPを活用した生成AI統合

に公開
2025/12/08

はじめに

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

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

📖 re:Invent 2025: AWS re:Invent 2025 - What’s new in fullstack AWS app development (DVT204)

この動画では、AWS Amplifyを活用したフルスタック開発の最新情報が紹介されています。Mark RambowとSalih Gülerが、生成AIツールとAmplifyフレームワークを組み合わせた開発手法を解説し、Model Context Protocol(MCP)を通じてAIが適切な判断を下すための仕組みを説明しています。特に今回発表されたAWS MCPは、Knowledge MCP、API MCP、Frontend MCPなどを統合し、本番環境対応アプリケーションの成功率を10%から90%に向上させることを目指しています。ライブデモでは、passkey認証、Storage Browser、Web Application Firewallなどの機能を実装し、わずか数十行のコードで複雑な機能を実現できることが示されました。CDKとのより深い統合や他のインフラストラクチャ・アズ・コードプラットフォームとの連携など、2026年に向けた計画も共有されています。

https://www.youtube.com/watch?v=Kjrh4f1I6Ag
※ こちらは既存の講演の内容を最大限維持しつつ自動生成した記事になります。誤字脱字や誤った内容が記載される可能性がありますのでご留意下さい。

本編

Thumbnail 0

AWSフルスタックアプリ開発の最新情報:生成AIの現実的な活用

AWS フルスタックアプリ開発の最新情報についてのトークへようこそ。私の名前は Mark Rambow で、一緒にプレゼンテーションをしてくれるのは Salih Güler です。私たちは二人ともベルリンを拠点としており、フルスタック開発の背景を持っています。それが今日ここでこのトークをすることになった理由です。今日は、フルスタック開発における最新情報についてお話しします。もちろん、ここ数年で起きた最大の変化の一つは、開発中に生成 AI がどのように使用されているかということで、テック開発も例外ではありません。

生成 AI があなたのすべての問題を解決しているという営業プレゼンテーションにしたくないので、ギャップがどこにあるのか、生成 AI が何ができるのか、どこで上手くいかないのか、そしてそれについて私たちが何ができるのかについて、正直なチェックポイントを設けます。物事を現実的にするために、Salih とのライブデモを行います。彼は勇敢にもステージ上でリアルなアプリを構築してくれます。

Thumbnail 30

今日ここにいるのは誰なのか見てみましょう。フルスタック開発者として自分自身を認識している人は誰ですか?手を挙げてください。ほぼ大多数ですね。素晴らしい。あなたたちは正しいトークを見つけたと思います。日々のソフトウェア開発で生成 AI ツールを使用している人は何人ですか?それはもう少し少ないですね。もしかしたら少し変えることができるかもしれません。では、生成 AI を使用して、それを二度三度チェックせずにすぐに本番環境にチェックインした人は誰ですか?そうだと思いました。誰もそんなことをしていないし、私はそれについて非常に満足しています。

Thumbnail 80

フルスタック開発者の実態:ベロシティと所有権、そして精神的負担

では、フルスタック開発者とは何でしょうか?私にとって、フルスタック開発者はスタック全体を扱う人です。フロントエンド、バックエンド、そしてデータベース。あなたたちのほとんどは、アイデアをコードに変えて本番環境で実行することができるでしょう。フルスタック開発者である理由がチームが小さいか、あるいは自分のスタートアップを一人で運営しているという人は誰ですか?実際にそのような状況だからフルスタック開発者である人は誰ですか?はい、わかりました。私にとって、フルスタック開発には美しさがあります。それは非常に実用的なアプローチです。それはベロシティと所有権についてです。

通常、あなたは一人でアプリケーションを構築しているので、バックエンドからフロントエンドまですべてを構築できます。アイデアがあれば、それをすべて実現することができます。これは起業家のプロトタイプです。素晴らしいアイデア、素晴らしい頭脳、素晴らしいスキルを持つ一人の人間がそれをすべて構築することができます。しかし、このすべてのコントロールを持っている一方で、それは一定のコストがかかります。あなたが扱っていることのほとんど、そしてやりくりしていることは、精神的な負担です。

Thumbnail 130

夜間に壊れる可能性のあるあらゆることに対処しなければなりません。追跡する必要があるセキュリティ脆弱性に対処しなければなりません。ステージに新しいアップデートがあり、新しい脆弱性が見つかりました。本当にアプリが最後まで機能しているのか。突然、テレビやソーシャルメディアに出ることになります。スケールするのか。そのすべてに対処しなければなりませんが、それは常に楽しいことではありません。去年、その複雑さの性質が変わりました。生成 AI がすべてを解決するわけではなく、むしろ複雑さに対処するスタイルが別の形に変わったのです。

Thumbnail 260

では、フルスタック開発者として何が必要なのか。ホスティングに対処しなければなりません。コンテンツデリバリーネットワークと DNS レコードに対処しなければなりません。インフラストラクチャ・アズ・コードがあります。クリックオプスをしていないからです。API ゲートウェイの設定、コンピュート、データベース、ストレージ、認証、すべてに対処しなければなりません。それだけではなく、ポケットベルも持っています。なぜなら、対処しなければならないすべての統合ポイント間に、実際にそのアプリを実現するために実装する必要があるビジネスロジックがあるかもしれないからです。少なくとも私がフルスタック開発者だった時代には、通常、予期しない午前 3 時、または子どもたちと一緒に過ごしている日曜日の午後に物事が壊れます。

これらすべてのことに対処することは、あなたの肩にかかる大きな負担です。実は、ここ数年、生成 AI はあなたに大きな後押しをしてくれました。より生産的になり、より多くのことを成し遂げることができますが、速いことが常に良いわけではありません。

Thumbnail 370

生成 AI についての私の見方、これが一般的な意見かどうかはわかりませんが、少なくとも私の頭に浮かぶのは、生成 AI は地球上で最速のキーボードだということです。でも、それ以上のものではありません。何を達成したいのかを知っている誰かが必要です。生成 AI は通常、意図や達成すべき目標を持っていません。それはあなたを速く前に進ませ、非常に自信を持ってたくさんのコードを生成するものです。ほとんどの場合、コードは正しいのですが、それがベストプラクティスに従っているかどうかをご存知ですか。セキュアなコンポーネントを提供していますか。ですから、今、対処する必要があるこの速いペースがあり、速いということはまた、それを理解する際の複雑さがはるかに増すということを意味しています。

Thumbnail 440

AWS Amplifyによる本番環境対応フレームワークの構築

過去 20 年間、複雑な統合プロジェクトに対処する必要があったとき、それを通じて私たちを助けてくれたフレームワークがありました。今日も変わりません。AWS Amplify について考えてみてください。これは AWS からのフルスタックアプリケーションフレームワークです。包括的なサービスカバレッジを備えています。グローバルホスティング、フルスタック開発用の TypeScript、パイプライン、サンドボックス、UI ビルディングコンポーネント、そしてそれらはすべて非常にうまく適合しています。CDK を使用してインフラストラクチャを定義し、Amplify がすぐにコンポーネントを持っていないカスタムヘッジでそのインフラストラクチャを拡張できます。新しいのは、カーソルまたは好みの AI ツールが実際にそれを使用しやすくするために、私たちも努力を払ったということです。

Amplify の素晴らしいところは、もう7年くらい前からリリースされていて、世界中の何十万ものアプリで使われているということです。Amplify で定義されているすべてのコンポーネントは実際に動作していて、テストもしっかりされていて、バグもすべて修正されていて、常に最新の状態に保たれています。一方、生成 AI を使う場合の問題は、ほとんどの人が経験していることですが、データベースを作成するよう指示すると、Python コードと Boto3 を使って、データベースをセットアップするために必要なすべての SDK コードを提供してくれるんです。でも、それがあなたが望んでいるものではないかもしれませんし、Aurora データベースを使うべきか DynamoDB を使うべきかについてのガイダンスも与えてくれないかもしれません。もちろん、私は常に DynamoDB を使いたいのですが、それがあなたの特定のユースケースに対して正しいことではないかもしれません。

Thumbnail 510

あなたの特定のユースケースに対応するのは、そう簡単ではありません。たくさんのプロンプティングが行われています。Amplify は、あなたが基にすることができる事前に定義されたコンストラクトを提供することで、あなたを助けています。これは AI が可能性の範囲を実際に制限するのに役立ち、その結果、あなたがレビューしなければならないコードもはるかに少なくなります。

Amplify は、私が言ったように、もう長い間リリースされていて、今年だけでも 31 の主要な機能を構築しました。基本的には毎月複数の新しいものをデプロイしていました。いくつか挙げるなら、CDK を Amplify 全体に統合しました。そして、今年統合したものの一つが CDK toolkit library で、これにより CDK をプログラム的に内部で使用することができます。これが提供するのは、L2 と L3 コンストラクトの完全な抽象化で、あなたが使用できるものです。そして CDK は AWS のベストプラクティスが組み込まれていることを約束しているので、それがあなたが使いたい正しいものであることに頼ることができます。

もう一つ、私たちが大きく力を入れたのは Storage Browser です。ここのすべてのコンポーネントですね。Storage Browser は基本的には、あなたが埋め込むことができるマイクロサイトで、S3 上のファイルをホストまたは管理するのに役立ちます。パーミッション、複数ファイルダウンロード機能、サムネイル、ファイルアップロードのカスタム検証を提供します。それらをプライベートに、または特定のグループと共有することができるので、ファイルストレージに必要なものに対して本当にエンタープライズレベルの制御を持つことができます。素晴らしいのは、カスタムコードと生成 AI でそれを構築する必要がないということで、ただドロップインするだけです。

しかし、AWS であれば、セキュリティが私たちの最優先事項であり、それは生成 AI に関しては、ほとんどの人を怖がらせるものでもあります。生成されているすべてのコードが本当にセキュアであることを確認できますか?生成されているすべてのコードをレビューするのは難しいです。ですから、Amplify に組み込んだセキュリティ関連の機能の一定のペースがあるのが見えます。Web Application Firewall の統合がありました。IAM サポートがあり、これはあなたが顧客としてログインするのに役立ちます。そして、おそらく非常に退屈なタスクの一つが refresh token rotation です。あなたの中で、証明書の有効期限が切れて、その瞬間に壊れてしまったことがある人がいれば、それを実際に復旧させるのは大変な作業です。そして、私はそれに対処する完璧な方法を見たことがありません。それは、多くの自動化と、それが起こっているという意識を必要とするものです。

Email MFA もリリースしました。私みたいに、ログインのためだけにウェブサイトに電話番号を教えたくない人もいますよね。Email MFA はそういった問題に対処する一つの方法かもしれません。最後に強調したいのは、Svelte サポートについてです。Svelte は単なる JavaScript フレームワークではなく、Amplify に統合されたものです。これはコミュニティによって実現されました。Amplify はオープンソースのコミュニティプロジェクトであり、私たちはコミュニティからの貢献に本当に感謝しています。Svelte が有名になった時、すでに Amplify でモバイルアプリケーションを持っていて、ウェブサイトでは何らかの理由で Svelte を使いたいという人たちがいました。彼らはそれが好きだったんです。だから私は、よし、手伝おう、それを実現しようと言いました。そして今、Svelte は Amplify で完全にサポートされています。これは私たちが継続してやるべきことだと思います。

あのスライドには本当にたくさんのことが詰まっていますが、これらはランダムな機能ではありません。Amplify についての私たちのメンタルモデルは、本番環境対応のアプリケーションのための堅牢な基盤となるフレームワークを構築したいということです。私たちが構築したすべてのものは、新しい Gen AI の波に乗りたい、つまり Cursor や Kiro のような AI コーディングプラットフォームをもっと使いたいという考え方で構築されています。本当に難しいことを正しく実装するために、それらをフレームワークに組み込む必要があります。そうすることで、Gen AI が推測する必要がなくなります。私たちが構築したすべてのものは、実際に Gen AI がより簡単にアクセスできるフレームワークに近づけてくれます。なぜなら、特定のことがどのように行われるべきかを推測する必要がないからです。Token rotation は、カスタムコードで実装したくないものです。これが本番環境まで完全にテストされていて、信頼できるものであることを知りたいです。

Thumbnail 820

Model Context Protocol(MCP)で生成AIのコンテキストギャップを解消

Gen AI がフレームワークから何を必要とするのか、そして顧客にとってより良いものを実現するために何が必要なのかについて、戦略的な投資を行いました。 では、Amplify と Gen AI はどうなのでしょうか。Cursor や Kiro のようなツールを使っている人はどのくらいいますか?何人かいますね。試してみるべきです。実は本当にすごいんです。マネージャーの私でさえ、また code できるようになりました。これはかなりクールなことです。Gen AI ツールでソフトウェアを作成するとき、何度も提案は正しい方向に向かっていたのですが、私の意図と完全には一致していませんでした。私が何を構築したいのかについて、頭の中にはたくさんのコンテキストがあります。そしてそれを汎用的な Gen AI ツールに転送する唯一の方法は、プロンプトを通じてです。

試したことがあるかどうかわかりませんが、私は何度も doom prompting に陥りました。最初からうまくいかなかったので、何度も繰り返して、ある時点で諦めて、よし、自分でやろうと言いました。もしそういった経験をしたことがあれば、これは良くないですよね。ある時点で、よし、この Gen AI のことは本当に実在するのか、本当に役に立つのかと感じます。そしてそれは非常に退屈に感じます。なぜなら、なぜこんなにすべてを説明する必要があるのか。もっと明らかであるべきなのに、何が起こるべきかが。しかし Gen AI はあなたの過去 2 年間の開発のコンテキストを持っていません。

Peter が先週何をしたのか知りませんし、最後のスプリント計画で何が議論されたのかも知りません。あなたのすべての会話を聞いて、それをすべて入れるようなものがあるかもしれませんが、そうするとコンテキストが大きすぎて、それもうまく機能しません。

では、基本に立ち返ってみましょう。生成AIがソフトウェア開発ライフサイクルにおいて適切な判断を下すために必要な知識を持つようになるには、どうすればいいのでしょうか。自分でJSONパーサーを構築しなければならなかった人はいないと思いますが、それはすでに利用可能なライブラリがあるからです。生成AIは車輪の再発明をして、すべてをゼロから構築しようとするべきではなく、むしろすでに用意されているものを活用すべきです。

昨年のStack Overflowの調査では、84%の開発者が生成AIを毎日使用しているか、そうするつもりだと答えていました。今年はもっと高い数字だと思いますが、確認していません。メリットは本当にあります。より多くのことをはるかに速く成し遂げることができます。ただし、時には退屈なこともあります。今年起こったことは、生成AIが実際に適切な判断を下すために必要なコンテキストのギャップを埋めようとしたことです。

今年出現した技術の一つがModel Context Protocolです。Model Context Protocolは、生成AIが特定のことを尋ねることができるサーバーを定義する方法です。次のようなタスクがあります。ベストプラクティスやドキュメンテーションで、コンテキストウィンドウに取り込む必要があるものはありますか?私たちはAWSBase MCPというModel Context Protocolサーバーをリリースしました。これはAWSのドキュメンテーション、つまりメインドキュメンテーションだけでなく、多くのアウトレット、ブログ記事、ベストプラクティスに関するすべてのものを具現化しています。

MCPの素晴らしい点は、ドキュメンテーションだけではなく、特定の事前定義された方法でワークフローを定義する機能も提供することです。これはSOPと呼ばれるもので、標準的な運用手順のようなものです。ですから、データベースを作成したい場合、それはベストプラクティスに従う特定の方法で実行されます。内部ではCDKを使用し、特定の設定があり、セキュアであることを確認し、S3バケットが公開されていないことを保証します。そうしたすべてのことは、そうでなければ退屈なプロンプトサイクルを何度も繰り返す必要があるかもしれませんが、すでにそこにあり、モデルは最初から正しい選択をすることができます。

Thumbnail 1080

私たちが見てきた問題は、汎用的な生成AIツールを使用した場合、わずか10%のケースでのみ本番環境対応のソフトウェアが作成されていたということです。ほとんどの場合、コンパイルされ、実際に動作しました。しかし、このコードに含めたいすべての細かい詳細、そして直接選択するであろうすべてのものは存在しませんでした。正しく設定されていませんでした。DynamoDBテーブルのインデックスが不足しているかもしれません。AuroraをDynamoDBの代わりに選択したり、その逆だったり、何であれ、だからこそ何度も反復する必要がありました。

MCP を使うことで、選択肢がより有効なものになることを確認できます。そして、特に Amplify というフレームワークのために、すでに作られているものを拾い上げるための知識をたくさん作成しました。CDK についても同じです。つまり、CDK、CloudFormation、Amplify は、MCP を使うツールにとって見慣れたものになるということです。それでは、Sally にバトンタッチしたいと思います。Sally はこれについてもっと深く掘り下げて、実際のライブデモで、より現実的な形で説明してくれます。

Thumbnail 1150

Thumbnail 1170

AWS MCPとKiroの発表:エージェンティックワークフローの実現

ありがとうございます、Mark。では、今日は vibe から何か実際のものへと進む私たちの旅についてお話しします。生成 AI について、私が見ている限りでは、生成 AI はまだ私たちが少し怖いと感じているものですが、これは単に私たちの生活を楽にするツールだということを理解する必要があります。このツールを使うために、AWS は実は Mark が先ほど言ったように、たくさんの異なるオプションを提供しています。 例えば、Knowledge MCP がありました。これはベストプラクティスやコード例などを取得できるものです。API もありました。これは AWS CLI を使ってアカウントから任意の情報を取得できるもので、コマンドに必要な呼び出しを行っていました。

また、frontend MCP もありました。これは React と CDK を使って最も効果的な方法でフロントエンドアプリケーションを構築できるものです。そして IAC と他のいくつかの MCP もありました。これらは AI エージェント ID やコーディングツールを使って前に進むことを可能にしていました。

もしかしたら聞いたかもしれませんし、聞いていないかもしれません。私たちは 7 月中旬に Kiro をリリースしました。Kiro は AI IDE で、コードを書くだけでなく、spec-driven development も作成できるものです。あなたが何をしたいかを言えば、それをより構造化された形にしてくれます。今日、私は AWS MCP を発表できて嬉しいです。AWS MCP は、私たちが持っている Knowledge MCP、API MCP、そして他の多くのものをまとめたものです。これらの MCP は、すでに作成した手順を通じて、フルスタックアプリケーションを作成する機会をあなたに与えます。エージェントが最高のエクスペリエンスを得るために、30 以上の異なる手順を作成しました。アプリケーションを構築するためにです。

Thumbnail 1230

Thumbnail 1290

例えば、ドキュメントを検索したい場合、もう documentation MCP を追加する必要はありません。まだできますが、する必要はありません。今は AWS MCP を使ってそれを呼び出すことができます。Amplify へのアプリのデプロイについての情報を取得したい場合、すでに持っている SOP と手順を通じて直接その情報を取得できます。AWS MCP が導入されれば、10% から 90% に切り替えたいと考えています。agentic ID を通じてデプロイ準備ができたアプリケーションを持つことができるようにです。

周りを歩き回ってみると、Kiro のサインがあちこちに見えると思います。それに伴って、私たちはエージェンティックワークフローを通じてアプリケーションを構築することにコミットしています。90% 以上の成功率を提供していますし、ベストプラクティスを自動的にもたらしてくれます。重要なポイントの一つとして、大規模言語モデルには常にカットオフ日があるのですが、その解決策の一つが MCP サーバーでした。AWS MCP のおかげで、最新バージョンとセキュリティ関連の情報もすべて得られることが保証されます。

Thumbnail 1360

私は AWS に入社する前に 10 年間フロントエンドアプリケーションを構築していたのですが、私にとって AWS はまだ毎日学んでいる新しい職場です。私のような世界から来ている人にとっては、より速く動き、より良く学ぶことができます。もちろん、みんなと同じように、AI からのコードを本番環境にプッシュしないでください。

Amplify の SOP の観点から、使用できる 3 つの重要な SOP があります。その一つは、Amplify のフロントエンドライブラリを使用して、構築したバックエンド構造に接続する機会を与えてくれるフロントエンド MCP です。もう一つはバックエンド MCP です。Amplify でバックエンドを構築することは簡単な場合もあれば、複雑な場合もあります。複雑なデータ操作をどのようにするのかについて、多くの人が質問をします。今では MCP のおかげで、AI に何をするかを伝えることで、実際にこれらの操作を構築することができます。あるいは、学習したり、ドキュメントを取得したりするよう AI に依頼することもできます。エージェントに任せっきりにする必要はありません。エージェントに情報を持ってくるよう依頼することもできますし、それでもあなたがそれを開く人になります。これらはあなたのツールであり、どのように使いたいかはあなた次第です。

また、デプロイメントパイプラインもあります。Amplify の場合、Amplify Hosting という、追加の AWS サービスに触れることなくフロントエンドアプリケーションを簡単にデプロイできるものがあります。CloudFront と S3 が本当にうまく機能することは誰もが知っていますが、フロントエンドの世界から来た人が AWS コンソールにジャンプすると、それは怖い時間です。そこには何百もの項目が書かれていて、どれをクリックすればいいのかわかりません。私たちは皆、単純なクリック間違いで何千ドルも払うことになるのではないかと恐れています。これらのツールは、その知識ギャップと恐怖を埋めるのに役立っています。

Thumbnail 1470

ライブデモの準備:re:Invent Map Face Meetupアプリの構築

今日、私たちが構築しようとしているのはデモです。私が構築した 2 つのアプリを紹介します。一つは、2025 年に Amplify で構築したものを紹介するアプリです。もう一つは、Mark と re:Invent 中に人々とコミュニケーションを取る方法について話していて、re:Invent のマップを持ってきて、人々が一定期間自分の場所を共有できるようにして、他の人がそこにいるかどうかを確認して、質問を聞くことができるようにしようと思いました。それはあなたの場所をドックするようなものではありません。実際には、あなたが自分がどこにいるかを共有して、人々があなたを見つけて質問を聞くことができるようにするものです。

Thumbnail 1530

では、デモに戻ります。これがコーディングとどう機能するのか、本当に気になります。最初の質問ですが、これが読めますか?後ろ側は大丈夫ですか?完璧です。

Thumbnail 1540

Thumbnail 1550

Thumbnail 1560

Thumbnail 1580

これが私が最初に作ったアプリケーションです。このアプリケーションはショーケースアプリなんですが、私の目玉は map face meetup と呼ぶものなんです。では、このアプリケーションを実行してみましょう。アプリケーションを実行するには、これはシンプルなリアクティブアプリケーションです。ですから、私がやることは npm run dev をするだけです。 これはアプリケーションをローカルで実行するだけなので、モックデータでどのように見えるかが分かります。では戻って、ウィンドウを開きます。ありがとうございます。ポート 8081 です。

Thumbnail 1640

Thumbnail 1650

これは私が作った非常にシンプルなアプリケーションです。サインインとサインアップのフローがあり、自分の情報を追加することができます。これは完全にランダムなもので、まだバックエンドに接続されるべきではありません。ちょっと確認してみましょう。このアプリケーションの目的は、実は一緒に構築できるようにビデオを見せることなんです。いいえ、このアプリケーションの目的は、リアルタイムでファイルアップロードメカニズムを実際に見せることで、認証などで通常行うすべてのことを含めて、パイプラインや関数など、その他すべてのことも見せることなんです。では、もう一度 npm run dev をやります。そして、デモゴッズが私にこれを見せることを許してくれることを願っています。私は動作するバージョンを持っていますが、本当にこれを一緒に構築したいんです。

Thumbnail 1660

Thumbnail 1670

Thumbnail 1680

では、これが私の名前だとしましょう。これがどのように見えるかです。これは あなたがおそらく見たことのあるマップで、これはオンラインで見つけた expo hall マップでもあります。正しいことを願っています。ですから、あなたがやることは、ここをクリックして 会場にいると言うことができます。CloudFront などのサービスを選択することができ、さらに写真も選択できます そして、マーカーが表示され、他の人たちも自動的にどのように見えるかを自動的に見ることができます。

Thumbnail 1690

Thumbnail 1700

このモックデータを実際のデータに変えるために、 私はいくつかのプロンプトを準備しました。そして、プロンプトを通じてあなたを案内して、プロンプトを通じてアプリケーションを構築するためのいくつかのトリックを教えたいと思います。 最初に言いたいことは、プロンプトを作成することです。すべてを実行させるために、1 つのプロンプトだけを持つことになりますが、最初のルールは、このような完全なプロンプトを持つことは決してないということです。複数に分割してください。エージェントはあなたの子供のようなものです。彼らに正確に何をする必要があるかを伝える必要があります。最初は彼らは「ノー」と言うでしょう。なぜなら、彼らはもっと質問をするからです。しかし、後になると、あなたが望む場所に到達するようになります。

Thumbnail 1740

Thumbnail 1750

Thumbnail 1760

Thumbnail 1780

ここで私は Amplify Gen 2 を使用して、今日リリースしたと言及した AWS MCP サーバーを使用してこのアプリケーションを構築することを言いました。アプリケーションの概要 を追加して、URL、マーカー、基本的にはすべてのことについて、バックエンドの要件をいくつか追加しました。Lambda トリガーがあるので、作成したすべてのユーザーに対してメール確認を 行う必要がありません。ここにあるすべての詳細が揃っているので、これが適切な実装を行う必要があることを知らせることができます。すべてが整ったら、ここにさらに 1 つのポイントを追加して、最後にモックデータを削除して実際のデータを使用するようにしてください。 あなたを待たせたくないので、同時に話もしたいと思っています。複雑にする必要はないと思いました。単に必要なものを番号付きで述べることができるので、それが最も重要なことと構造がどのようになっているかを知ることができます。

Thumbnail 1820

Thumbnail 1870

これをコピーして貼り付けるだけです。今、これが私の唇に触れているので、不快に感じます。多分これの方がいいですが、それでも非常に興味深く感じます。聞こえていますか?はい、これが私のお茶の飲み方です。セッションを開始しました。これが行うことは、すべてを取得してまずアプリケーションを通します。それが何をする必要があるかを理解しようとします。このために、私たちは in-cure steering files と呼ぶものを持っています。Steering files はアプリケーションに関する情報をエージェントに提供するので、すべてのファイルを読む必要はありませんが、何をする必要があるかについての理解を持つことになります。ここでは、すべてを読んで、どのクライアントが存在するかをチェックするので、後で何を変更する必要があり、何を 削除する必要があるかを知ることができます。

Thumbnail 1880

Thumbnail 1890

Thumbnail 1910

次に示したいのは、SOP と呼ばれるものを呼び出すことです。この SOP は、これらの プロファイルまたはプロシージャの 1 つで、これらのアプリケーションを構築することができます。ここでは、amplified backend implementation があり、これは私が前に言及したもので、 それらを直接呼び出しています。ですから、私はそれを呼び出すだけで、その情報を取得して直接表示します。私が言ったように、フロントエンドのフロントエンドライブラリもあります。デプロイメント部分のデプロイメントもあります。AWS CLI を呼び出す必要があるかもしれません。その後、その中の AWS ツールも呼び出します。

Thumbnail 1940

Thumbnail 1960

Thumbnail 1970

Thumbnail 1980

Thumbnail 1990

MCP サーバーについて聞いたことがない人は何人いますか?少数の方々のために、誰もが私に尋ねる非常に基本的な例を提供したいと思います。MCP サーバーは基本的に、エージェントが最も効率的な方法で情報を取得するためのユニバーサルバスです。 これにより、サードパーティまたは公式パーティから最新の情報をすぐに取得できます。以前は、例えば、ベクトルデータベースなどを行ってこの情報をもたらす必要がありましたが、MCP は私たちが物事を構築する方法を変えます。しかし、それは命の恩人というわけでもありません。非常にデリケートなデータを MCP に 置くべきではありません。安全ではありません。基本的には知識を拡張して、大規模言語モデルが古くならないようにしています。 これのために最後にあなたに意味することはありません。とにかく、私たちはその間にこれらのものを作成しています。また、私たちが構築した他のアプリケーションと、2025 年に Amplify で構築したものを紹介したいと思います。 Amplify Gen 2 でアプリケーションを構築したことがある人は何人いますか?

Thumbnail 2000

Thumbnail 2020

わかりました、では、そこから紹介します。私はあなたを信頼していると言います。あなたはこれをすることができます。そして、私は戻ります Amplify アプリケーションを構築するために。これが大きくなると、より見やすくなります。Amplify アプリケーションを構築するには、NPM create amplify と言ってインストールしてアプリを初期化する必要があり、これはここに表示される amplify フォルダを作成します。

Thumbnail 2050

Thumbnail 2070

Thumbnail 2080

Amplify の観点からすると、最も重要なのはここにある backend.ts ファイルです。backend.ts ファイルは、Amplify または全体的な AWS について必要なインフラストラクチャ情報を保持しています。auth、storage など、人間が読みやすい方法で、追加したい機能やサービスを追加することができます。これらを構築するには、構築したいサービスに対応する auth フォルダや storage フォルダ、または任意のフォルダを作成する必要があります。これらのことにより、すべてを 一緒に取得して、インフラストラクチャの構成を直接作成することができます。例えば、認証の場合、メール認証があり、多要素認証も持ちたいとします。これは今年もリリースされました。メールで多要素認証を使用するには、Cognito はそれと一緒に電話番号も持つことを要求します 。ですから、それも持つ必要があります。確認を得るためのメール送信者は、私が持っているメールのようなものです。

Thumbnail 2090

Thumbnail 2100

ストレージの観点からすると、これは単なる画像で、ストレージブラウザがどのように機能するかも紹介します。ここでは、ストレージを名前として定義します。その名前はバケットの最初の部分を定義します。ご存知のように S3 はユニバーサルネーミングを持っているため、一意である必要があります。public、protected、private のルールがあります。 Private はあなた用、protected は認証されたすべてのユーザー用、public はすべてのユーザー用です。

Thumbnail 2110

これらが揃ったので、どのように見えるかを紹介しましょう。

Thumbnail 2130

Passkeyとメール多要素認証のデモンストレーション

ですから、web storage、email MFA、web authentication を備えたこのアプリケーションがあり、すべてを紹介します。まず、認証ワークフローを紹介します。認証ワークフローが整ったので、passkey を紹介します。

Thumbnail 2150

Passkey は、バイオメトリクスを通じて認証する新しい方法です。プラットフォームがカメラを通じてサポートしている場合、顔認識、指紋認識、または有用だと思われるものを実行できます。私たちがそれを行う方法は 2 つのことを通じてです。カスタム実装を持つことができるか、Authenticator と呼ばれる既製の UI コンポーネントがあります。

Thumbnail 2160

Thumbnail 2180

Authenticator は基本的にこのような感じです。Sign in と Create account があるので、アカウントを作成することができます。Amazon のメールがうまくいかなかったので、バーナーアカウントを使うことにします。 確認メールが自動的に送信されます。

Thumbnail 2190

Thumbnail 2210

確認メールをさっと読んで、その確認メールを使ってログインして、必要なことをすべてできるようになります。 では、それをさっと使ってみましょう。あなたを信頼できることは知っていますが、それでも正しい情報を持っていることを確認したいです。よし、では demo に戻りましょう。コードが用意できているので、それを確認します。

Thumbnail 2220

Thumbnail 2230

Thumbnail 2240

それを確認すると、中に入ることができて、メールアドレスなどが表示されて、新しい passkey を登録できます。直接 API と直接呼び出せる関数があります。ライブラリから呼び出すことができます。 ここをクリックするとメールアドレスが自動的に表示されて、プロフィールを選択すると Chrome で直接編集されます。では、ここでサインアウトして、passkey でサインインに戻って、このボタンをクリックするとそれが表示されます。 指を使うと、ログインできるようになります。

Thumbnail 2250

Thumbnail 2260

これは基本的に biometrics を使った passkey のアプローチでした。次に紹介したいのは、その間に確認したいのは。 そしてこれはすべての情報を読み込んでいます。もう一つ紹介したいのは Storage Browser です。

Thumbnail 2270

Thumbnail 2280

Storage Browser は、プラグインであり、対応する必要があるコンポーネントです。これにより、S3 を余計な手間なく使用できます。構築した構造で直接使用できる UI コンポーネントがあります。例えば、protected のような場合、ここには何もありませんが、何かをドロップして画像をアップロードするだけです。さっとドロップしてみます。 はい、わかりました。

Thumbnail 2290

Thumbnail 2300

Thumbnail 2320

では、デモに戻りましょう。ご覧の通り、ここに画像を置いて、アップロードボタンをクリックするだけです。アップロードボタンをクリックすると、protected に戻って、例えば作成された画像を表示することができます。ダウンロードをクリックして、ここにあるように画像を直接ダウンロードすることもできます。削除などの簡単な操作もできます。

Thumbnail 2330

Thumbnail 2340

Thumbnail 2350

これらすべてのことが、たった1行のコードでできるんです。どうやるか、何をするかについて考える必要はありません。すべてが Amplify のアプリ構築方法を通じて実現されています。では戻りましょう。それは amplify_outputs.json ファイルを通じてです。ここに必要なすべての情報が保持されており、コンポーネント間でこれを共有することもできます。

Thumbnail 2360

Thumbnail 2370

Thumbnail 2380

Thumbnail 2390

でもこれだけではありません。他にもいろいろなことが動作しています。そして、多要素認証もデモンストレーションしたいんです。昨年、OTP を発表しました。Google Authenticator などの認証器アプリを使用でき、1クリックまたは1つの API 呼び出しで有効にすることができます。そして、このようにサインアウトしてサインインすると。

Thumbnail 2400

確認コードの入力を求められます。確認コードはここにも表示されるはずです。ええ、もちろんです。ええ、確認コードもここにあります。

Thumbnail 2410

では、これを閉じて戻って、ここに貼り付けることができます。では、確認すると、多要素認証がセットアップされました。これらすべてのために、私たちがしたことは2つのことです。1つはフロントエンドからライブラリを呼び出すことで、もう1つは認証ワークフローを見たでしょう。ここに auth についての情報を追加することが方法でした。このように true を追加することが方法でした。

Thumbnail 2430

Thumbnail 2440

Thumbnail 2460

Storage BrowserとWeb Application Firewallの実装

時間をチェックしましょう。 よし、では多要素認証とストレージなどについてデモンストレーションしてきました。コードについても説明していきたいのですが、その前に、 何をしているのか確認したいと思います。いくつか変更が加わっているようで、それは良いことです。その間に、戻ってコードを確認しましょう。ストレージについて、UI コンポーネントについて、どのように使用しているかを確認する必要があります。ストレージページをデモンストレーションさせてください。

Thumbnail 2470

Thumbnail 2500

Thumbnail 2510

Thumbnail 2520

Thumbnail 2530

Thumbnail 2540

Thumbnail 2550

Thumbnail 2560

ストレージページには、説明、ストレージブラウザなど、多くのコンポーネントが使用されています。 これにより、ストレージブラウザを直接その場に組み込むことができます。では、コードを探してみましょう。これは本当に難しいですね。 では、ここでデモに行くと、 表示する必要があります。はい、ここにあるすべてのもの、つまり、まずここでブラウザを設定しています。Amplify をここで設定しています。 Amplify ライブラリを使用する前に、情報を直接渡す必要があります。ここのストレージブラウザは、認証を取得するためのアダプタを取得します。認証だけでなく、作業のための認可も取得します。 ストレージブラウザは、作成した UI コンポーネントを通じて直接動作し、カードコンポーネントを含むあらゆるものに埋め込むことができます。 ここで Authenticator が見えます。ユーザーが認証されていない場合、ストレージブラウザを表示したくないので、すべてが Amplified UI ライブラリ自体から来ているこの 1 行のコードで実現できます。 よし、では戻りましょう。

Thumbnail 2580

Thumbnail 2590

Thumbnail 2600

Thumbnail 2610

Thumbnail 2630

Thumbnail 2660

その間に、最後にもう 1 つ、デプロイ方法と AWS Amplify ホスティングの仕組みについてデモンストレーションしたいと思います。また、今年は WAF サポートも発表しました。これにより、ファイアウォールメカニズムをより簡単に実装できます。では、戻りましょう。すぐにログインします。 よし、では デモに戻ります。AWS Amplify コンソールに行くと、Amplify 用に作成したアプリケーションが表示されるか、何も作成していない場合は空のページが表示されます。 デモンストレーションすると、このアプリケーションが配置されています。私が示したすべてのものはデプロイメント関連のものなので、ローカルバージョンは使用していません。つまり、これが実際のものです。 以前のデプロイメント、ステータス、それらで発生した問題を確認できます。また、ホスティングについては、多くの異なるアプローチがあり、その 1 つがファイアウォールです。ここで 1 クリックするだけで、WAF サポートを直接取得できます。 これにより、Amplify フロントエンドアプリケーションへの追加の攻撃などを 1 クリックで防ぐことができます。一般的な脆弱性から自動的に保護できます。悪意のある行為者、例えば、誰かが単にユーザーエージェント呼び出しを送信しようとするかもしれません。私のユーザーエージェントのようなものです。それがマッチすると、自動的にバックエンドに呼び出しをトリガーし、もちろん IP アドレスもブロックします。

Thumbnail 2690

Thumbnail 2700

ライブコーディングの完成と2026年に向けたAmplifyのロードマップ

これらにより、まだ何をしているのか見てみましょう。Sally がマイクを片手に持ちながら片手でライブデモを実行できたことを本当に嬉しく思います。私は試す勇気がなかったでしょう。ご覧のように、passkey、ストレージブラウザ、Web アプリケーションファイアウォールなど、多くの複雑な機能がありました。 しかし、必要なコード量は数十行程度で、すべてのセキュリティコードを含む Botus 3 アプリケーションを作成しようとする場合の数百行ではありません。

必要なコードが非常に少ないため、既製のコンポーネントを使用することで、AI にこれらの少数の部分を実際に使用するよう指導でき、レビューがはるかに簡単になります。GitHub で 600 行のプルリクエストを見たことがあるかどうか知りませんが、その下に「ship it」というコメントだけがあり、一方で 10 行のリクエストには 10 個のコメントが付いていました。それが私たちの状況ですよね。数百行のコードを見ると、ある時点で「よし、進めよう」と言うわけです。

Thumbnail 2740

2026年に向けて、これは Amplify のために計画していることです。 まず第一に、CDK とのより深い統合を実現したいと考えています。これは CDK と Amplify が私の下の同じチームにいるからでもあります。私たちが実現したいのは、より多くのエスケープハッチを用意して、より多くのコンストラクトを使用でき、AWS 内のより多くのコンポーネントを、カスタムワークをしなくても使用できるようにすることです。フレームワークについて考えると、通常フレームワークには一定の限界があり、そこで行き止まりになってしまいます。何か カスタムなことをしたければ、それをするために多くの手間をかけなければなりません。しかし私たちの場合、実は AWS の全力を皆さんに提供したいのですが、ほとんどの皆さんが必要とする合理的なデフォルト値を備えています。95パーセントに対応でき、残りの5パーセントも実際に必要な場所にエスケープするのに良い時間を過ごせるようにしたいのです。

Thumbnail 2820

Thumbnail 2830

Thumbnail 2840

Amplify ライブラリが他のインフラストラクチャ・アズ・コード プラットフォームと連携することは、私たちが念頭に置いていることです。以前に Terraform で何かを作成していたとしても、問題ありません。それで大丈夫です。しかし Amplify は、どのようなインフラストラクチャがあるかを認識して、実際にそれを適用できるようにすべきです。他の AI ツールとの統合をさらに深めたいと考えています。私たちはオープンソースフレームワークなので、GitHub または Discord を通じて、アプリケーション開発に何が必要かを教えてください。 最後になりますが、AWS MCP は私のチームの責任の一部であり、できるだけ早く物事を実現するのに役立つ、より深い SOP をそこに追加していきます。

Thumbnail 2860

Amplify ドキュメントの GitHub でフィードバックをいただきたいと思います。機能リクエストがあれば、ぜひ Amplify Discord でお願いします。私のチームと直接会話できるようにするためです。 このトークの最後に、ぜひそのアンケートにもご協力ください。インフラストラクチャ・アズ・コードをどのように使用しているか、実際にそこで何を求めているか、それを使用した経験がどのようなものか、そしてさらに改善するために何ができるかについて、もう少し詳しく知りたいのです。ですから CDK と CloudFormation、私たちは皆さんが良い時間を過ごせるように、皆さんのために物事を前に進めようとしています。

Thumbnail 2900

Thumbnail 2910

それでは、アプリケーションが今デプロイされているかどうか見てみましょう。もうすぐです。もうすぐです。多くの挫折などがあったことは知っていますが、非常に興味深いセッションでしたが、最後まで付き合ってくれてありがとうございます。ここにいてくれてありがとうございます。re:Invent だけでなく Amplify についても、私たちが行ったすべてのことを皆さんに伝えることは本当に重要です。 Amplify は私の心に非常に近いサービスの一つです。 私たちがそれの周りに構築したものを紹介できて本当に嬉しいです。

Thumbnail 2920

Thumbnail 2930

Thumbnail 2950

Thumbnail 2960

今のところ、すべてをビルドしたと表示されています。実際にモックファイルなどを削除しました。 すべてが正常に機能しているかどうか見てみましょう。まず、うまくいけば、適切なサインインフローから始めます。 その後、マーカーを追加します。うまくいけば素晴らしいことになります。うまくいかなければ、後でコードを皆さんと共有します。できればオープンソース化して、皆さんも試してみることができるようにしたいと思っています。よし、すべて準備ができました。行きましょう。新しいユーザーを作成しましょう。

Thumbnail 2970

Thumbnail 2990

Thumbnail 3000

では、最初に見ることになるのは、アカウントが作成されたということが直接表示されるということです。アカウントが作成されると、情報などが送信されるのですが、実は私はこれを望んでいませんでした。実際には、これをスキップしたかったので、このフローを直接追加することができますし、そうするべきだったのですが、どうなったか見てみましょう。Amplify でどうなったか見てみましょう。はい、pre-sign-up については、すべてが整っているので、おそらく単純なエラーだったのでしょう。ログインがどのように機能するか見てみましょう。

Thumbnail 3060

既に割り当てられたユーザーがいます。ログインしてみます。よし、もう一度やってみて、うまくいくでしょう。問題が何かを見て、すぐに修正できるか見てみましょう。では、今のところ、実際にユーザーを確認して、すべてが完了しているのですが、それ以上進むことができません。問題は古いフロー、古いコンポーネントの周辺にあるかもしれません。そして、それを直接操作すると。いいえ、違います。コンポーネントを直接チェックします。状態をチェックします。これはあなたの状態です。useAuth フックがアプリの認証の状態を制御しており、すべてをアップロードして、実行ビルドをチェックします。

Thumbnail 3070

Thumbnail 3080

Thumbnail 3090

それが行うすべての変更に対して、コミットしているのが見えます。これは私がそれにするように指示したことです。そうすることで、私が何を変更したかなどを知ることができるようにするために指示します。すべてが整ったら、続けます。これも機能していません。ドロップアウトし続けています。OK、これが唯一のものかもしれません。申し訳ありません、皆さん。これはグリーンランドの歴史で、5つか6つの異なるマイクが設置されている唯一のステーションかもしれません。

Thumbnail 3100

Thumbnail 3110

Thumbnail 3130

Thumbnail 3140

Thumbnail 3150

よし、私たちは始めたばかりです。dev connect をここで開いてみます。リフレッシュしてログインします。さあ。もう一つやってみます。うまくいかなければ、ズルをして、すでにデプロイされたバージョンがあります。それを紹介するだけです。はい、ログインしました。ログインしたら、次にすることはここに場所を追加することです。Expo at the Venetian と言いましょう。例えば、API gateway の専門家だと言うだけです。ユーザーを直接追加します。そして、ここに何かがあるのが見えます。

Thumbnail 3160

Thumbnail 3170

Thumbnail 3190

画像もアップロードできるので、ここをクリックして、もう一度 Aria と言うことができます。Aria に泊まっているので、Aria と書いて、ECS と言って、心配なく、そして自分を示している画像を選択して、その画像をアップロードするだけです。その画像がアップロードされると、実際にすべてが一緒になったのが見えます。カスケードされ、私が来ると、画像を編集したため、両方のマーカーが変更されたのが見えます。新しいユーザーを作成すると、他のユーザーも表示されます。つまり、デモが機能しました。ストレージに、すべてを入れました。そして、ゆっくり時間をかけることができます。皆さんはそれに固執しています。


※ こちらの記事は Amazon Bedrock を利用し、元動画の情報をできる限り維持しつつ自動で作成しています。

Discussion