1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【実践編】今すぐ使えるAI技術の最先端プラットフォーム完全ガイド| [第7回] AWSを活用したAIアプリの実装

Posted at

近年、AI技術の進化に伴い、クラウド環境でのAIアプリ開発がますます重要になっています。AWS(Amazon Web Services)は、AIモデルのトレーニング、デプロイ、およびスケーリングを簡単に実現するための多くのサービスを提供しています。本記事では、AWSを活用したAIアプリの実装について詳しく解説します。


1. AWSがAIアプリ開発に適している理由

AWSは、以下の理由でAIアプリの開発に適しています。

  • スケーラブルなインフラ: サーバーレスや自動スケーリングにより、大規模なAIアプリを効率的に運用可能。
  • 豊富なAIサービス: Amazon SageMaker、AWS Lambda、Rekognition、Comprehend など、AI開発に特化したサービスが充実。
  • セキュリティと運用の容易さ: IAM(Identity and Access Management)によるアクセス制御や、CloudWatchによる監視が可能。

まず、AWS環境をセットアップしましょう。

aws configure

2. Amazon SageMakerでAIモデルをトレーニング

AWSのSageMakerを使えば、簡単に機械学習モデルのトレーニングが可能です。

2.1. SageMakerノートブックのセットアップ

AWSコンソールからSageMaker Studioを開き、新しいノートブックインスタンスを作成します。その後、以下のPythonコードを実行してデータの前処理とモデルのトレーニングを行います。

import sagemaker
from sagemaker import get_execution_role
from sagemaker.tensorflow import TensorFlow

role = get_execution_role()

# モデルの学習ジョブを開始
estimator = TensorFlow(entry_point='train.py',
                        role=role,
                        train_instance_count=1,
                        train_instance_type='ml.m5.large',
                        framework_version='2.4')

iestimator.fit('s3://your-bucket/training-data/')

3. AI APIのデプロイ

トレーニングしたモデルをAWS LambdaとAPI Gatewayを使ってデプロイします。

3.1. Lambda関数の作成

以下のPythonコードをLambda関数にデプロイして、リクエストを処理するようにします。

import json
import boto3

runtime = boto3.client('runtime.sagemaker')

def lambda_handler(event, context):
    data = json.loads(event['body'])
    response = runtime.invoke_endpoint(EndpointName='your-endpoint',
                                       ContentType='application/json',
                                       Body=json.dumps(data))
    result = json.loads(response['Body'].read().decode())
    return {'statusCode': 200, 'body': json.dumps(result)}

3.2. API Gatewayと統合

AWSコンソールでAPI Gatewayを作成し、Lambda関数と統合することで、外部からAI推論APIを呼び出せるようになります。


4. フロントエンドとの連携

Next.jsやReactを使って、AWS上のAIモデルと連携するフロントエンドを構築します。

import { useState } from 'react';

export default function Home() {
  const [input, setInput] = useState('');
  const [prediction, setPrediction] = useState('');

  const handleSubmit = async (e: React.FormEvent) => {
    e.preventDefault();
    const res = await fetch('https://your-api-gateway-url', {
      method: 'POST',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify({ text: input }),
    });
    const data = await res.json();
    setPrediction(data.prediction);
  };

  return (
    <div>
      <h1>AWS AIアプリ</h1>
      <form onSubmit={handleSubmit}>
        <input value={input} onChange={(e) => setInput(e.target.value)} />
        <button type="submit">予測</button>
      </form>
      <p>結果: {prediction}</p>
    </div>
  );
}

5. デプロイと運用

AWS AIアプリを本番環境で運用する際には、以下のポイントを考慮します。

  • S3 + CloudFrontでフロントエンドをホスティング
  • Lambda + API GatewayでAIモデルを提供
  • CloudWatchでログ監視とパフォーマンス分析

デプロイはAWS CLIまたはTerraformを活用して自動化するのがベストプラクティスです。

aws s3 sync ./build s3://your-bucket-name

6. まとめ

本記事では、AWSを活用したAIアプリの実装方法を解説しました。

SageMakerでAIモデルをトレーニング
LambdaとAPI Gatewayを使ってAPI化
Next.jsでフロントエンドを構築
S3 + CloudFrontでデプロイ

AWSでAIアプリを構築する際の参考になれば幸いです!

「LGTM」&コメントでフィードバックをお待ちしています!


1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?