Amazon Web Services ブログ

AWS Amplify でフルスタックアプリケーションを構築するための CTO のガイド

CTO として、あなたはエンジニアリングチームの技術戦略を監督し、フレームワーク、アーキテクチャ、インフラストラクチャに関する決定を導く責任があります。開発者の生産性を最大限に高めながら、堅牢でスケーラブルなアプリケーションを構築するためには、適切な技術スタックを選択することが極めて重要です。本記事では、AWS Amplify の新しいコードファースト開発者体験 (Gen 2) でフルスタックアプリケーションを構築することが、Web 開発スタックの中核であるべき理由を説明します。

Amplify Gen 2 は、現代の Web 開発者の要件を満たすために、AWS 上でフルスタックアプリケーションを構築する開発者体験を再構築しました。TypeScript と AWS Cloud Development Kit (AWS CDK) のようなコードファーストの開発者体験ソリューションを活用することで、Amplify は AWS 上でインフラストラクチャをプロビジョニングするための設定ではなく、コードを書く能力を開発者に提供します。

TypeScript のメリット

TypeScript は静的型付けされた JavaScript のスーパーセットで、プレーンな JavaScript にコンパイルされます。フロントエンドとバックエンドの Web 開発に TypeScript を使用すると、いくつかの重要な利点があります。

  • エラーの早期発見 : TypeScript の静的型付けは、実行時にしか現れないような、コンパイル時に発生するさまざまなエラーを検出します。これにより、より堅牢なコードとなり、実運用でのバグが少なくなります。
  • 開発者の生産性の向上 : 型付けは、Visual Studio Code のような統合開発環境 (IDE) で、インテリセンス、オートコンプリート、インラインドキュメントを提供します。これにより、開発者の生産性が向上します。
  • より簡単なリファクタリング : 型システムは、互換性のない変更を即座に開発者に警告することで、大規模なリファクタリングをより安全にします。
  • コードの自己文書化 : 明示的な型は、バニラ JavaScript に比べてコードをより自己文書化します。そのため、新しいチームメンバーも素早く立ち上がることができます。
  • 将来性のあるコード: TypeScript を使用すると、ロジックとフレームワークを切り離すことができるため、React Hooks のような新しいフレームワークやパラダイムへの移行が容易になります。

つまり、TypeScript を使用することで、バグが少なく保守が容易なコードを作成しながら、開発者の幸福度と生産性を向上させることができます。

AWS CDK によるコードファーストの開発者体験

インフラストラクチャを手動で管理するのは時間がかかり、エラーが発生しやすく、環境間で正確に再現するのが困難です。AWS CDK のようなコードファーストのソリューションでは、TypeScript のような実際のプログラミング言語を使用して、宣言的な方法ですべてのインフラストラクチャを定義できます。これらの機能により、アプリケーションとインフラストラクチャのニーズが進化するにつれて、AWS サービスの幅とパワーを活用した拡張性が可能になります。

AWS CDK を使用してインフラストラクチャをコードとして管理する主な利点は以下のとおりです。

  • ベストプラクティスの成文化 : コードとしてアーキテクチャを定義し、セキュリティ、信頼性、およびコンプライアンスのベストプラクティスを成文化します。
  • 迅速な環境プロビジョニング : アプリケーションの開発環境、テスト環境、ステージング環境を数分で構築できます。環境の破棄と再作成もすばやく行えます。
  • 効率的なアップデート : コードを通じて、すべての環境でスタックのアップデートを迅速に実行できます。
  • コストの最適化 : AWS CDK は、スポットインスタンスや自動スケーリングなどのコスト最適化サービスを簡単に活用できます。
  • インフラテスト : AWS CDK を使用してインフラストラクチャの単体テストと統合テストを記述し、デプロイ前のエラーを防止します。

AWS CDK は、アプリケーションコードと同様に、インフラストラクチャをバージョン管理し、CI/CD パイプラインの一部としてデプロイすることを可能にします。これは開発者の生産性とビジネスの俊敏性を大きく向上させます。

