株式会社アスネット
AWSサーバーレス構築(自社サービス『Chat Annie』)
弊社では『Chat Annie』と名付けた、SNSで利用可能なシナリオ型チャットボットサービスを開発しています。
チャットボットとはチャットとボット(ロボット)を組み合わせた言葉で、自動会話プログラムを指します。
『Chat Annie』は、AWSのサーバーレスアーキテクチャで構築しました。
アプリケーションのプログラムは、弊社プログラム開発グループで開発しており、弊社内でインフラ構築からプログラム開発までを完結したものとなっています。
以下はインフラの説明となります。
サーバーレスとは、サーバーの構築や管理する必要無くアプリケーションを実行する環境が提供される仕組みです。
歴史的に、アプリケーションの実行にはサーバー(ハードウェアやOS)を構築した上でアプリケーションの実行環境を構築する必要があり、ハードウェアやOSの管理を避けることができませんでした。
AWS EC2などのようなクラウドサービスによりハードウェアの管理から解放されるようになりましたが、更に進んでOSの管理も含めたサーバーの管理から解放される仕組みとしてサーバーレスが登場しました。
『Chat Annie』は全てサーバーレスで構成しており、ハードウェアやOSは一切登場しません。
実行環境
AWS Lambdaをアプリケーションの主な実行環境として、多数のLambda関数というプログラム群で構成しています。
SNS(LINEやWeChatなど)からのAPI呼び出しに対して、API Gatewayを通じてLambda関数が実行されます。
EventBridgeによるスケジュール実行やSimpleQueueによるキューイングにも対応しています。
Lambda関数は要求に応じて、Cognitoで利用者管理や、DynamoDBのデータベース更新、S3に格納するコンテンツの更新等を行います。
ウェブブラウザー接続に対しては、S3に格納したコンテンツとフロントエンドプログラムをCloudFrontで配信します。
管理環境
Management Consoleで各サービスまたはAWSアカウント全体の管理を行います。
IAM(Identity and Access Management)では管理者などのアクセス権限管理を行います。
CloudWatchで異常の検知とSimple Notificationを通じたメール通知を行う仕組みとしています。
Certificate Managerで通信暗号化の為のTLS証明書管理、Route53でDNSレコードの管理や動的更新を行います。
まとめ
上記実行環境の部分は、WindowsやLinuxといったOSを利用したサーバーで構築すること多いものです。
それは、これらサーバー(OSやハードウェア)には汎用性や移植性が高いという特徴がある為であり、よってそのすべてがサーバーレスに置き換わってしまうということは起こらないと考えています。
しかし、サーバーの構築、管理または運用には多くの専門知識や労力が必要であり、そこを省力化できるサーバーレスは有力な選択肢と言えるでしょう。