AWS Amplify

# AWS Amplify

https://d1.awsstatic.com/webinars/jp/pdf/services/20200520_AWSBlackBelt_Amplify_A.pdf

## AWS Amplify とは

  • Web フロントエンド 、モバイルアプリの開発を加速させるために作られたプラットフォーム
  • AWS を用いたサーバーレスなバックエンドの構築をするためのCLIやバックエンドと接続するためのクライアントライブラリ、Web サイトのホスティングの仕組みを持つ
  • Amplify CLIを用いることで、他のAWSサービスとの連携部分を含めて操作、連携が可能
  • Amplify で解決されること
    • Amplify Framework と呼ばれる、バックエンドに直感的なインターフェースで接続できるライブラリ

 

## Amplify を使ったアプリケーション開発

  1. 準備
    • npm Amplify CLI をインストール
    • CLI の初期設定
    • 設定を作成して、push することで適用される
  2. Amplify CLI を用いたバックエンドの構築
    • npm Amplify Framework をインストールする
    • Amplify CLI で作成された設定ファイルを読み込むと利用できる
  3. Amplify Framework を用いたアプリケーションの実装
      • Analytics
        • ユーザーのセッションや属性などの計測
      • API
      • Authentication
        • 認証API pre-build UI component
        • Amazon Cognito との統合
          • アプリケーションに統合・認可・フェデレーション機能を簡単に実装可能
        • 認証用のUIコンポーネントが提供されており、UIタグを配置するだけで、サインイン、サインアップ、パスワード復旧機能が実装されたコンポーネントを実装可能
      • Storage
        • Static content のシンプルな管理
      • Interactions
      • PubSub
        • リアルタイムなデータのやり取り
      • Notification
        • キャンペーンや分析機能を持ったプッシュ通知
      • Predictions
        • AI/ML コンテンツの組み込み
        • テキスト翻訳、文字読み上げ、Object Detection、文章のネガポジ判定といった機能が簡単に実装できる
        • 対応するAWSサービス
      • XR
        • AR/VR コンテンツの組み込み
  4. アプリケーションのデプロイ
    • デプロイ先
      • Amplify Console を用いたデプロイ
      • CloudFront and S3
        • コマンドラインからデプロイする
        • AWS CodePipeline などAmplify Console を用いないデプロイを実施する場合
        • CI/CDやソースリポジトリとの連携が不要なシンプルなデプロイはこっち

 

## 直近のアップデート

 

## よくあるケース

  • 複数の環境(prod, stagingなど)を利用したい
    • Amplify Console を利用した複数環境のデプロイ
    • Multiple Environment による環境構築と接続先の切り替え
    • Branch とバックエンドを紐づけることで、環境ごとのCI/CDパイプラインの構築が可能
  • Amplify CLI に対応していないバックエンドの構築
    • 任意のCloudFormation テンプレートをカスタムカテゴリとして定義できる

 

## 雑感

AWSWebフロントエンド 、モバイルアプリの開発を加速させるプラットフォーム。連携部分や、モバイル特有の部分をAmplify が行ってくれることで、価値のある部分に集中することができる。

複数環境の構築やそれを利用したテストまではカバーされている。対応していない部分はCloudFormation を記述することでカスタムカテゴリとして利用できるようになるみたいだが、用法用量は守ったほうが良さそう。