AWS Amplifyについてまとめています。
AWS Amplifyは、モバイルアプリのバックエンド自動構築をおこなうサービス
AWS Amplifyは、モバイルアプリ開発用のサービス。
ウェブアプリやスマホのモバイルアプリとバックエンドサービスをつなぐサービスです。AWS Amplifyを使うと、AWSによる認証やデータベースアクセスなどのバックエンドサービスを自動構築できます。また、Gitリポジトリと連携して、アプリの修正や機能追加によるシステム更新時のデプロイを自動化できます。開発者はアプリの開発のみに注力できるというわけです。
関連)AWS Amplify(アプリケーションの構築とデプロイ)| AWS
Amplify でサポートされているのは、JavaScript、React、Angular、Vue、Next.jsなどの一般的なウェブフレームワークと、Android、iOS、React Native、Ionic、Flutterといったモバイルフレームワークです。
AWS Amplify を使うことで、モバイルアプリを世界中にデプロイ&ホストするためのフル管理されたサービスが提供されます。世界中の人が使うような大規模なアプリだとしても、Amazonのコンテンツ配信ネットワークを使って安定して配信ができるんですね。アプリ更新時に負荷がかかってサーバが落ちてしまうかも…といったことを心配する必要はありません。Gitリポジトリ(GitHub、Bitbucket、GitLab、AWS CodeCommit)と連携することで、バージョン管理とテスト、ビルド、デプロイの自動化を実現する CI/CD ワークフローを備えています。
【関連記事】
▶GitHubはソースコードのホスティングサービス 使い方や日本語での開発例の紹介
AWS Amplifyの機能
Amplifyの機能をもう少し具体的に見ていきましょう。Amplifyは、モバイルアプリを開発するためのフレームワークで、フロントエンドとバックエンドをつなぐ部分が楽に開発できるのが特徴。ツールとしては、Amplify Consoleという管理画面と、バックエンドを構築するAmplify CLIというコマンドライン環境で構成されています。
Amplify Console
Amplify Consoleは、ウェブアプリを継続的にデプロイ&ホスティングするための管理画面。React、Angular、Vue.js、Ionic、Ember などのフレームワークのフロントエンドおよびバックエンドアセットのホストをサポートします。Gatsby、Eleventy、Hugo、VuePress、Jekyll などの静的サイトジェネレーターもサポート。
Amplify Consoleの画面でアプリケーション名を決めて入力すると、その場でアプリケーション専用のAmplify Consoleが構成されます。
Amplify Consoleで、「Frontend environments」でソースコードをホストするGitリポジトリ(GitHubやBitbucket)などを設定します。
「Backend environments」では、アプリのデータモデル、アプリのコンテンツ管理、ログイン・サインアップの構成(認証)、ユーザとグループの作成などをおこないます。
Amplify CLI
Amplify CLIは、Linuxコマンドとして提供されています。たとえばOSがubuntuの場合、以下のコマンドで、amplifyというコマンドがインストールされます。
$ npm install -g @aws-amplify/cli
インストール時に、エラーが出力されるケースがあります。
: : npm ERR! code EACCES npm ERR! syscall access npm ERR! path /usr/local/lib/node_modules npm ERR! errno -13 npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules' npm ERR! { Error: EACCES: permission denied, access '/usr/local/lib/node_modules' npm ERR! stack: 'Error: EACCES: permission denied, access \'/usr/local/lib/node_modules\'', npm ERR! errno: -13, npm ERR! code: 'EACCES', npm ERR! syscall: 'access', npm ERR! path: '/usr/local/lib/node_modules' } : :
メッセージに「permission denied」というテキストが確認されたら、以下のようにコマンドを変更して実行すると解決する場合があります。
sudo npm install -g @aws-amplify/cli --unsafe-perm=true
関連)Amplify CLI をインストールする際に permission denied 的なエラーが発生する問題 – Qiita
amplifyコマンドを実行すると、質問形式で必要な値を入力したり選択肢を選ぶ表示が出ます。なお、実行時にawsへのログインを求められることがあります。ブラウザが自動的に起動するのでログイン操作をおこなうと、amplifyコマンドの続きが実行されるんですね。
以下は、amplifyコマンドでREST APIを追加する例です。
amplify add api ? Please select from one of the below mentioned services: > REST ? Which service would you like to use > API Gateway + AWS Fargate (Container-based) ? Provide a friendly name for your resource to be used as a label for this category in the project: > containerb5734e35 ? What image would you like to use > ExpressJS - REST template ? When do you want to build & deploy the Fargate task > On every "amplify push" (Fully managed container source)? Do you want to restrict API access > No
関連)Amplify CLIを使い、労力ゼロでGraphQL/REST APIやウェブホスティング用にコンテナをデプロイする | Amazon Web Services ブログ
AWS Amplify まとめ
- AWS Amplifyはモバイルアプリ開発用のフレームワークで、Amplify ConsoleとAmplify CLIが提供されている
- Amplify Consoleは、フロントエンドとバックエンドの設定やデプロイなどを設定するウェブ画面
- Amplify CLIは、linuxベースのコマンドでバックエンドのAWSサービスを自動的に構築する