[go] Go 언어를 사용하여 AWS RDS 데이터베이스 연결하기

AWS Relational Database Service (RDS)는 클라우드 기반의 완전 관리형 관계형 데이터베이스 서비스로서, MySQL, PostgreSQL, SQL Server, Oracle 등 여러 가지 데이터베이스 엔진을 지원합니다. 이 기술 블로그에서는 Go 언어를 사용하여 AWS RDS 데이터베이스에 연결하는 방법을 살펴보겠습니다.

필수 사항

먼저 AWS RDS 데이터베이스에 연결하기 위해 아래와 같은 것들이 준비되어 있어야 합니다:

Go 언어에서 AWS RDS에 연결하는 방법

Go 언어에서는 database/sql 패키지를 사용하여 다양한 데이터베이스에 연결할 수 있습니다. AWS SDK for Go를 사용하면 AWS 서비스와 상호 작용할 수 있으므로, AWS RDS에 연결하기 위해 AWS SDK for Go를 설치해야 합니다. 아래의 예제 코드에서는 MySQL 데이터베이스를 사용하는 경우를 기준으로 설명하겠습니다.

적절한 IAM 권한을 가진 AWS 계정에서 aws-sdk-go 패키지를 설치합니다:

go get -u github.com/aws/aws-sdk-go

다음으로, Go 언어에서 AWS RDS에 연결하기 위한 예제 코드는 아래와 같습니다:

package main

import (
	"database/sql"
	"fmt"
	_ "github.com/go-sql-driver/mysql"
	"github.com/aws/aws-sdk-go/aws"
	"github.com/aws/aws-sdk-go/aws/session"
	"github.com/aws/aws-sdk-go/service/rds/rdsutils"
)

func main() {
	// AWS 세션 생성
	sess := session.Must(session.NewSession(&aws.Config{
		Region: aws.String("your-aws-region"),
	}))

	// RDS 데이터베이스 인증 토큰 획득
	token, err := rdsutils.BuildAuthToken(rdsEndpoint, awsRegion, dbName, awsCreds)
	if err != nil {
		panic(err)
	}

	// RDS 데이터베이스에 연결
	db, err := sql.Open("mysql", fmt.Sprintf("username:password@protocol(endpoint)/dbname?parseTime=true&loc=Local"))
	if err != nil {
		panic(err)
	}
	defer db.Close()

	// 데이터베이스 연결 테스트
	err = db.Ping()
	if err != nil {
		panic(err)
	}

	fmt.Println("AWS RDS 데이터베이스에 성공적으로 연결되었습니다!")
}

위 코드에서 your-aws-region, rdsEndpoint, awsRegion, dbName, awsCreds를 실제 환경에 맞게 수정해야 합니다. 또한, github.com/go-sql-driver/mysql 패키지를 설치하여 MySQL 데이터베이스로의 연결을 지원받을 수 있습니다.

이제, Go 언어를 사용하여 AWS RDS 데이터베이스에 성공적으로 연결하는 방법을 알아보았습니다. 이를 통해 안전하고 효율적으로 AWS RDS 데이터베이스와 상호 작용할 수 있을 것입니다.

참고 자료

AWS RDS 및 Go 언어에 대한 더 많은 정보가 필요하다면 위의 참고 자료를 확인하시기 바랍니다.