AWS Amplifyとは?|バックエンド・フロントエンドの特徴を紹介!

本記事の概要(AWS Amplifyとは?)

本記事では、

  • AWS Amplifyとは?何者なのか。フロントエンド開発およびバックエンド開発をAWS Amplify行うときの特徴

をご紹介できればと思います。私も最近AWS Amplifyを使ってアプリ開発を行いましたが、

①バックエンドの構築が圧倒的に楽
②フロントエンドの構築も簡単

でした。正直、ReactやVueなどのフロントエンド系言語を覚えてしまえば、バックエンド系言語のスキルや開発経験は不要でアプリ開発ができる時代になっているなあと感じました。Ruby on Railsなどをサーバーとして採用している企業がたくさんありますが、今後その状況は徐々に変わっていくのかなとも思います。Web系最前線にいるわけではないので最新の動向はよくわかりませんが、AWS Amplifyの発展やそれに続く後続サービスの発展により、今後エンジニアの仕事のあり方は大きく変わっていくのではないかと個人的には考えております。

では、AWS Amplifyとはどんなものなのか?AWS Amplifyとは?と疑問を持たれている方向けにAWS Amplify、ご紹介していきます!

AWS Amplifyとは?

AWS AmplifyはAmazonが提供しているウェブアプリケーション、モバイルアプリケーション構築用サービスになります。

AWS Amplifyとは?
AWS Amplifyとは?

とにかく簡単で素早くフロントエンド・バックエンドサービスの構築ができます。フロントエンド、バックエンドそれぞれどんなことができるか簡単に箇条書きでまとめて見ると

フロントエンド

  • デプロイは数ステップで完了する
  • Githubと連携すればプッシュする度、自動的にテスト・デプロイできる(CI/CD)
  • 認証系のUIが提供されており、簡単に実装できる

バックエンド

  • 認証系が爆速で構築できる(メールアドレス認証、二段階認証など)
  • GraphqlによるAPIデータ連携が爆速でできる
  • ストレージサービスの構築が爆速でできる
  • サーバーレスアプリケーションを爆速で構築できる

こんなところでしょうか。Ruby on RailsやExpress を使ってAPIサーバーを構築し、フロントエンドアプリも同時に開発する見たいなことをやっていましたが、AWS Amplifyを使うことで、APIサーバーの構築は不要となり、ExpressやRailsを使っていく機会はどんどん減っていきそうだなと感じました。

※Express とは

Express はNode.jsを扱う際によく使われるフレームワークです。Expressを使ってAPIサーバーを作ったりも

※Ruby on Railsとは

Ruby on Railsはrubyを用いたフレームワークで、Expressと同じくAPIサーバーの構築などに使われています。

AWS Amplifyを実際に使って感じた感想を簡単にまとめてみました。私は、モバイルアプリケーションを作ったことはなく、Webアプリケーション開発向けに使っておりますが、AWS AmplifyはWebアプリケーションを開発したい人たちには非常におすすめであり、個人開発される方もフロントエンド系の勉強さえしてしまえば誰でもWebアプリ開発ができるようになるので、非常におすすめですね。私個人としては、Ruby on Railsを使うことは今後なくなっていくのではないか?と思い始めてますし、現に使うことはほぼなくなってます。

そんなAWS Amplifyの特徴を箇条書ではなく、以下にしっかり述べて見ようと思います。

フロントエンド開発の特徴(AWS Amplify)

フロントエンド開発の特徴は、

  • デプロイまでが非常に簡単
  • CI/CD構築が簡単

になります。一つずつ見てみましょう。

デプロイまでが非常に簡単

デプロイまでが本当に簡単です。例えば、AWS Amplify 上に載っているReactチュートリアルを見てみると、Gituhubと連携しながらフロントエンドアプリのデプロイするまでの方法が載っていますが、所要時間はなんと10minです!Githubと連携しながらで10min なので、純粋にデプロイするだけなら、さらにかかる時間は短いです。

このように、デプロイが非常に簡単にできるようになっています。

CI/CD構築が簡単

CI/CDとは継続的インテグレーション/継続的デリバリーなどとも訳されており、簡単にいうとテストやデプロイを自動化することで、アプリケーション開発の効率を最大化させましょうということです。詳しいことは、以下サイトなどをご覧ください。

CI/CDの考え方、構築は特段新しい考え方ではありませんが、ここでお伝えしたいのは、そういった一般的な機能は当たり前に備わっていますよ!ということです。

例を挙げると、デプロイはGithubのレポジトリにpushがされる度、自動的に処理が走るようになっています。このように、フロントエンド開発の効率化は、AWS Amplifyを使ってしっかり実装することができます。

バックエンド開発の特徴(AWS Amplify)

次に、AWS Amplifyを使ったバックエンド開発の特徴をお伝えします。特徴は主に、

  • 認証系が非常に簡単に実装できる
  • Gpaghqlを使ったAPIサーバーの構築が簡単に実装できる
  • ストレージ(ファイルアップロード)の構築が簡単にできる

