こんにちは、普段はAzure, .NETでアプリ開発をしていてAWSコンソールとは縁のないエンジニアです。
個人的にはAWSよりもAzureの方が好きなのですが食わず嫌いは良くないのでAWSも個人開発で触ったりしてます。
半年前くらいに業務で位置情報サービスについて調査する機会があり、Amazon location Serviceについて調べていて位置情報を使うと面白いサービスが作れるのでは!?と思いAWS周りのことを調べていてamplifyというサービスに出会ったのでamplifyについて記事にしていこうと思います。
最短amplify導入
詳しく知りたい人はamplify DocumentへGo!
簡単な使い方としては、
npm install -g @aws-amplify/cli
amplify configure
でAWSコンソールへの認証設定をして、
amplify init
でバックエンドプロジェクトを初期化して
## 以下の例ではgeo, authを追加してるよ
amplify add <service name>
で欲しいサービスの設定をローカル上で追加して
amplify push
とするとクラウド側にローカルでしていた設定が反映されるらしい。
amplify ドキュメントに書いてあるようにamplify CLIを叩くだけで認証機能をアプリに組み込んだり、位置情報サービスを組み込んだりができる。
amplify CLIで作成されるフォルダ
Amplify CLIを叩いた後に作られるjsonを見るとわかるのですが、IAM Roleの設定だったり、ファイルを置いておくS3バケットの生成だったりが自動でされている。
下のスクショは試しにGeoとAuthサービスを足してみた時のイメージです。
①.config, #current-cloud-backend
AWSリソース同士のマッピング、ローカルファイルとamplifyで管理しているリソースのマッピングをおこなっている。
②backend
リソース生成時のパラメータに入る値が定義されている。cloudformationという名前のフォルダがあるので、このフォルダの中身をCloudformationに食わせると全く同じリソースが作られるはず(多分。。。)
③hooks
amplify CLIにフックして何かコマンドを実行したい時に使えるらしい。
amplify Docs(Javascript): 認証 - Getting Started
amplify Docs(Javascript):Geo - Getting Started
AWSコンソール側でも作られたリソースを確認してみると以下のリソースが作成されていることが確認できた
amplify-alsdemoproject-dev-231359 AWS::CloudFormation::Stack
UnauthRole AWS::IAM::Role
DeploymentBucket AWS::S3::Bucket
AuthRole AWS::IAM::Role
UnauthRole AWS::IAM::Role
AuthRole AWS::IAM::Role
DeploymentBucket AWS::S3::Bucket
Amplify CLI経由で追加できるサービスには以下のようなものがある。
サクっとPoCを作りたい時に必要なものが揃っているイメージ。
感想
メンテナンスのしやすさだったり、チーム開発のしやすさ、他ベンダーのサービスとの組み合わせなどを考えた時に業務で使えるかはまだ分からないけれど、コマンドを叩くだけでAWSリソースが自動生成されて、簡単にアプリに組み込むことができるのは魅力に感じた。
裏で動いているのはCloudformationなので、細かいカスタマイズをしたいとなった時もCloud formationテンプレートの読み込み&編集で対応できそう。
UI側についてもFigmaで作ったコンポーネントを読み込んだりできるのでこの辺りも試してみたい。