AWS Amplify とコードファースト開発者体験

AWS Amplify Gen 2 の登場は、特にフロントエンドチームのニーズに応えるフルスタックアプリケーション開発の次世代を示します。 この強力なツールキットは、開発者が堅牢でスケーラブルなアプリケーションを、スピードを維持し、複雑さを軽減しながら構築できるようにします。ここでは、AWS Amplify Gen 2 がフルスタック開発の領域でゲームチェンジャーとなる理由と方法を説明します。

開発者のスピードと効率性

AWS Amplify Gen 2 は、TypeScript ベースのコードファーストなアプローチを導入し、開発者体験を大幅に強化します。このシフトにより、フロントエンド開発者は TypeScript で直接バックエンドを定義できるようになり、開発プロセスが効率化されます。アプリのデータモデル、ビジネスロジック、認証、認可ルールを TypeScript で表現することで、開発者は基盤となる AWS サービスを手動で設定する手間をかけずにクラウドインフラストラクチャを導入できます。その結果、さまざまなサービスをつなぎ合わせる必要がなくなり、開発速度が飛躍的に向上します。

より少ないコード、より多くのパワー

AWS Amplify Gen 2 で採用されているファイルベースの規約は、”設定よりも規約 (convention over configuration)” という原則を遵守しています。これは、開発者が定型的なコードを書く時間を減らし、機能構築に集中する時間を増やすことを意味します。認証用とデータ用といったように、リソースがタイプごとに別々のファイルにまとめられているため、構造が直感的で管理しやすくなっています。さらに、TypeScript を使用すると、Visual Studio Code などの IDE で厳密な型付けとインテリセンスがサポートされるため、エラーが減り、開発プロセスがさらに高速化されます。

フルスタック機能でフロントエンドチームを強化

AWS Amplify Gen 2 により、フロントエンドチームは、記録的なスピードで、より少ない摩擦で、フルスタックを構築する力を得ました。より高速なイテレーションのために最適化された開発者ごとのクラウドサンドボックス環境の提供により、個々のチームメンバーはお互いの作業を妨げることなく、独立してフルスタック機能に取り組むことができます。この並行開発機能は、新機能の市場投入までの時間を短縮する上で極めて重要です。

さらに、フルスタックの Git ベースの環境は、最新の開発ワークフローとシームレスに連携します。各エフェメラル環境は Git ブランチに直接対応しているため、新機能のテストや統合が簡単に行えます。プルリクエストや機能ブランチは、本番環境にマージする前にプレビューできます。コードファーストのアプローチを採用しているため、すべてのバックエンドリソースはコードとして定義され、ブランチ間での再現性と移植性を実現しています。この Git を中心としたアプローチによって、リポジトリが常に単一のソースであり続けることが保証され、開発環境から本番環境への機能の移行が単純化されます。

まとめ

AWS Amplify Gen 2 は、フロントエンドチームが TypeScript と AWS CDK を使ってコードファーストの開発者体験でフルスタック開発に取り組む方法を根本的に変えます。開発者のスピードを重視し、過剰なコードの必要性を減らし、堅牢なフルスタック機能を提供することで、チームは他のソリューションよりも効率的かつ効果的に構築することができます。これらの機能により、開発コストを削減し、新製品や新機能の市場投入までの時間を短縮することができます。AWS Amplify の新しいコードファーストの開発者体験 (Gen 2)使用してAWS 上でのモダンアプリケーションの構築の詳細をご覧ください。

本記事は「The CTO’s Guide to building fullstack applications with AWS Amplify」を翻訳したものです。

翻訳者について

稲田 大陸

AWS Japan で働く筋トレが趣味のソリューションアーキテクト。普段は製造業のお客様を中心に技術支援を行っています。好きな AWS サービスは Amazon Location Service と AWS Amplify で、日本のお客様向けに Amazon Location Service の解説ブログなどを執筆しています。