개요

앞에서는 EC2 인스턴스를 통해 RDS에 접근하는 설정을 진행하였다.

그러나 이번 페이지에서는 테스트를위해 EC2 인스턴스가 아닌 개인 PC를 통해 RDS에 접근하는 방법과

유니티 프로젝트에서 AWS RDS의 DB 데이터에 연결하고 가져오는 방법을 이야기한다.

 

[AWS] RDS로 DB세팅하기 글은 Study Project를 진행하며 알아본 정보를 정리한 내용으로,

내용이 아쉽거나 부족한 부분이 있을 수 있습니다.


1. RDS 퍼블릭 설정하기

AWS RDS의 DB인스턴스를 RDS를 VPC 외부와 연결할 수 있도록 퍼블릭 엑세스를 가능하도록 변경한다.

* 이후 본 프로젝트에서는 퍼블릭 엑세스를 불가능으로 설정하고 접근하는 PC를 EC2 인스턴스로 한정하여 보안을 강화하자

 

 

인스턴스의 퍼블릭 엑세스 가능 상태로 변경된 것을 확인할 수 있다.

VPC 보안 그룹을 클릭하여 보안 그룹의 인바운드 규칙을 설정해주자.

 

보안 그룹의 인바운드 규칙을 추가하고 MySQL 유형내 IP를 등록해 주자.

이제 내 IP에서 AWS RDS의 DB 인스턴스에 접근이 가능하게 설정되었다.

 

 

2. 유니티에서 DB에 접근하기

유니티에 MySQL 플러그인을 적용시킨다.

Unity_Plugin_Dll.zip
1.59MB

 

 

유니티 프로젝트를 실행하고 아래 코드를 입력한 스크립트를 생성한다.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Data;
using MySql.Data;
using MySql.Data.MySqlClient;
using System;

public class DataBase : SingletonBehabiour<DataBase>
{
    MySqlConnection sqlconnection = null;

    [SerializeField] string sqlDBip;
    [SerializeField] string sqlDBname;
    [SerializeField] string sqlDBid;
    [SerializeField] string sqlDBpw;

    void sqlConnect()
    {
        string sqlDataBase = "Server=" + sqlDBip + ";Database=" + sqlDBname + ";UserId=" + sqlDBid + ";Password=" + sqlDBpw + "";

        try
        {
            sqlconnection = new MySqlConnection(sqlDataBase);
            sqlconnection.Open();

            UnityEngine.Debug.Log("<color=blue>SQL의 접속 상태 : </color>" + sqlconnection.State);
        }
        catch(Exception msg)
        {
            UnityEngine.Debug.Log(msg);
        }
    }

    void sqldisConnect()
    {
        sqlconnection.Close();
        UnityEngine.Debug.Log("<color=red>SQL의 접속 상태 : </color>" + sqlconnection.State);
    }
}

 

유니티 Inspector창에서 데이터베이스의 정보를 입력한다.

 

데이터 베이스의 엔드 포인트는 AWS RDS의 DB인스턴스에서 확인할 수 있다.

 

같은 페이지에서 DB 이름마스터 사용자 이름을 확인할 수 있으며,

DB 인스턴스 생성시 입력했던 마스터 암호도 입력해 주자

 

    public void sqlcmdall(string allcmd) // INSERT, UPDATE 구문 사용
    {
        sqlConnect();

        MySqlCommand dbcmd = new MySqlCommand(allcmd, sqlconnection);
        dbcmd.ExecuteNonQuery();
        sqldisConnect();
    }

    public DataTable selsql(string sqlcmd) // SELECT 구문 사용
    {
        DataTable dataTable = new DataTable();

        sqlConnect();
        MySqlDataAdapter adapter = new MySqlDataAdapter(sqlcmd, sqlconnection);
        adapter.Fill(dataTable);
        sqldisConnect();
        
        return dataTable;
    }

위 코드를 추가하고 매개변수에 SQL 구문을 입력하여 DB의 데이터를 읽고 쓸 수 있다.

 

 

[TIP #3] 유니티에 DB 사용하기 (MYSQL 사용하기-Insert, Update, Select-)

안녕하세요. 헝탱입니다. 오늘은 MYSQL을 이용해 유니티의 데이터를 저장하는 방식을 알려드릴려고 합니다. 그전에 많은 설정이 필요합니다. 하지만 저도 시놀로지 나스를 이용한 DB를 구축해서

yourpresence.tistory.com

이 글은 위 블로그를 참고하여 만들어졌으니 블로그를 참고하는 것도 추천한다.

728x90

+ Recent posts