はじめに
この記事はDevOps on AWS大全の一部です。
DevOps on AWS大全の一覧はこちら。
この記事ではAWS Amplifyはどういうサービスで何ができるのかを超詳細にまとめています。
具体的には以下流れで説明します。
- AWS Amplifyとは
- AWS Amplifyの仕組み
- AWS Amplify for Advance
AWSの区分でいう「Level 200:トピックの入門知識を持っていることを前提に、ベストプラクティス、サービス機能を解説するレベル」の内容です。
この記事を読んでほしい人
- AWS Amplifyがどういうサービスか説明できるようになりたい人
- AWS Amplifyを採用するときのベストプラクティスを説明できるようになりたい人
- AWS Certified DevOps Engineer Professionalを目指している人
AWS Amplifyとは
AWS AmplifyはWebアプリケーションのフロントエンドとモバイルアプリケーションを開発するためのプラットフォームです。
上図のように認証、ストレージ、API、CI/CDなどを構築し、接続するための仕組みがそろっています。
ただし、ElasticBeanstalk同様、手軽にサービスローンチできるメリットはあるものの、作りこみにくいというデメリットもあるためエンタープライズで採用することはあまりありません。
AWS Amplifyの仕組み
AWS Amplifyは大きくバックエンドの構築部分とアプリケーションの実装部分の2つに分かれます。
ここではそれぞれについてを説明していきます。
バックエンドの構築
バックエンドの構築にはAmplify CLIを利用します。
AWS SAM(AWS Serverless Application Model)を知っている人はSAMの類似だと思うと理解しやすいと思います。
なお、Amplify CLIはAWS CLIとはべつのCLIなので別途インストールが必要です。
Amplify CLIをインストール後はコマンドラインで対話的にバックエンドの設定を実施していきます。
バックエンドはカテゴリ、と呼ばれる単位に設定していきます。
具体的なカテゴリは以下になります。
注意点として2つ、覚えておいてください。
1つ目の注意点はaddコマンドで対話的に設定した後にpushコマンドを実行しないとバックエンドに反映されないということです。
updateやremoveも同様で、あくまでpushをして初めてクラウドに同期されバックエンド構築が実行されます。
現在の設定がpushまで終わっているかどうかはstatusコマンドで確認できます。
2つ目の注意点はバックエンドを構築した際に出力される設定ファイルがないとアプリケーションがバックエンドに接続できないという点です。
そのため、Amplifyを用いてサービス構築する際にはまずバックエンドから構築するようにしましょう。
また、出力された設定ファイルAmplify CLIが更新するため、直接編集しないようにしましょう。
アプリケーションの実装
バックエンドの構築はAmplify CLIで対話的に行いましたが、アプリケーションの実装はAmplify Frameworkを利用して行います。
Amplify FrameworkはAmplifyカテゴリを使用するためのクライアントライブラリです。
このライブラリを用いることでカテゴリごとにスクラッチで開発するよりも手軽なアプリケーションが可能となります。
なお、Amplify Frameworkを利用するためにはバックエンド構築時に出力された設定ファイルを読み込む必要があります。
すでに書いた通り、先にバックエンドを構築してからアプリケーションの実装を行いましょう。
補足ですが、カスタムドメインを利用したい際にはRoute53を利用することで実現可能です。
アプリケーションのデプロイ
アプリケーションの実装を行った後は実際のデプロイに入ります。
アプリケーションをデプロイする方法は2つあります。
1つ目はAmplify CLIを用いてS3とCloudFrontにデプロイする方法、2つ目はAmplify Consoleを用いてデプロイする方法です。
Amplify CLIを用いる場合、コマンドラインからデプロイできる反面、リポジトリとの連携やCI/CDの実装ができません。
一方、Amplify Consoleを用いるとマネジメントコンソールからの操作になる反面、リポジトリとの連携やCI/CDの実装が可能になります。
継続的なメンテナンスを考えるとAmplify Consoleがおすすめですが、初期開発でまずはデプロイして試験したい、という場合にはAmplify CLIでのデプロイでもよいでしょう。
AWS Amplify for Advance
AWS AmplifyのCD実装
AWS AmplifyはAmplify Consoleを用いてデプロイする場合、CodeCommitなどのリポジトリと接続してCI/CDを実現できます。
その際には1つのブランチにつき1つのデプロイメントとなるのが制約事項です。
そのため、開発環境はDevelopementブランチからデプロイ、本番環境はProducitionブランチからデプロイ、というようにデプロイメント先ごとにブランチを切るようにしましょう。
まとめ
この記事ではAWS Amplifyはどういうサービスで何ができるのかを超詳細にまとめました。
- AWS Amplifyとは
- AWS Amplifyの仕組み
- AWS Amplify for Advance
次回から設定管理とIaCについてを順番に解説していきます。