Go言語学習23日目:AWS SDK v2 を導入してDynamoDBクライアントを初期化してみた。。【Go × AWS 第2章】

Go言語学習22日目

昨日までに、
- 認証情報(~/.aws/credentials)の準備
- DynamoDB テーブルの作成

kunio-ud-all.com

が完了したので、今日はついに Goコード側の準備に入っていきます!

毎日、30分程度で良いから何かをする。というのを定着させなければ。。。


✅ 今日の目標

Goコード内で AWS SDK for Go v2 を導入し、
DynamoDB に接続できるクライアントを初期化する。

1. Go Modules の準備(初回のみ)

まずはプロジェクトディレクトリ内でモジュールを初期化します:

go mod init mydynamodbapp

2. AWS SDK for Go v2 の必要パッケージを導入

go get github.com/aws/aws-sdk-go-v2/config
go get github.com/aws/aws-sdk-go-v2/service/dynamodb
💡 ポイント
  • config は設定読み込み用
  • dynamodb はDynamoDBとのやり取りを担当

3. コードで設定を読み込み、クライアントを作成

package main

import (
    "context"
    "log"
    "github.com/aws/aws-sdk-go-v2/config"
    "github.com/aws/aws-sdk-go-v2/service/dynamodb"
)

func main() {
    // AWS設定をロード(~/.aws/credentials or 環境変数)
    cfg, err := config.LoadDefaultConfig(context.TODO())
    if err != nil {
        log.Fatalf("設定の読み込みに失敗: %v", err)
    }

    // DynamoDBクライアントの初期化
    svc := dynamodb.NewFromConfig(cfg)

    log.Println("✅ DynamoDBクライアントの初期化に成功しました")
    _ = svc // まだ使ってないけど、次回使います!
}

4. 実行してみる!

go run main.go

出力例:

✅ DynamoDBクライアントの初期化に成功しました

🔍 認証情報はどこから読むの?

  • ~/.aws/credentials[default] プロファイル
  • または環境変数 AWS_ACCESS_KEY_ID など
  • それを config.LoadDefaultConfig() が自動で検出してくれる

今日のまとめ

✅ Go言語 × AWS SDK v2 準備完了!

- AWS SDK v2 をGo Modulesに導入
- `config.LoadDefaultConfig` で認証&リージョン読み込み
- `dynamodb.NewFromConfig(cfg)` でDynamoDBクライアント作成
- これで明日から「読み書き操作」ができる!

この一週間が終わったら、フォルダ構成とかもしっかり考えたいな。 取り入れたいのはリポジトリパターン。 サンプル => DB設計書を後でおこす。などはよくありそうだし。

以上となります。引き続きよろしくお願いいたします。