AI時代を見据えたAWSアーキテクチャ理解の向上
みなさん、AIは使っていますか?
大AI時代と言われる今、便利になったと感じる場面が増えた一方で、逆に「ここはまだ難しいな」「結局、自分で判断しないといけないな」と感じることもあります。
これはあくまで私の主観ですが、AIを使うことで開発そのもののハードルは下がったものの、システム全体をどう設計するかという部分の重要性は、むしろ以前より大きくなっているように感じています。
AIでコードは書ける。でも、その先はどうする?
個人的には、Claude Codeを使うことで開発がかなり進めやすくなりました。
実際に、自分のサイトを作ったり、運営したりするところまで進められるようになり、これまでよりも個人開発のスピードは上がったと感じています。
一方で、AIにソースコードを書いてもらえるようになったからこそ、次のような判断をする機会が増えました。
- データはどこに保存するのか
- テーブル設計はどうするのか
- サーバーは必要なのか
- どのクラウドサービスを使うのか
- 認証や権限管理はどう考えるのか
- 運用や料金はどうなるのか
つまり、「コードを書く」だけでは終わらず、アプリケーションを動かすための土台をどう選ぶかが重要になります。
AIがコードを書いてくれる時代だからこそ、インフラやアーキテクチャを理解していないと、AIが出してきた構成が適切なのか、自分の目的に合っているのかを判断できません。
なぜAWSを学ぶのか
AWSには非常に多くのサービスがあります。
EC2、S3、RDS、IAM、VPC、CloudFront、ECS、Lambda、DynamoDB、API Gatewayなど、名前を挙げるだけでも多くのサービスがあります。
正直なところ、すべてを一気に理解するのは難しいです。
特にインフラに苦手意識がある場合、最初から広く学ぼうとすると、どこから手をつければよいのか分からなくなります。
ただ、個人サービスとしてはまだAWSを深く利用していないものの、業務の中ではAWSに触れる機会が増えてきました。
特に、LambdaやDynamoDBの設定・確認が必要になる場面があり、最低限の理解だけでなく、構成全体の中でそれぞれがどのような役割を持つのかを整理する必要性を感じています。
そのため、まずはAWSの中でもサーバーレス構成に絞って学習を進めようと思います。
学習テーマ
今回の学習テーマは以下です。
タイトル:AI時代を見据えたAWSアーキテクチャ理解の向上
【学習テーマ】
- サーバーレス構成の理解
- API Gateway / Lambda / DynamoDB の役割整理
【業務との接続】
- 実業務で Lambda や DynamoDB の設定機会があり、理解を深めることで業務品質向上につながる
AWS全体を体系的に学ぶのであれば、IAMやVPC、EC2、S3なども非常に重要だと思います。
特にIAMは権限管理の基本になるため、AWSを扱う上では避けて通れない領域です。
ただ、今回は最初の学習範囲をあえて絞ります。
目的は、AWSの全サービスを網羅することではなく、まずは業務や個人開発で遭遇しやすい「APIを作る」「処理を実行する」「データを保存する」という基本構成を理解することです。
サーバーレス構成とは何か
サーバーレスという言葉だけを見ると、「サーバーが存在しない」と捉えてしまいがちです。
しかし実際には、サーバーがなくなるわけではなく、サーバーの構築・管理・スケーリングなどをクラウド側に任せる考え方です。
従来の構成では、アプリケーションを動かすためにEC2などのサーバーを用意し、OSやミドルウェア、実行環境、スケーリング、監視などを考える必要がありました。
一方、サーバーレス構成では、必要な処理を必要なタイミングで実行し、利用量に応じて課金される形になります。
小さく始めやすく、アクセス数が少ない個人開発や、イベント駆動の処理とは相性がよい構成です。
もちろん、サーバーレスが常に最適というわけではありません。
処理時間の制限、コールドスタート、サービス間の依存、ローカル開発やデバッグの難しさなどもあります。
そのため、「サーバーレスは便利」だけで終わらせず、どういう場面に向いていて、どういう場面では注意が必要なのかを理解することが大切だと感じています。
API Gateway / Lambda / DynamoDB の役割
今回、特に整理したいのは以下の3つです。
API Gateway
API Gatewayは、外部からのリクエストを受け付ける入口のような役割を持ちます。
WebアプリやスマホアプリからAPIを呼び出す場合、そのリクエストを直接Lambdaに投げるのではなく、API Gatewayを経由して受け取る構成がよく使われます。
たとえば、以下のような役割があります。
- HTTPリクエストを受け付ける
- URLのパスやHTTPメソッドごとに処理を振り分ける
- 認証や認可と連携する
- Lambdaなどのバックエンド処理につなぐ
- APIとして外部に公開する
アプリケーションから見ると、「APIの窓口」として考えると理解しやすいです。
Lambda
Lambdaは、サーバーを自分で管理せずにコードを実行できるサービスです。
たとえば、API Gatewayで受け取ったリクエストに応じて、Lambdaが処理を実行します。
ユーザー登録、データ取得、データ更新、通知処理、ファイル処理など、さまざまな処理を関数単位で実装できます。
従来のWebアプリケーションでは、常に起動しているサーバー上でアプリケーションが動いていることが多いですが、Lambdaでは必要なときに処理が実行されます。
つまり、Lambdaは「処理を実行する場所」として捉えると分かりやすいです。
DynamoDB
DynamoDBは、AWSが提供するフルマネージドのNoSQLデータベースです。
RDBのようにテーブル同士をJOINして柔軟に検索するというより、あらかじめアクセスパターンを考えてデータを設計する必要があります。
そのため、従来のMySQLやPostgreSQLに慣れていると、最初は考え方の違いに戸惑う部分があると思います。
一方で、サーバーレス構成との相性がよく、Lambdaからデータを読み書きする構成でよく利用されます。
アプリケーションから見ると、「データを保存する場所」として考えると理解しやすいです。
3つを組み合わせた基本構成
非常にシンプルに考えると、以下のような流れになります。
ユーザー
↓
Webアプリ / スマホアプリ
↓
API Gateway
↓
Lambda
↓
DynamoDB
たとえば、ユーザーが画面から「登録」ボタンを押した場合、
- フロントエンドからAPI Gatewayへリクエストを送る
- API Gatewayがリクエストを受け取る
- 対応するLambda関数を呼び出す
- Lambdaが入力チェックや業務処理を行う
- DynamoDBにデータを保存する
- 結果をAPI Gateway経由でフロントエンドへ返す
という流れになります。
この構成を理解できると、AIにコードを書いてもらう場合でも、次のような判断がしやすくなります。
- この処理はLambdaに置くべきか
- このAPIはどの単位で分けるべきか
- DynamoDBのキー設計は適切か
- 認証はどこで見るべきか
- ログやエラーはどこで確認するのか
- 料金が発生するポイントはどこか
AI時代だからこそ必要な理解
AIを使えば、サンプルコードや構成案はすぐに出てきます。
しかし、その構成が自分のサービスや業務に合っているかどうかは、最終的には自分で判断する必要があります。
特にインフラは、動けばよいというものではありません。
- セキュリティは問題ないか
- 権限は適切か
- 障害時に原因を追えるか
- コストは見合っているか
- 将来的な拡張に耐えられるか
- 運用する人が理解できるか
こうした観点は、コードだけを見ていても分かりにくい部分です。
AIが便利になったからこそ、人間側には「何を作るか」「どの構成を選ぶか」「なぜその設計にするか」を判断する力が求められるようになっていると感じます。
今後の学習方針
まずは、API Gateway、Lambda、DynamoDBを使ったシンプルなCRUD APIを理解するところから始めます。
学習の流れとしては、以下のように進める予定です。
- サーバーレス構成の全体像を理解する
- API Gatewayの役割を整理する
- Lambdaの基本的な使い方を理解する
- DynamoDBの基本と設計の考え方を理解する
- 3つを組み合わせた簡単なAPIを作る
- IAM、CloudWatch、料金、デプロイ方法にも範囲を広げる
最初から完璧に理解しようとするのではなく、まずは「この構成で何が起きているのか」を説明できる状態を目指します。
まとめ
AIによって、アプリケーション開発のスピードは大きく上がりました。
しかし、AIがコードを書いてくれるようになったからこそ、そのコードをどこで、どう動かすのかを考える力が重要になっていると感じます。
今回の学習では、AWSの中でもサーバーレス構成に絞り、API Gateway、Lambda、DynamoDBの役割を整理していきます。
インフラが苦手でも、まずは小さな構成から理解していけば、個人開発にも業務にも活かせる知識になるはずです。
AI時代において、コードを書く力だけでなく、アーキテクチャを選ぶ力を身につける。
その第一歩として、AWSのサーバーレス構成を学んでいこうと思います。
参考
-
AWS Lambda は、サーバーを管理せずにコードを実行でき、利用したコンピューティング時間に応じて課金されるサービスです。
https://docs.aws.amazon.com/lambda/latest/dg/welcome.html -
Amazon API Gateway は、REST API や WebSocket API を作成・デプロイするためのサービスです。
https://docs.aws.amazon.com/apigateway/ -
Amazon DynamoDB は、サーバーレスでフルマネージドなNoSQLデータベースサービスです。
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html -
API Gateway、Lambda、DynamoDBを組み合わせたCRUD APIのチュートリアルも公式ドキュメントに用意されています。
https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-dynamo-db.html