AWSを勉強していて、LambdaやDynamoDBと一緒に「SDK」という言葉が出てきました。
SDKが何をしているのかよく分からなかったので、今回勉強した内容を簡単にまとめておきます。
1. SDKとは?
SDKは Software Development Kit の略です。
簡単にいうと、特定のサービスをプログラムから利用するために必要なものをまとめた開発用のキットです。
AWSの場合は、AWS SDKを使うことで、プログラムからAWSのさまざまなサービスを操作できます。
例えば、
- DynamoDBのデータを取得する
- DynamoDBにデータを登録する
- S3にファイルをアップロードする
- SQSにメッセージを送る
といったことができます。
2. AWS SDKは何をしてくれるのか?
例えば、LambdaからDynamoDBを操作したいとします。
DynamoDBにはAPIが用意されているので、プログラムからAPIを呼び出すことで操作できます。
ただ、APIを直接扱おうとすると、リクエストの形式などを自分で考えて処理する必要があります。
そこでAWS SDKを使います。
SDKにはAWSの各サービスを操作するための機能が用意されているので、それを利用してプログラムを書くことができます。
Javaの場合は、AWS SDK for Javaを利用できます。
例えばDynamoDBを操作するクライアントを作る場合は、次のように書けます。
DynamoDbClient dynamoDbClient = DynamoDbClient.builder()
.region(Region.AP_NORTHEAST_1)
.build();
このように、AWS SDKを利用することで、JavaのプログラムからAWSのサービスを操作できます。
3. LambdaとDynamoDBで考えてみる
今回LambdaとDynamoDBについても勉強したので、この3つの関係を整理してみます。
例えば、車の予約アプリを作るとします。
ユーザーが車を予約すると、Lambdaで予約処理を実行します。
そのLambdaのプログラムからAWS SDKを利用して、DynamoDBに予約情報を保存します。
イメージとしては、
Lambdaのプログラム
↓
AWS SDKを利用
↓
DynamoDBを操作
という感じです。
あくまでプログラムからAWSのサービスを利用するための道具です。
4. SDKについて今回分かったこと
今回は、AWSの研修を受けて、SDKを用いた開発の仕組みを学んだので、それを元に整理してみました。
最初は「SDKはAWSを管理するためのもの」とかんがえていましたが、
実際は、プログラムからAWSのサービスを使うための開発用の道具と考えると分かりやすそうです。
これからAIエージェントを用いて、久しぶりに個人開発しようと思うので、こういった仕組みを使いこなしていけたらいいかなという感じです。
個人開発の記録もまた別の記事として載せていけたらと思います。