サーバーレス
AWS サーバーレスおさらい サーバーレスコマンドチートシート
サーバレスとは
サーバーがない × サーバーの存在を意識しない ◯
簡潔にいうと常時起動しているサーバーを使わずにアーキテクチャ(仕組み)が実現できている状態というニュアンスが近い メリットとしては、常時起動サーバーがなくなり、以下のサーバーあるあるの問題がなくなること。
サーバー確保型
- 処理量を予測して環境を確保しないといけない
- 確保分の課金
- 使わない時は(意識して)解放
- 自分で冗長化
サーバーレス
- 処理要求に応じて自動で環境を確保
- 負荷なし = ゼロ課金
- ms単位の実行時間課金(AWS Lambda)
- 自動で冗長化
サーバーを常時起動している場合、使用していない時間も料金がかかる問題 起動しているサーバーは、誰がメンテナンスするの問題 サーバー設定担当者によって構成が微妙に違うので、デプロイしたらコードが動かない問題 重複しますが、そ んなサーバー関連の問題を減らすことができるサーバレスアーキテクチャ「Serverless Framework」となります。
サーバレスに対するゆ
Serverless Frameworkについて
Serverless Framework install から deploy
-
serverless install
$ npm install -g serverless
-
プロバイダーアカウントのセットアップ プロバイダーとは要はどのクラウドサービスを使用して、Serverlessを動かすかということ。 AWS, GCP, Azureなどさまざまなクラウドプロバイダーに対応している。
AWSデプロイするためには? AWS setup方法
要は以下を実施すればいい
- Serverless用のIAMユーザを発行
- IAMユーザにAdministratorAccessの管理ポリシーを与える
デプロイするのにアクセスキーIDとシークレットアクセスキーが必用なため、それを作成。 IAMユーザー追加して、「AdministratorAccess」のポリシーを付与。 AWSマネジメントコンソールからぽちぽちしました。
厳密には以下のような状態になってます。
グループ作成 グループに「AdministratorAccess」のポリシーを付与 IAMユーザー作成 グループにユーザーを追加
Serverless Framework
ServerlessはNode.jsで作られたCLIツール Serverless Framework(サーバーレスフレームワーク)は、Node.jsを使用して記述された無料のオープンソースWebフレームワーク。
Serverless Frameworkでは、Lambda Functionで使用する周辺リソース(S3,SQS(Amazon Simple Queue Service)など)も同時にデプロイ管理ができます。手動で作成した既存のリソースも使用しても問題ありません
Serverless Frameworkが台頭した理由
AWSのLambdaが登場したことにより サーバーレスのアプリケーションが注目された。 そのため、LambdaとAPI Gatewayさえ準備すれば、完全サーバーレスが作成される。 Lambdaの管理が煩雑になり、その管理を担う形でフレームワークとして台頭した。
Serverless Framework セットアップ
プロバイダーのアカウントをセットアップする。 プロバイダーとは、要はどのクラウドサービスを使用してServerlessを動かすか。 AWS, GCP, Azure, IBM Cloudなどさまざまなクラウドプロバイダーに対応している。
事前準備
Serverless FrameworkでAWS上にデプロイするためには以下の設定が必要。
- AWSのアカウント
- aws-cliをインストールしてクレデンシャルを設定しておく