LabBase Nowの応募サイトをAWS Amplifyで爆速開発してみた
初めまして!
株式会社POLでエンジニアをやっているゲバラこと高田健太郎と申します。
弊社ではLabBase Nowという、忙しくて就活が進まない学生や地方・海外在住の学生のための、オンライン就活イベントを開催しています。
今回はこのLabBase Nowのイベント応募サイトをAWS Amplifyを使って構築したお話をご紹介します。
AWS Amplifyを使うことになった背景
一言で言うと、LabBase Nowの急速展開による運用改善のため、スピード感のあるリリース必要になったためです。
LabBase Nowは別ツールを使いイベント応募を受け付けていましたが、インベント数の増加や運用面を改善する必要性が出てきたため、独自で運用できるサイト開発が必要になってきました。それにプラスしてこのコロナの状況もありスピード感のある対応が必要になっていました。そこでバックエンド環境等、準備が必要ということになったわけですが、私自身それほどAWSが詳しいわけではなく、構築するには少し時間がかかってしまうなという課題がありました。そこでAWS Amplifyで環境構築してみる提案をすることとなりました。
AWS Amplifyって何?
AWS Amplifyとは「AWSを利用して安全でスケーラブルなフルスタックアプリケーションを構築できるにするツールとサービスのセット」です。
AWS Amplifyは大きく分けて三つのことができます。
-
CLIを使って対話形式でバックエンド環境を構築できる
対話形式なのでやりたいことを直感的にバックエンド環境を構築することができます。一つ一つAWSサービスを準備しなくていいので非常に楽です。AWSサービスに関する知識がなくてもある程度使えちゃいます。EC2は使わないのでサーバレスなバックエンド環境です。 -
フロントエンドもバックエンドも一元管理できる
バックエンドはCloud Formationで管理されているため、フロントエンドのコードと一緒にGithubやBitbucketで管理すれば、連携してデプロイすることができます。ブランチごとに開発環境を用意することも簡単にできます。 -
フロントエンド向けのコンポーネントもある
今回はフロントエンドはReactで開発しましたが、ログイン画面といったUI ComponentやAPIモジュールとったライブラリも用意されており、フロントエンドも非常にスピーディに開発することができます。
使えるバックエンド機能
こちらは実際にAWS Amplifyで構築した環境です。
一つ一つはAWSサービスですが実際にそれぞれ準備したわけではなくこれらをAWS AmplifyのCLIを使うことで環境構築できます。(Gmail APIやRoute53は除きます)
使っている主なバックエンド機能はこちらです
Authentications
AWS Cognitoを使った認証処理を使うことができます。Googleアカウント連携にも対応しています。今回は管理者向けの画面にAuthceticationsを使っています。後述のAPIで権限設定することもできます。
API
AppSync (GraphQL)を使ったAPIとスキーマ定義したDynamoDBを使うことができます。GraphQLのqueryやmutationも自動生成し、フロントエンド使用することができます。
Functions
Lambdaです。APIで作成したDynamoDBのイベントをtriggerに設定したり、API呼び出しすることがCLI上で設定できます。
他にもFile StorageやAnalyticsといった機能が使えます。今回は使っていないので割愛させていただきます。
使ってみてよかったこと
とにかく環境構築が早いのでとりあえず作りたいならうってつけ
とにかくこれにつきます。少しでもインフラやAWSの知識があれば環境構築できますし、作りたいプロダクトに注力することができます。
サーバ落ちてるとか気にしなくなった
SIerの中小ソフトハウス出身の私としては、休みの日サーバが落ちたと電話かかってくる恐怖から解放されるサーバレスは非常にありがたいです。デプロイも失敗しても前バージョンで動きますし、本番環境切り替えもホスティング切り替えが簡単なので(前準備は少し手間なのですが)安心して運用することができます。
プロダクトとしてスケールしやすい
Ampilfyが使っているAWSサービスは基本的にスケールを前提にしたものとなっているため、サービスが大きくなってからリプレースするといった心配はありません。実はAWS公式でもスタートアップにAmplifyを超おすすめをしているので是非こちらも合わせて読んでみてください。
まだまだ進化するAWS Amplify
たくさんメリットのあるAWS Amplifyではありますが、使っていると細かいバグがあったりして困ったことになることもあります。(細かいので困ったことの紹介は割愛します。)
とはいえAWS Amplifyはまだまだ発展途上で、割と頻繁にバージョンアップは行われています。とりあえず困ったときはAmplify CLIのバージョンの最新がリリースされていないか確認するのがポイントです。今後もAWS Amplifyに期待したいと思います。
最後に
今回使ったAWS Amplifyですが、POLのプロダクト部では常に新しい技術に目を向け、活用していく姿勢があったからこそ実現できました。メリットやデメリットを踏まえた上でいい技術はどんどん採用していくチームです。私たちのエンジニアチームに興味がある方はぜひ一度カジュアルにお話しましょう!
ご希望の方は、以下の求人に応募いただくか私のTwitterにご連絡ください!お待ちしております!
※同記事をnoteにも掲載しております
Discussion