본문 바로가기
개발/Terraform on NaverCloud

이슈 선정 3 : MSSQL 리소스 개발하기

by 컴쏘 2023. 8. 22.

컨트리뷰션에 기여하고 싶은 세번째 이슈를 선정하였다.

 

깃헙 이슈

https://github.com/NaverCloudPlatform/terraform-provider-ncloud/issues/283

 

New or Affected Resource(s)

Add a new Cloud Mssql Database resource in the VPC environment

  • ncloud_cloud_mssql

 

참고 문서

API GUIDE

Cloud DB for MSSQL (VPC) 개요

 

Cloud DB for Mssql(VPC) SDK-GO

https://github.com/NaverCloudPlatform/ncloud-sdk-go-v2/blob/master/services/vmssql/README.md

 

 

본격적으로 개발하기 전에 MSSQL 서비스에 대해서 알아보기 위해, NAVER Cloud Console에서 MSSQL을 사용해보았다.

 

[사전 작업 : VPC 생성]

vpc 생성

 

[사전 작업 : Subnet 생성]

subnet 생성
정보 입력
생성 확인

 

[Cloud DB for MSSQL]

서버 생성하기
서버 설정
DB 설정
생성 확인

 

Console에서 직접 DB Server를 생성해보니, 어떤 정보들이 필요한 지 알 수 있었다. 

 

이제, terraform으로 mssql을 생성해보자. 

전에 작성했던 글인 Terraform으로 NAVER Cloud Server 만들기 글을 참고하였다. 

 

총 3개의 파일을 생성하였다.

  • provider.tf
  • variable.tf
  • mssql.tf

provider.tf 와 variable.tf 파일은 참고한 곳과 내용이 동일하다.

 

 

[mssql.tf 파일 작성하기]

 

mssql을 생성하기 위해서는 우선 vpc와 subnet을 먼저 생성하면 된다.

 

  • vpc 

vpc

 

  • subnet

subnet

 

  • mssql 코드 작성하기 - ncloud api 참조

참조 링크 : https://api.ncloud-docs.com/docs/database-vmssql-createcloudmssqlinstance

 

mssql

 

[terraform init]

 

우선 terraform init으로 초기화를 해주자.

terraform init

 

[terraform plan]

 

오류 발생

오류

 

provider에 ncloud_mssql이 정의되어 있지 않음 → 이걸 개발하면 된다.

 

 

앞으로 개발을 위해 참고할 자료들을 찾아보았다. 

  • NAVER Cloud API 
  • SDK-go-v2
  • 기존에 작성된 코드인 classicloadbalancer, lb 등을 참고 
  • 같이 오픈소스 기여에 참가한 정찬님 코드 참고 

 

또한, 개발에 필요한 환경 설정들을 먼저 해주었다.

 

추가한 내용들 

 

1) config.go

import 추가
vmssql 추가
return에 추가

 

 

2) provider.go

import 추가
func New(ctx context.Context) *schema.Provider에 추가
resourceMap := map[string]*schema.Resource에 추가

 

3) cloudmssql 생성

 

총 4개의 파일을 생성하였다.

  • cloud_mssql_data_source_test.go
  • cloud_mssql_data_source.go
  • cloud_mssql_test.go
  • cloud_mssql.go

파일 생성

 

 

이제 본격적으로 개발해보자...!!