- 開発技術
サーバーレスアプリケーションとは?メリット・デメリットから実装方法まで
- #DevTools
目次
サーバーレスアプリケーションとは
【エンジニア募集中】フルリモート可◎、売上/従業員数9年連続UP、平均残業8時間、有給取得率90%、年休124日以上 etc. 詳細はこちらから>
サーバーレスアプリケーションとは、名前の通りサーバーを用意せずに動作するアプリケーションの事です。
自前でサーバーを用意する手間がなく、運用や保守の手間も省けるためコスト削減にもつながります。
サーバーレスのメリット
①アクセスの増減にも柔軟に対応できる
使用量に応じてスケーリング可能なため、急なアクセス増加にも対応可能です。 これにより、事前に必要なキャパシティを考慮しなくてもよくなります。
②従量課金制なので料金が安い
使用した分だけお金を払うシステムなので、料金を安く抑えることができます。 AWS lambdaの場合、割り当てるメモリの量と時間で料金が変わります。
https://aws.amazon.com/jp/lambda/pricing/
③可用性が高い
可用性と耐障害性機能が備わっており、冗長化の構成などを意識しなくてもよくなります。 AWSのサービスの可用性はこちらから確認することができます。
https://docs.aws.amazon.com/ja_jp/wellarchitected/latest/reliability-pillar/appendix-a-designed-for-availability-for-select-aws-services.html
④開発に集中できる
上記の問題を解決できるため、アプリの開発に集中できます。 個人で開発する際に、恩恵を受けやすいです。
サーバーレスのデメリット
①利用するサービスに依存する
AWSのlambdaでは、2022/01/06現在使用できる言語が、 Java、Go、PowerShell、Node.js、C#、Python、Rubyのみとなっています。 また、言語バージョンの対応状況も異なるので常に最新のバージョンが使えるとは限りません。
②開発の難易度が高い
利用するサービスが多くなるため、適切なアーキテクチャを構築するのが難しくなります。
③レスポンスタイムが遅い
起動に時間がかかる場合があるため、即座にレスポンスが欲しい場面では不向きです。
④テストが難しい
ローカルの開発環境ですべてを確認することは難しいため、AWS環境でのテストが必要になります。 そうなると、必然的に工数が増えてしまいます。
個人でサーバーレスアプリケーションを実装する方法
サーバーレスアプリケーションを実装する入門として、AWSがチュートリアルを用意しています。AWSを初めて触る人や、実際に手を動かして作成したい人はここからスタートすると良いと思います。
作成したままになると無料期間終了後に料金が発生する可能性があるので、使用しない場合は最後に削除しましょう。
https://aws.amazon.com/jp/getting-started/hands-on/build-web-app-s3-lambda-api-gateway-dynamodb/
【エンジニア募集中】フルリモートも◎(リモート率85.7%)、平均残業8時間、年休124日以上、有給取得率90% etc. 詳細はこちらから>