雨が上がるまで

毎日の積み重ねが人を作る。筋肉は裏切らない。

AWS

今から初めるサーバーレスアプリケーション

投稿日:

これまで日本のシステムは基本的に物理サーバーをおいて、そこに様々なデータやアプリケーションをのせるのが一般的でした。

しかしAWSを始めとするパブリッククラウドが浸透するにつれてこれまでのシステムをクラウド上に構築することが増えました。

ここまでは恐らく多くの企業が今取り組んでいる部分かと思いますが、時々目にする「サーバーレス」というワードにも注目していく必要があると思いセッションに参加してきました。

サーバーレスとは何か

まずサーバーレスとはですが、そのままサーバーが不要なシステムのことです。

これだけ聞くと従来のシステムを作ってきた人にはよくわからないと思いますが、サーバーが不要というのは結果であり、正確にはサーバーの管理が不要ということになります。

サーバー管理をすべてクラウド提供側が管理するので、アプリケーションだけデプロイしてくださいねーというサービスを利用しているイメージですね。

管理する上で必要な可用性の確保やバージョン管理、スケーリング等々を利用者である私達は意識せずに、コードをただデプロイすれば実行できるというのが、サーバーレスです。

モノリシックからマイクロサービスへ

上記で説明したような物理サーバーに作り込んで行くようなシステムはモノリシックと呼ばれますが、こういったシステムは時間が経つに連れ要件の変更や機能の追加などで、非常に肥大化したシステムになっていることが多いです。

そんな現代のシステムに対し、最近トレンドになっているのは「マイクロサービス」です。

マイクロサービスは機能単位でサービスを作り、呼び出すときはAPIを使うだけといった疎結合で作られるサービスのことですが、これを実現するにあたってサーバーレスが重要となってきます。

AWSにおけるサーバーレス

ではAWSにおけるサーバーレスサービスについてですが、なんといってもAWS Lambdaがメインとなります。

AWS Lambdaは関数を作成しコードをデプロイするだけで、サーバーを意識せずに実行することができます。

起動するトリガーも豊富ですが、主に対象のS3へアップロードされたときやAPIGatewayとの連携が主な利用方法になるかと思います。

例えばS3へ画像がアップロードされたときに、その画像をリサイズなどの加工する処理をLambdaで実行するとしておけば、自動でその処理が行われるサーバーレスなシステムが作れます。簡単ですね…

サーバーレスの考慮点

既存のシステムをサーバーレスでマイクロサービス化したいと考えると、思想そのものが違うため既存のアプリを分解して作り直す必要があります。

また、サーバーレスで様々な機能をマイクロサービス化すると次第に数が増大になりモノリシックなシステムと同様管理が難しくなることも考えられますよね。

そういった場合はAWSの場合はAWS SAMというサーバーレスアプリケーションのデプロイと管理を簡素化できるものを利用しましょう。とスピーカーの方はおっしゃってました。私はまだ使ったことないのでそのうち使ってみます。

まとめ

ということでこれからはサーバーレスの時代なので、これまでのようなモノリシックなシステムではなくマイクロサービス的な思想でシステムを構築して、構築も管理も容易なものにしていきましょうというお話でした。

そのために使用するAWSのLambdaやAPIGateway、SAM等々のサービスへの理解を深めて行きたいですね。

-AWS

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

【AWS Dev Day Tokyo2019】Chaos Engineering 〜入門と実例〜を聞いて

AWS DevDay Tokyo 2019が10/3、10/4で開催されていたので参加してきました。 私は以下のセッションを聞いてきました。 第1回 AWS Fargate かんたんデプロイ選手権 C …

AWS Summit2019に初めて参加した感想と収穫

本日AWS Summit2019に参加してきました。AWSのイベントに参加するのは今回が初になります。 ライブストリーミングとか後日資料も公式で展開されるので、正直現地まで行かなくてもいいのではなんて …

【AWS】違いが良くわからないサービス(メッセージ・構成管理)

SAAの勉強をしていてテキストだけではよく違いがわからないサービスがあったのでメモしておきます。 Contents1 SQS・SNS・SES2 Cloud Formation・Elastic Bean …

AWSを使った仮想デスクトップ環境構築

EC2インスタンス上にPythonを使える環境作って欲しいと言われたので、候補の一つとしてリモートデスクトップでサーバーにアクセスする方法を考えてみました。 リモートの接続先にAnacondaをインス …

【AWS】2週間でソリューションアーキテクトアソシエイト(SAA)に合格した話

本日ソリューションアーキテクトアソシエイト(以下SAA)を受験し、なんとか合格しました。 勉強を初めて2週間、本格的に勉強を始めたのは1週間前からでした。 [box05 title=”私の …