BOS‐11 AWS Amplify ではじめる Webアプリケーション開発 - novel-suzukikeisuke/study GitHub Wiki

Web アプリケーションとは

  • Web アプリケーション : インストール不要で、普段使っているWeb ブラウザから利用可能なアプリケーション
  • モバイルアプリケーション: スマートフォンなどの端末にインストールする アプリケーション

Web アプリケーションの登場人物

  • フロントエンド
    • ユーザーに向けて情報を表示したりユーザーから入力を受け付ける
  • インターネット
  • バックエンド
    • フロントエンドから 送信されたデータの処理を サーバー上で行う、 ホスティングや API、 データベースなどを指す

フロントエンドで利用される技術

  • HTML や CSS、JavaScript などを 利用し、表示や操作を行うWeb ページを構成
  • モバイルアプリの場合、Swift や Kotlin などを利用し Andorid や iOS アプリを作成

バックエンドで利用される技術

  • Web サーバやアプリケーションサーバ、 データベースなどが該当し、 データの保存や読み出しを行う
  • Python や Java、Node.js などを 利用しビジネスロジックを処理
  • SQL などを利用してデータベースから データの読み書きを行う

Web アプリケーションの開発方法

Web アプリケーション開発の流れ

  1. ローカル開発環境で開発
  2. Git リポジトリへ変更を反映
  3. テストとビルドを行いアプリケーションを検証
  4. 本番環境の更新を行いインターネットに公開

ローカル環境での開発

  • 個人のコンピュータで開発できる ように構築された環境
  • 仮想マシンやコンテナなどを 利用することもある
  • 開発者はローカル環境でデバッグ しながらソースコードを編集し 開発する

リポジトリへ変更を反映

  • Git:ソースコードのバージョン管理を 行うソフトウェア
  • ソースコードの変更履歴を共有し、 チームでレビューが出来る
  • GitHub や AWS CodeCommit で コラボレーションできる

テストとビルド

  • アプリケーションを本番環境に公開 する前にテストを行い品質を検証
  • Git リポジトリへの反映をきっかけと して、変更したソースコードのビル ドやテストを自動化
  • テストが合格したら本番環境を更新

本番環境の更新と公開

  • テストに合格したアプリケーション を本番環境へアップデート(デプロ イ)を行い更新
  • ここで、Web アプリケーションは最 新の状態になりインターネットで公開される
  • 公開後もパフォーマンスやエラーな どのログやメトリクスを取得し信頼性を担保しましょう

Web アプリケーション開発の課題

本質的ではない開発

  • 差別化するべきサービスのコアバリューとなる機能開発や改善に時間をかけられない
  • 例 : 認証認可機能, プッシュ通知機能, 管理画面

継続的デリバリーの実現

  • 継続的デリバリー:ソースコード変更を きっかけとして、自動的に本番環境環境 へのデプロイための準備がされるもの

拡張性のある設計

  • サーバーやデータストアの選択, ミドルウェアの選定, セキュリティの確保

AWS Amplify で何を解決できるのか

AWS Amplify Gen2

  • より早い開発
    • インフラではなく、アプリケーションのコードに集中
  • 安定したリリース
    • Git プッシュごとに フロントエンドとバックエンド にグローバルにデプロイ
  • 制限のない拡張性
    • CDK で任意の AWS サービスを追加

デモ動画視聴