になります。それぞれご紹介していきます。

認証系の実装

AWSにはamazon cognitoという認証系サービスがあります。その機能を簡単に使うことができます。amazon cognitoができることは

  • ユーザー認証(サインイン、ログイン、メールアドレス認証、SMS認証、2段階認証)
  • ユーザー管理
  • サードパーティ認証(google, facebook, amazon, appleアカウントを使ったサインイン、ログイン)
  • アクセス制限

になります。認証系の実装を自分で1から作るのは非常にコストがかかりますが、amazon cognitoを使うと非常に簡単に実装できます。

さらに、UIもamplifyの方で提供されております。(カスタマイズもできる)もちろん、自作でUI作って、サインイン、ログイン機能などを作ることもできます。

このように、AWS Amplifyを使った開発時に、amazon cognitoを使うことができ、認証系の非常に簡単に実装できます。

Gpaghql APIを使ったAPIの実装

WEBアプリケーションを開発する際、静的なWEBページとは異なり、データベースに保存されているデータを取り出し、編集し、削除することが必要となります。そのようなデータのやりとりを行う際、APIを使って実装することがありますが、いくつかの実装方法がAPIにあり、REST ful APIやGraphql APIがあります。AWS amplifyは上記2つのAPI実装を簡単に行うことができます。

特にGraphql APIはfacebookが開発したapiですが、少ないリクエストでデータリソースにアクセスすることができたり、必要最低限のデータ取り出しだけができたりします。それまでのAPIで問題になっていた課題が解決され、現在非常に注目されています。

AWS Amplifyでは、Graphql APIの構築を非常に簡単に実装することができます。AWSには、APIサーバーを構築するapp sync、データを保存するDynamoDBなどがありますが、それらをまとめて一括で構築することができます。個人的に、この機能がamplifyが優れていると感じる1番の機能になります。

Graphqlファイルに必要なレコードやアクセス権限を記述して、CLIからプッシュすれば、勝手にすべての実装が完了しています。めっちゃ楽です。このように、AWS amplifyを使うことで、Graphql APIの実装も簡単に行うことができます。

ストレージの構築

pdfファイルなどを保存させる場合、AWSのS3というストレージサービスを使うことになりますが、AWS Amplifyでは、S3のセットアップや構築、ファイルアップロード、ダウンロードを非常に簡単に行うことができます。

このように、AWS Amplifyを使うことで、認証系、API実装、ストレージ管理が簡単に実装できます。これまでわざわざ一つずつ実装していたサービスを一気に実装できるので、とても感動しました。

AWS Amplifyをまとめると

AWS amplifyを使うことで、フロントエンド、バックエンドの開発がそれぞれ非常に簡単にできます。

これまでのエンジニア開発では、規模がそこそこ大きいサービスの場合、バックエンドエンジニアとフロントエンドエンジニアがそれぞれいて、連携しながら実装を進めていました。フロントエンドエンジニアは、Reactなどを使ってフロントエンドアプリの開発を、バックエンドエンジニアはexpressなどを使って、APIサーバーの開発をそれぞれしていました。しかし、AWS Amplifyのようなサービスが開発され浸透していくと、特にバックエンドに関しては、自前のAPIサーバーを管理することが不要になります。今後のエンジニア市場としては、AWS amplifyを扱えるフロントエンドエンジニア=ほぼフルスタックエンジニアが求められて行くのではないでしょうか。

開発されている認証やapiの仕様・制約があり、cognitoを使えないなど色々あるなら、amplifyの採用は不要でしょうが、これからサービスを作っていくスタートアップを中心とした会社では、amplifyを採用することでエンジニアリソースを最適化させることができますし、かなりポテンシャルがありそうです。

ニーズがまだ少ないので、企画書段階でリジェクトされそうですが、エンジニアの育成ということに軸を置いて考えると、プログラミングスクールでは、Ruby on Railsを使ったメルカリクローンサイトを作るのではなく、amplifyを使ったフルスタックエンジニア育成コースを作っていいんじゃないかと思ったりしてます。数年は求人が少なく厳しいかもですが、徐々に浸透していけるような気がします。

いずれにしても、スタートアップで働く筆者からすると、非常にありがたいサービスですし、今後も積極的に使っていこうと思ってます。

まとめ・余談

今回はAWS Amplifyの概要をご紹介しました。AWS Amplify実践編、チュートリアルの記事も書こうと考えているので乞うご期待です。

余談ですが、今後あったらいいな、あったらエンジニアとしては怖いなってサービスとしてはフロントエンドアプリがwixのような直感的UI操作で開発できるようになってしまうことですかね。そこができると、いよいよエンジニア不要論が出てきてしまいますが、そこまで到達するにはもう少し時間がかかりそうです。

コメント

タイトルとURLをコピーしました