AWS Relational Database Service (RDS)는 클라우드 기반의 완전 관리형 관계형 데이터베이스 서비스로서, MySQL, PostgreSQL, SQL Server, Oracle 등 여러 가지 데이터베이스 엔진을 지원합니다. 이 기술 블로그에서는 Go 언어를 사용하여 AWS RDS 데이터베이스에 연결하는 방법을 살펴보겠습니다.
필수 사항
먼저 AWS RDS 데이터베이스에 연결하기 위해 아래와 같은 것들이 준비되어 있어야 합니다:
- AWS 계정
- 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 언어에 대한 더 많은 정보가 필요하다면 위의 참고 자료를 확인하시기 바랍니다.