SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

サーバーレスでAIシステム開発スタートダッシュ

サーバーレスでAIシステム開発をはじめよう! サーバーレスの概要とAIシステムにおける活用方法

サーバーレスでAIシステム開発スタートダッシュ 第1回

AWS Lambdaでのサーバーレスの始め方

 ここからは実際にサーバーレス技術に触れてみましょう。今回はAWSのLambdaを使用して、デプロイができるまでの導入部分を解説します。

 LambdaにはServerless Frameworkというツールがあります。これは環境変数の設定やヘッダー認証、API Gatewayなど、さまざまな設定が可能な便利なツールです。今回はこれを利用してデプロイを行います。

1. Node.jsのインストール

 まず、Serverless FrameworkはNode.jsで動作するため、公式サイトからNode.jsをインストールします。

2. Serverless Frameworkのインストール

 続いて、以下のコマンドを実行してServerless Frameworkをインストールします。

npm install -g serverless

3. IAMユーザーの作成

 Lambdaをデプロイするためには、AWSマネジメントコンソール上からIAMユーザーを作成します。これはデプロイを行うアカウントの役割を果たします。もしまだAWSのアカウントがない場合は、作成してからコンソールにログインしてください。

 IAMサービス画面へ移動し、画面左側からアクセス管理のユーザーページを開き、ユーザーの作成を行います。

IAMユーザーの作成
IAMユーザーの作成

 ユーザー名を設定したら、デプロイに必要な権限をIAMユーザーに付与するためのポリシーを設定します。AdministratorAccess権限を付与しても問題ありませんが、それに抵抗感がある方は公式ドキュメントに記載されている最小限のポリシーに従って設定しましょう。

4. 認証情報の登録

 IAMユーザーの作成後、作成したユーザーの設定ページに移動し、概要欄からアクセスキーを作成します。ユースケースはコマンドラインインターフェイスを選択します。作成が完了すると、アクセスキーとシークレットアクセスキーが表示されます。これら2つのキーを使用して、ローカル環境からIAMユーザーを利用できるように認証情報を登録します。デプロイを行うローカルマシン上で、以下のコマンドを実行します。

serverless config credentials --provider aws --key {アクセスキー} --secret {シークレットアクセスキー} --profile {HOGEHOGE}

 --profileは今回登録する認証情報の名前です。わかりやすい名前をつけておきましょう。このprofileを指定して、開発環境や本番環境などへのデプロイも可能です。

5. プロジェクトの作成

 次に、以下のコマンドを実行してプロジェクトの雛形を作成します。

sls create -t aws-nodejs

 -tオプションでテンプレートの種類を選べます。必要に応じてaws-pythonなど他の言語を選択してください。

 このコマンドを実行すると、handler.jsとserverless.ymlの2ファイルが作成されます。serverless.ymlファイルはサーバーレスの各種環境設定を行うもので、この中でAPI GatewayやIAMの設定、トリガーや認証周りなどさまざまな設定が可能です。

 API GatewayはLambda関数をHTTPトリガーで叩くために必要なサービスです。単純な構成であればLambda関数のみでもHTTPトリガーを設定できますが、API Gatewayを使用することでより柔軟な実装が可能です。

 sls createで作成した雛形は最低限の記述で動作しますが、ここではAPI Gatewayの設定も追加してみます。以下のようにserverless.ymlを編集します。

functions:
  hello:
    handler: handler.hello
    events:
      - http:
          path: /
          method: GET

 functions:以下はLambda関数に関する設定を行います。events:以下はHTTPトリガーの設定で、この設定がAPI Gatewayに反映され、Lambdaと連携します。

6. デプロイ

 ここまで来たら、いよいよデプロイをしてみましょう。以下のコマンドを実行します。

sls deploy

 これを実行するだけで、serverless.ymlに記載された情報に基づき、Lambdaとその周辺環境がデプロイされます。以上でLambdaを利用した開発のための環境が整いました。あとはLambda関数の実装を行えば、サーバーレス環境で動作するシステムが完成します。

まとめ

 今回の記事では、AIシステム開発を迅速に始めるための便利なサーバーレス技術について解説しました。ここで紹介したサーバーレス技術は、AIシステム開発だけでなく、他のさまざまな開発にも度々用いられるものとなっていますので、ぜひ活用してみてください。

 次回の記事では、AWS Lambda、Serverless Framework、およびAWS SagemakerのServerless Inferenceといったサービスを活用しながら、弊社が実際に開発した「車ナンバー隠しBOT」というLINE BOTの実装について紹介します。

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
サーバーレスでAIシステム開発スタートダッシュ連載記事一覧

もっと読む

この記事の著者

株式会社ブリューアス AI-TEAM(カブシキガイシャブリューアス エーアイチーム)

 モバイルのアプリを中心にUI/UXデザインから開発保守まで、幅広い実績を持つ会社です。専門的な知識と豊富な開発経験を活かし、AIとサービスの統合を推進しています。 Brewus.inc

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/18675 2023/11/29 11:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー