簡単な事例をまじえてわかりやすく解説!WEB・デジタルのお仕事,思わずシェアしたくなる話2019.05.21サーバーレスとは、サーバーの構築や保守などの面倒な管理をすることなく、サーバー上でプログラムを実行できる仕組みです。サーバーレスコンピューティングやサーバーレスアーキテクチャとも呼ばれています。当たり前の話ですが、これまではちょっとしたプログラムでも、サーバーで動かすにはサーバーを構築しなければなりませんでした。このサーバーレスの仕組みを使うと、プログラムさえ作成してしまえばすぐにサーバーで実行することができます。そこで今回は、サーバーレスについて簡単な事例をまじえてわかりやすく解説してみましょう。サーバーレスとは?サーバー“レス”とは言っても、冒頭の絵のようにサーバーがない(レス)ということではなく、実際にサーバーは存在します。そのサーバーの構築や保守はサーバーレスの提供会社がすべてやってくれるうえに、負荷対策まで面倒を見てくれるのです。そのため利用者はサーバーの管理が一切不要(サーバー管理レス)になるので、「サーバーレス」と呼ばれているわけです。プログラム開発者がサーバーレスを利用する場合、サーバーのことを一切考えなくてよくなるため、いいプログラムを書くことにのみ集中できます。これがサーバーレスの一番の利点です。Service(ファンクション・アズ・ア・サービス)を使った事例をご紹介します。なにやら見なれない長い横文字が出てきましたが、安心してください。Service」と呼んでいるだけのことです。アップロードするだけで、プログラム関数を実行することができます。Service)は、大手クラウド各社から以下のサービスが提供されています。Functions各社のサービス名に、関数「Functions」がついているのが特徴ですね。Lambda(ラムダ)のサービス名の確かな由来はわかりませんが、ラムダ計算(関数を使った計算方法)から、なんとなく関数「Functions」が思い浮かびます。使って、簡単なプログラムを作ってみましょう。Lambda(ラムダ)で作成してみます。サーバーレスは、プログラム関数の実行だけでなく、色々なサービスと連携できるので、実現したい機能をすばやく作ることができるのも魅力のひとつです。バケットを作成しておきます。AWSのマネジメントコンソールにログインして「サービス」→「S3」をクリックします。「+バケットを作成する」をクリックします。適当なバケット名を入力して、左下の「作成」をクリックします。バケットが作成されました。アクセスが「バケットとオブジェクトは非公開」になっていることを確認しておきましょう。Lambda関数を作成します。「サービス」→「Lambda」をクリックします。「関数の作成」をクリックします。適当な関数名を入力し、お好みのランタイム(プログラム言語)を選択したら「関数の作成」をクリックします。Lambda関数が作成されました。下のような画面が表示されていると思います。下にスクロールして、メモリとタイムアウト(関数を実行できる時間)設定し、「保存」をクリックします。バケットにアクセスできるように設定します。実行ロールの「(関数名)〜ロールを表示」をクリックします。(これが自動で作成された実行ロールです)ロールの設定画面が表示されたら「ポリシーをアタッチします」をクリックします。「AmazonS3FullAccess」にチェックをいれて「ポリシーのアタッチ」をクリックします。ポリシーがアタッチされたらロールの設定画面を閉じて、Lambda関数の設定画面に戻ってください。関数コードの作成Lambda関数のメイン部分となる、関数コードを作成します。今回の関数コードは次のようになります。File」を選択します。新ファイルが作成されますので、関数コードを入力し、「File」→「Save」を選択します。適当なファイル名を入力して「Save」をクリックします。「ハンドラ」に「<拡張子なしのファイル名>.<関数名>」(今回の例では「sample.main」になります)を入力して「保存」をクリックすれば、関数コードの作成完了です。Lambda関数が完成しました。動作チェックのためテストしてみましょう。画面上部にあるメニューから「テストイベントの設定」を選択します。イベント名に適当な名前を入力して、画面下にある「作成」をクリックします。Lambda関数を実行します。Lambda関数が実行され、実行結果が表示されます。S3のバケットに、HTMLファイルが保存されていることも確認しておきましょう。トリガーの追加(Lambda関数の自動実行)最後に、トリガーを追加して、Lambda関数が定時に実行されるように設定します。Events」をクリックします。Events」を選択した状態で、トリガーの設定から「新規ルールの作成」を選択します。「ルール名」と「スケジュール式」を入力して「追加」をクリックします。スケジュールの時間は、UTC(協定世界時)で設定する必要がありますので、例えば日本時間の23時に実行したい場合は、時差の9時間を引いて14時を設定します。スケジュール式の書式は次の通りです。詳しくは以下の公式ドキュメントをご参照ください。Lambda関数が定時実行されるようになります。サーバーレスは、ウェブサイトのように常にアクセスされるようなサーバーには向きませんが、サーバーレスは、使った時間とメモリに応じて課金されるため、今回の事例のように1日1回だけ実行されるような関数コードであれば、ほとんど料金はかかりません。適材適所でサーバーレスをうまく使えば、サーバー管理から解放されるだけでなく、費用も節約することができますね。普段から仕事でパソコンをお使いの方も多いと思いますが、パソコンを正式に基本から学んだという方はどのぐらいらっしゃるでしょうか。何かわからないことがあればインターネットで検索。以前なら辞書や事典などを利用していましたが、今ではネット検索が当たり前のことになっています。見ていると、検索も上手な人とそうでもない人がいるのに気がつきます。普段から何気なく使っているインターネットのサービス。音楽をダウンロードして聴いたり、調べ物をしたり、あるいはアプリケーションを使ったり、重要なデータのバックアップをとったりと、大変便利な時代になりました。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。