NAT 인스턴스는 프라이빗 네트워크 인스턴스에서 특정 IP 주소 대역에 대해 인터넷에 액세스할 수 있게 하는 인스턴스입니다. 한국(판교), 한국(평촌) 리전에서만 제공하는 기능입니다.
[참고] NAT 게이트웨이와의 차이
구분 NAT 게이트웨이 NAT 인스턴스 가용성 이중화 지원 이중화 지원 안 함 유지 관리 NHN Cloud에서 관리 사용자가 직접 관리 보안 그룹 설정 불가 설정 가능 네트워크 ACL 설정 가능 설정 가능 SSH 사용 불가 사용 가능
NAT 인스턴스가 정상적으로 동작하려면 네트워크 인터페이스 설정에서 네트워크 소스/대상 확인을 비활성화해야 합니다.
NAT 인스턴스를 라우트 게이트웨이로 지정합니다. NAT 인스턴스까지 전달된 패킷은 NAT 인스턴스의 서브넷에 연결된 라우팅 테이블의 라우트 설정에 따라 패킷을 전달합니다.
[참고] NAT 인스턴스에 대한 라우팅 설정
- NAT 인스턴스의 서브넷이 라우팅 테이블 1에 연결되어 있고 NAT 인스턴스를 게이트웨이로 사용할 인스턴스들이 라우팅 테이블 2에 연결되어 있는 경우
- 라우팅 테이블 2의 라우트 설정에 특정 CIDR(예: 8.8.8.8/32)에 대해서 NAT 인스턴스를 게이트웨이로 지정할 수 있습니다.
- 라우팅 테이블 1의 라우트 설정에는 NAT 인스턴스를 게이트웨이로 지정하면 안 됩니다. 다만, NAT 인스턴스가 플로팅 IP에 연결된 경우 예외적으로 IP prefix 0 (/0)을 대상 CIDR로 설정할 수 있습니다.
- NAT 인스턴스 서브넷과 NAT 인스턴스를 게이트웨이로 사용할 인스턴스들의 서브넷이 라우팅 테이블 1에 같이 연결되어 있는 경우
- NAT 인스턴스가 플로팅 IP에 연결되어 있다면 라우트 대상 CIDR에 IP Prefix 0 (/0)을 설정할 수 있습니다.
- 위 설정 이외에는, 라우팅 테이블 1의 라우팅 설정에 NAT 인스턴스를 게이트웨이로 지정하면 안 됩니다.
인스턴스 생성 완료 후 RDP(Remote Desktop Protocol)을 활용하여 인스턴스에 접근합니다. 인스턴스에 Floating IP가 연결되어 있어야 하며 보안그룹에서 TCP 포트 3389(RDP)가 허용되어야 합니다.
+ 비밀번호 확인 버튼을 클릭하여 인스턴스 생성 시 설정한 키페어를 사용해 비밀번호를 확인합니다. 연결 버튼을 클릭하여 .rdp 파일을 다운받은 후 획득한 비밀번호를 사용하여 인스턴스에 접속합니다.
서버의 기본 인증 모드가 "Windows 인증 모드"로 되어 있습니다. MS-SQL의 DB 계정을 사용하기 위해 SQL 인증 모드로 변경이 필요합니다.
Microsoft SQL Server Management Studio를 실행하여 인스턴스 이름으로 개체에 연결합니다.
※ SQL 인증모드 설정후 적용을 위해 MS-SQL 서비스를 재시작해야 됩니다.
MS-SQL의 기본 서비스 포트 1433은 널리 알려진 포트로 보안 취약점이 될 수 있습니다. 다른 포트로 변경하는것을 추천합니다. ※ Express 의 경우 기본포트 지정이 안되어 있습니다.
SQL Server 구성관리자를 실행합니다.
※ MS-SQL 서비스 포트 변경후 적용을 위해 MS-SQL 서비스를 재시작해야 됩니다.
외부에서 MS-SQL Database에 접속하기 위해서 Network > VPC 의 Security Group탭에서 MS-SQL 서비스 포트를 Security Rule로 추가해야 합니다. Security Rule 추가시 접속을 허용할 MS-SQL 서비스 포트 (기본포트 : 1433) 및 원격 IP를 등록합니다.
MS-SQL의 데이터/로그 파일(MDF/LDF), 백업 파일은 별도의 Block Storage 사용을 권장합니다.
Compute > Instance > Block Storage 탭으로 이동하여 Block Storage를 생성합니다. Block Storage 생성시 Volume 타입은 성능을 위해 "범용 SSD"를 추천합니다.
Block Storage 생성 완료 후 Storage 선택 후 연결 관리 버튼을 클릭하여 인스턴스에 연결합니다.
RDP로 인스턴스에 접속하여 컴퓨터 관리를 실행하여 저장소 > 디스크 관리로 이동합니다.
연결 된 Block Storage가 탐지된것을 확인할 수 있습니다. 사용하기 위해서는 먼저 디스크 초기화를 실행해야합니다. 1. 디스크 1 블럭을 우 클릭한 후 디스크 초기화를 클릭합니다. 2. 파티션 형식 선택 후 확인 버튼을 클릭합니다.
초기화 완료 후 디스크 볼륨을 생성합니다.
할당되지 않은 디스크를 우 클릭 후 새 단순 볼륨을 클릭하여 새 단순 볼륨 마법사를 진행합니다.
Microsoft SQL Server Management Studio 서버 속성의 데이터베이스 설정에서 데이터베이스 기본 위치를 생성한 볼륨의 디렉토리로 변경합니다.
※ MS-SQL 데이터베이스 기본 위치 변경후 적용을 위해 MS-SQL 서비스를 재시작해야 됩니다.
MS-SQL의 설정 변경시 MS-SQL 서비스의 재시작이 필요한 경우가 있습니다. 변경 설정을 적용하기위해 MS-SQL 서비스를 재시작 합니다.
SQL Server 구성관리자의 SQL Server 구성관리자(로컬) > SQL Server 서비스 > SQL Server(MSSQLSERVER) 를 선택후 우클릭후 노출되는 메뉴에서 "다시 시작"으로 MS-SQL 서비스를 재시작합니다.
MS-SQL의 서비스가 OS 구동시 자동으로 시작하도록 설정되어 있는지 확인합니다.
SQL Server 구성관리자의 SQL Server 구성관리자(로컬) > SQL Server 서비스 에서 "시작모드"를 확인할 수 있습니다.
SQL SERVER (MSSSQLSERVER) 및 SQL Server 에이전트 (MSSQLSERVER) 등의 서비스 시작모드가 자동이 아닐 경우: 1. 해당 서비스를 우 클릭한 후 속성을 선택합니다. 2. 서비스탭에서 General > 시작모드를 자동으로 변경합니다.
[참고] MS-SQL Instance의 릴리스 현황은 인스턴스 릴리스 노트 를 참고하시기 바랍니다.
#mysql 서비스 시작
shell> service mysqld start
#mysql 서비스 중지
shell> service mysqld stop
#mysql 서비스 재시작
shell> service mysqld restart
이미지 생성 후 초기에는 아래와 같이 접속합니다.
shell> mysql -uroot
초기 설치 후 MySQL ROOT 계정 비밀번호는 지정되어 있지 않습니다. 그러므로 설치 후 반드시 바로 비밀번호를 설정해야 합니다. 비밀번호는 아래와 같이 변경할 수 있습니다.
mysql> ALTER USER USER() IDENTIFIED BY '새로운 비밀번호';
MySQL의 기본 validate_password_policy는 아래와 같습니다.
제공되는 이미지 포트는 MySQL 기본 포트인 3306입니다. 보안상 포트 변경을 권장합니다.
shell> vi /etc/my.cnf
#my.cnf 파일에 사용하고자 하는 포트를 명시해 줍니다.
port =사용하고자 하는 포트명
#vi 편집기 저장
#mysql 서비스 재시작
shell> service mysqld restart
#변경된 포트로 아래와 같이 접속
shell> mysql -uroot -P[변경된 포트 번호]
my.cnf 의 기본 경로는 /etc/my.cnf 이고 NHN Cloud 권장 변수(variable)가 설정되어 있으며, 내용은 아래와 같습니다.
이름 | 설명 |
---|---|
default_storage_engine | 기본 스토리지 엔진(stroage engine)을 지정합니다. InnoDB로 지정되며 Online-DDL과 트랜잭션(transaction)을 사용할 수 있습니다. |
expire_logs_days | binlog 설정으로 쌓이는 로그 저장일을 설정합니다. 기본 3일로 지정되어 있습니다. |
innodb_log_file_size | 트랜잭션(transaction)의 redo log를 저장하는 로그 파일의 크기를 지정합니다. 실제 운영 환경에서는 256MB 이상을 권장하며, 현재 512MB로 설정되어 있습니다. 설정값 수정 시 DB 재시작이 필요합니다. |
innodb_file_per_table | 테이블이 삭제되거나 TRUNCATE될 때, 테이블 공간이 OS로 바로 반납됩니다. |
innodb_log_files_in_group | innodb_log_file 파일의 개수를 설정하며 순환적(circular)으로 사용됩니다. 최소 2개 이상으로 구성됩니다. |
log_timestamps | MySQL 5.7의 기본 log 시간은 UTC로 표시됩니다. 그러므로 로그 시간을 SYSTEM 로컬 시간으로 변경합니다. |
slow_query_log | slow_query log 옵션을 사용합니다. long_query_time에 따른 기본 10초 이상의 쿼리는 slow_query_log에 기록됩니다. |
sysdate-is-now | sysdate의 경우 replication에서 sysdate() 사용된 SQL문은 복제 시 마스터와 슬레이브 간의 시간이 달라지는 문제가 있어 sysdate()와 now()의 함수를 동일하게 적용합니다. |
MySQL 디렉터리 및 파일 설명은 아래와 같습니다.
이름 | 설명 |
---|---|
my.cnf | /etc/my.cnf |
DATADIR | MySQL 데이터 파일 경로 - /var/lib/mysql/ |
ERROR_LOG | MySQL error_log 파일 경로 - /var/log/mysqld.log |
SLOW_LOG | MySQL Slow Query 파일 경로 - /var/lib/mysql/*slow.log |
MySQL Instance의 릴리스 현황은 인스턴스 릴리스 노트를 참고하시기 바랍니다.
# postgresql 서비스 시작
shell> sudo systemctl start postgresql
# postgresql 서비스 중지
shell> sudo systemctl stop postgresql
# postgresql 서비스 재시작
shell> sudo systemctl restart postgresql
이미지 생성 후 초기에는 아래와 같이 접속합니다.
#postgres로 계정 전환 후 접속
shell> sudo su - postgres
shell> psql
제공되는 이미지 포트는 PostgreSQL 기본 포트인 5432입니다. 보안상 포트 변경을 권장합니다.
shell> vi postgresql.conf
#postgresql.conf 파일에 사용하고자 하는 포트를 명시해 줍니다.
port =사용하고자 하는 포트명
#vi 편집기 저장
#postgresql 서비스 재시작
shell> sudo systemctl restart postgresql
#변경된 포트로 아래와 같이 접속
shell> psql -p[변경된 포트 번호]
서버 로그에 기록되는 기본 시간대가 UTC로 설정되어 있습니다. SYSTEM 로컬 시간과 동일하게 변경할 것을 권장합니다.
shell> vi postgresql.conf
#postgresql.conf 파일에 사용하고자 하는 타임 존을 명시해 줍니다.
log_timezone =사용하고자 하는 타임 존
#vi 편집기 저장
#postgresql 서비스 재시작
shell> sudo systemctl restart postgresql
#postgresql 접속
shell> psql
#변경한 설정 확인
postgres=# SHOW log_timezone;
기본적으로 모든 사용자에게 public 스키마에 대한 CREATE 및 USAGE 권한을 부여하고 있으므로 데이터베이스에 접속할 수 있는 사용자는 public 스키마에서 객체를 생성할 수 있습니다. 모든 사용자가 public 스키마에서 객체를 생성하지 못하도록 권한 취소를 권장합니다.
#postgresql 접속
shell> psql
#권한 취소 명령어 실행
postgres=# REVOKE CREATE ON SCHEMA public FROM PUBLIC;
로컬 호스트 이외의 접속을 허용하려면 listen_addresses 변수와 클라이언트 인증 설정 파일을 변경해야 합니다.
shell> vi postgresql.conf
#postgresql.conf 파일에 허용하고자 하는 주소를 명시해 줍니다.
#IPv4 주소를 모두 허용하는 경우 0.0.0.0
#IPv6 주소를 모두 허용하는 경우 ::
#모든 주소를 허용하는 경우 *
listen_addresses =허용하고자 하는 주소
#vi 편집기 저장
shell> vi pg_hba.conf
#IP주소 형식별로 클라이언트 인증 제어
#오래된 클라이언트 라이브러리는 scram-sha-256 방식이 지원되지 않으므로 md5로 변경 필요
# TYPE DATABASE USER ADDRESS METHOD
# IPv4 local connections:
host all all 127.0.0.1/32 scram-sha-256
host 허용DB 허용유저 허용주소 scram-sha-256
# IPv6 local connections:
host all all ::1/128 scram-sha-256
host 허용DB 허용유저 허용주소 scram-sha-256
#postgresql 서비스 재시작
shell> pg_ctl reload -D /var/lib/postgresql/${version}/main
PostgreSQL 디렉터리 및 파일 설명은 아래와 같습니다.
이름 | 설명 | Ubuntu |
---|---|---|
postgresql.cnf | config 파일 | /etc/postgresql/${version}/main/postgresql.conf |
DATADIR | PostgreSQL 데이터 파일 경로 | /var/lib/postgresql/${version}/main |
LOG | PostgreSQL log 파일 경로 | /var/lib/postgresql/${version}/main/log/*.log |
“cubrid” Linux 계정으로 로그인하여 CUBRID 서비스를 다음과 같이 시작하거나 종료할 수 있습니다.
# CUBRID 서비스/서버 시작
shell> sudo su - cubrid
shell> cubrid service start
shell> cubrid server start demodb
# CUBRID 서비스/서버 종료
shell> sudo su - cubrid
shell> cubrid server stop demodb
shell> cubrid service stop
# CUBRID 서비스/서버 재시작
shell> sudo su - cubrid
shell> cubrid server restart demodb
shell> cubrid service restart
# CUBRID 브로커 시작/종료/재시작
shell> sudo su - cubrid
shell> cubrid broker start
shell> cubrid broker stop
shell> cubrid broker restart
이미지 생성 후 초기에는 아래와 같이 접속합니다.
shell> sudo su - cubrid
shell> csql -u dba demodb@localhost
초기 설치 후 CUBRID dba 계정 비밀번호는 지정되어 있지 않습니다. 그러므로 설치 후 반드시 비밀번호를 설정해야 합니다.
shell> csql -u dba -c "ALTER USER dba PASSWORD 'new_password'" demodb@localhost
query_editor의 브로커 포트는 기본값이 30000으로 설정되며, broker1의 브로커 포트는 기본값이 33000으로 설정됩니다. 보안상 포트 변경을 권장합니다.
아래 파일을 열어서 아래와 같이 변경할 포트 주소를 입력합니다.
shell> vi /opt/cubrid/conf/cubrid_broker.conf
[%query_editor]
BROKER_PORT =[변경할 port 주소]
[%BROKER1]
BROKER_PORT =[변경할 port 주소]
포트 변경이 적용되도록 브로커를 재시작합니다.
shell> cubrid broker restart
매니저 서버 포트는 기본값이 8001으로 설정됩니다. 보안상 포트 변경을 권장합니다.
아래 파일을 열어서 아래와 같이 변경할 포트 주소를 입력합니다.
shell> vi /opt/cubrid/conf/cm.conf
cm_port =[변경할 port 주소]
포트 변경이 적용되도록 매니저를 재시작합니다.
shell> cubrid manager stop
shell> cubrid manager start
CUBRID 디렉터리 및 파일 설명은 아래와 같습니다.
이름 | 설명 |
---|---|
database.txt | CUBRID 데이터베이스 위치 정보 파일 경로 - /opt/cubrid/databases |
CONF PATH | CUBRID 서버, 브로커, 매니저 환경변수 파일 경로 - /opt/cubrid/conf |
LOG PATH | CUBRID 프로세스 로그 파일 경로 - /opt/cubrid/log |
SQL_LOG | CUBRID SQL Query 파일 경로 /opt/cubrid/log/broker/sql_log |
ERROR_LOG | CUBRID ERROR SQL Query 파일 경로 - /opt/cubrid/log/broker/error_log |
SLOW_LOG | CUBRID Slow Query 파일 경로 - /opt/cubrid/log/broker/sql_log |
서버 설정용 파일로, 운영하려는 데이터베이스의 메모리, 동시 사용자 수에 따른 스레드 수, 브로커와 서버 사이의 통신 포트 등을 설정 가능합니다.
이름 | 설명 |
---|---|
service | CUBRID 서비스 시작 시 자동으로 시작하는 프로세스를 등록하는 파라미터입니다. 기본으로 server, broker, manager 프로세스가 등록되어 있습니다. |
cubrid_port_id | 마스터 프로세스가 사용하는 포트입니다. |
max_clients | 데이터베이스 서버 프로세스 하나당 동시에 접속할 수 있는 클라이언트의 최대 개수입니다. |
data_buffer_size | 데이터베이스 서버가 메모리 내에 캐시하는 데이터 버퍼의 크기를 설정하기 위한 파라미터입니다. 필요한 메모리 크기가 시스템 메모리의 2/3 이내가 되도록 설정할 것을 권장합니다. |
브로커 설정 파일로, 운영하려는 브로커가 사용하는 포트, 응용서버(CAS) 수, SQL LOG 등을 설정 가능합니다.
이름 | 설명 |
---|---|
BROKER_PORT | 브로커가 사용하는 포트이며, 실제 JDBC와 같은 드라이버에서 보는 포트는 해당 브로커의 포트입니다. |
MAX_NUM_APPL_SERVER | 해당 브로커에 동시 접속할 수 있는 CAS의 최대 개수를 설정하는 파라미터입니다. |
MIN_NUM_APPL_SERVER | 해당 브로커에 대한 연결 요청이 없더라도 기본적으로 대기하고 있는 CAS 프로세스의 최소 개수를 설정하는 파라미터입니다. |
LOG_DIR | SQL 로그가 저장되는 디렉터리를 지정하는 파라미터입니다. |
ERROR_LOG_DIR | 브로커에 대한 에러 로그가 저장되는 디렉터리를 지정하는 파라미터입니다. |
CUBRID 매니저 설정 파일로, 운영하려는 매니저 서버 프로세스가 사용하는 포트, 모니터링 수집 주기 등을 설정 가능합니다.
이름 | 설명 |
---|---|
cm_port | 매니저 서버 프로세스가 사용하는 포트입니다. |
cm_process_monitor_interval | 모니터링 정보 수집 주기입니다. |
support_mon_statistic | 누적 모니터링을 사용할 것인지 설정하는 파라미터입니다. |
server_long_query_time | 서버의 진단 항목 중 slow_query 항목을 설정할 경우 몇 초 이상을 늦은 질의로 판별할지 결정하는 파라미터입니다. |
# MariaDB 서비스 시작
shell> sudo systemctl start mariadb.service
# MariaDB 서비스 종료
shell> sudo systemctl stop mariadb.service
# MariaDB 서비스 재시작
shell> sudo systemctl restart mariadb.service
이미지 생성 후 초기에는 아래와 같이 접속합니다.
shell> sudo mysql -u root
패스워드 변경 후에는 아래와 같이 접속합니다.
shell> mysql -u root -p
Enter password:
초기 설치 후 MariaDB root 계정 비밀번호는 지정되어 있지 않습니다. 그러므로 설치 후 반드시 비밀번호를 설정해야 합니다.
SET PASSWORD [FOR user] = password_option
MariaDB> SET PASSWORD = PASSWORD('비밀번호');
초기 설치 후 포트는 MariaDB의 기본 포트인 3306입니다. 보안상 포트 변경을 권장합니다.
/etc/my.cnf.d/server.cnf
파일 수정/etc/my.cnf.d/server.cnf
파일을 열어서 [mariadb] 밑에 아래와 같이 변경할 포트 주소를 입력합니다.
shell> sudo vi /etc/my.cnf.d/server.cnf
[mariadb]
port=[변경할 port 주소]
포트 변경이 적용되도록 인스턴스를 재시작합니다.
sudo systemctl restart mariadb.service
루트 블록 스토리지
최소 권장 사양: 4vCore/8GB
root 계정으로 /root 경로에서 dbca 명령어를 실행합니다.
$ ./dbca OS_ACCOUNT DB_NAME DB_CHARACTERSET DB_TYPE DB_PORT
No | 항목 | 인자값 |
---|---|---|
1 | OS_ACCOUNT | Tibero가 구동되는 OS 계정 |
2 | DB_NAME | Tibero에서 사용되는 DB_NAME(= SID) |
3 | DB_CHARACTERSET | Tibero에서 사용하는 DB 문자 집합 |
4 | DB_TYPE | 이미지에 지정된 인스턴스 타입 ($TYPE) |
5 | DB_PORT | Tibero에서 사용하는 서비스 IP의 포트 |
[rocky@tiberoinstance ~]$ sudo su root
[root@tiberoinstance rocky]# cd
[root@tiberoinstance ~]# pwd
/root
[root@tiberoinstance ~]# ./dbca nhncloud tiberotestdb utf8 $TYPE 8639
dbca 명령어 수행 시 진행 상황이 출력되며 nomount 모드에서 데이터베이스가 생성됩니다. 소요 시간은 10분 이하입니다. 완료되면 아래와 같이 출력됩니다.
SQL>
System altered.
SQL>
System altered.
SQL> Disconnected.
[root@tiberoinstance ~]#
Tibero가 구동 중인지 확인합니다.
[root@tiberoinstance ~]# ps -ef |grep tbsvr
nhncloud 9886 1 1 14:14 ? 00:00:00 tbsvr -t NORMAL -SVR_SID tiberotestdb
nhncloud 9888 9886 0 14:15 ? 00:00:00 tbsvr_MGWP -t NORMAL -SVR_SID tiberotestdb
nhncloud 9889 9886 36 14:15 ? 00:00:21 tbsvr_FGWP000 -t NORMAL -SVR_SID tiberotestdb
nhncloud 9890 9886 0 14:15 ? 00:00:00 tbsvr_FGWP001 -t NORMAL -SVR_SID tiberotestdb
nhncloud 9891 9886 0 14:15 ? 00:00:00 tbsvr_FGWP002 -t NORMAL -SVR_SID tiberotestdb
nhncloud 9892 9886 0 14:15 ? 00:00:00 tbsvr_FGWP003 -t NORMAL -SVR_SID tiberotestdb
nhncloud 9893 9886 0 14:15 ? 00:00:00 tbsvr_FGWP004 -t NORMAL -SVR_SID tiberotestdb
nhncloud 9894 9886 0 14:15 ? 00:00:00 tbsvr_FGWP005 -t NORMAL -SVR_SID tiberotestdb
nhncloud 9895 9886 0 14:15 ? 00:00:00 tbsvr_FGWP006 -t NORMAL -SVR_SID tiberotestdb
nhncloud 9896 9886 0 14:15 ? 00:00:00 tbsvr_FGWP007 -t NORMAL -SVR_SID tiberotestdb
nhncloud 9897 9886 0 14:15 ? 00:00:00 tbsvr_FGWP008 -t NORMAL -SVR_SID tiberotestdb
nhncloud 9898 9886 0 14:15 ? 00:00:00 tbsvr_FGWP009 -t NORMAL -SVR_SID tiberotestdb
nhncloud 9899 9886 0 14:15 ? 00:00:00 tbsvr_PEWP000 -t NORMAL -SVR_SID tiberotestdb
nhncloud 9900 9886 0 14:15 ? 00:00:00 tbsvr_PEWP001 -t NORMAL -SVR_SID tiberotestdb
nhncloud 9901 9886 0 14:15 ? 00:00:00 tbsvr_PEWP002 -t NORMAL -SVR_SID tiberotestdb
nhncloud 9902 9886 0 14:15 ? 00:00:00 tbsvr_PEWP003 -t NORMAL -SVR_SID tiberotestdb
nhncloud 9903 9886 0 14:15 ? 00:00:00 tbsvr_PEWP004 -t NORMAL -SVR_SID tiberotestdb
nhncloud 9904 9886 0 14:15 ? 00:00:00 tbsvr_PEWP005 -t NORMAL -SVR_SID tiberotestdb
nhncloud 9905 9886 0 14:15 ? 00:00:00 tbsvr_AGNT -t NORMAL -SVR_SID tiberotestdb
nhncloud 9906 9886 3 14:15 ? 00:00:01 tbsvr_DBWR -t NORMAL -SVR_SID tiberotestdb
nhncloud 9907 9886 0 14:15 ? 00:00:00 tbsvr_RCWP -t NORMAL -SVR_SID tiberotestdb
root 13517 8366 0 14:15 pts/0 00:00:00 grep --color=auto tbsvr
[root@tiberoinstance ~]#
설치 로그는 /root/.dbset.log에서 확인이 가능합니다.
[root@tiberoinstance ~]# ls -alh
합계 20K
dr-xr-x---. 4 root root 104 10월 17 14:15 .
dr-xr-xr-x. 23 root root 4.0K 10월 17 14:14 ..
-rw-r--r--. 1 root root 18 12월 29 2013 .bash_logout
-rw-r--r--. 1 root root 176 12월 29 2013 .bash_profile
-rw-r--r--. 1 root root 176 12월 29 2013 .bashrc
-rw-r--r-- 1 root root 3.6K 10월 17 14:15 .dbset.log
drwxr----- 3 root root 19 10월 17 14:13 .pki
drwx------ 2 root root 29 10월 17 14:04 .ssh
dbca 명령어로 생성한 OS_ACCOUNT로 로그인합니다.
[root@tiberoinstance ~]# su - nhncloud
마지막 로그인: 목 1월 13 11:34:43 KST 2022 일시 pts/0
##### ### ###### ### ####### ### ###### ####### ###### ####### ####### ####### ##### ####### ###### ######
# # # # # ### # # # # # # # # # # # # # # # # # #
# # # # ### # # # # # # # # # # # # # # # # #
##### # # # # # ###### ##### ###### # # # ##### ##### # # # ######
# # # # ### # # # # # # # # # # # # # # # # #
# # # # # ### # # # # # # # # # # # # # # # # # #
##### ### ###### ### # ### ###### ####### # # ####### # ####### ##### # ###### ######
[nhncloud@tiberoinstance ~]$
[nhncloud@tiberoinstance ~]$ tbsql sys/tibero
tbSQL 7
TmaxTibero Corporation Copyright (c) 2020-. All rights reserved.
Connected to Tibero.
SQL> select * FROM v$instance;
INSTANCE_NUMBER INSTANCE_NAME
--------------- ----------------------------------------
DB_NAME
----------------------------------------
HOST_NAME PARALLEL
--------------------------------------------------------------- --------
THREAD# VERSION
---------- --------
STARTUP_TIME
--------------------------------------------------------------------------------
STATUS SHUTDOWN_PENDING
---------------- ----------------
TIP_FILE
--------------------------------------------------------------------------------
0 tiberotestdb
tiberotestdb
tiberoinstance.novalocal NO
0 7
2023/10/17
NORMAL NO
/db/tibero7/config/tiberotestdb.tip
1 row selected.
SQL>
Tibero에서 제공하는 기본 계정은 다음과 같습니다.
스키마 | 비밀번호 | 설명 |
---|---|---|
sys | tibero | SYSTEM 스키마 |
syscat | syscat | SYSTEM 스키마 |
sysgis | sysgis | SYSTEM 스키마 |
outln | outln | SYSTEM 스키마 |
tibero | tmax | SAMPLE 스키마 DBA 권한 |
tibero1 | tmax | SAMPLE 스키마 DBA 권한 |
[참고] 인스턴스 타입은 c1m2(CPU 1core, Memory 2GB) 이상 사양으로 생성해 주십시오.
# Zookeeper, Kafka broker 시작(Zookeeper 먼저 시작)
shell> sudo systemctl start zookeeper.service
shell> sudo systemctl start kafka.service
# Zookeeper, Kafka broker 종료(Kafka broker 먼저 종료)
shell> sudo systemctl stop kafka.service
shell> sudo systemctl stop zookeeper.service
# Zookeeper, Kafka broker 재시작
shell> sudo systemctl restart zookeeper.service
shell> sudo systemctl restart kafka.service
보안 그룹 설정
방향: 수신
IP 프로토콜: TCP
포트: 22, 9092, 2181, 2888, 3888
Hostname, IP 확인 방법
# Hostname 확인
shell> hostname
# IP 확인
콘솔 화면
또는 shell> hostname -i
Cluster 설치 스크립트 수행 예시(위에서 확인한 hostname, IP 입력)
shell> sh ~/.kafka_make_cluster.sh
Enter Cluster Node Count: 3
### 3 is odd number.
Enter Cluster's IP ( Cluster 1 ) : 10.0.0.1
Enter Cluster's HOST_NAME ( Cluster 1 ) : kafka1.novalocal
Enter Cluster's IP ( Cluster 2 ) : 10.0.0.2
Enter Cluster's HOST_NAME ( Cluster 2 ) : kafka2.novalocal
Enter Cluster's IP ( Cluster 3 ) : 10.0.0.3
Enter Cluster's HOST_NAME ( Cluster 3 ) : kafka3.novalocal
10.0.0.1 kafka1.novalocal
10.0.0.2 kafka2.novalocal
10.0.0.3 kafka3.novalocal
Check Cluster Node Info (y/n) y
Enter Pemkey's name: kafka.pem
ls: cannot access /tmp/kafka-logs: No such file or directory
ls: cannot access /tmp/zookeeper: No such file or directory
### kafka1.novalocal ( 10.0.0.1 ), Check if kafka is being used
### kafka1.novalocal ( 10.0.0.1 ), Store node information in the /etc/hosts directory.
### kafka1.novalocal ( 10.0.0.1 ), Modify zookeeper.properties.
### kafka1.novalocal ( 10.0.0.1 ), Modify server.properties.
ls: cannot access /tmp/kafka-logs: No such file or directory
ls: cannot access /tmp/zookeeper: No such file or directory
### kafka2.novalocal ( 10.0.0.2 ), Check if kafka is being used
### kafka2.novalocal ( 10.0.0.2 ), Store node information in the /etc/hosts directory.
### kafka2.novalocal ( 10.0.0.2 ), Modify zookeeper.properties.
### kafka2.novalocal ( 10.0.0.2 ), Modify server.properties.
ls: cannot access /tmp/kafka-logs: No such file or directory
ls: cannot access /tmp/zookeeper: No such file or directory
### kafka3.novalocal ( 10.0.0.3 ), Check if kafka is being used
### kafka3.novalocal ( 10.0.0.3 ), Store node information in the /etc/hosts directory.
### kafka3.novalocal ( 10.0.0.3 ), Modify zookeeper.properties.
### kafka3.novalocal ( 10.0.0.3 ), Modify server.properties.
### kafka1.novalocal ( 10.0.0.1 ), Start Zookeeper, Kafka.
### Zookeeper, Kafka process is running.
### kafka2.novalocal ( 10.0.0.2 ), Start Zookeeper, Kafka.
### Zookeeper, Kafka process is running.
### kafka3.novalocal ( 10.0.0.3 ), Start Zookeeper, Kafka.
### Zookeeper, Kafka process is running.
##### Cluster Installation Complete #####
최초 설치 후 포트는 Kafka 기본 포트인 9092, Zookeeper 기본 포트인 2181입니다. 보안을 위해 포트를 변경할 것을 권장합니다.
~/kafka/config/zookeeper.properties 파일을 열어서 clientPort에 변경할 Zookeeper port를 입력합니다.
shell> vi ~/kafka/config/zookeeper.properties
clientPort=변경할 zookeeper port
~/kafka/config/server.properties 파일을 열어서 listeners에 변경할 Kafka port를 입력합니다.
인스턴스 IP 확인 방법
콘솔 화면의 Private IP
또는 shell> hostname -i
shell> vi ~/kafka/config/server.properties
# 주석 해제
listeners=PLAINTEXT://인스턴스 IP:변경할 kafka port
# Zookeeper 포트 변경
zookeeper.connect=인스턴스 IP:변경할 zookeeper port
---> 클러스터인 경우, 각 인스턴스 IP의 Zookeeper port 변경
shell> sudo systemctl stop kafka.service
shell> sudo systemctl stop zookeeper.service
shell> sudo systemctl start zookeeper.service
shell> sudo systemctl start kafka.service
변경된 포트가 사용되고 있는지 확인합니다.
shell> netstat -ntl | grep [Kafka port]
shell> netstat -ntl | grep [Zookeeper port]
토픽 생성/조회
# 인스턴스IP = Private IP / Kafka 기본 port = 9092
# 토픽 생성
shell> ~/kafka/bin/kafka-topics.sh --create --bootstrap-server [인스턴스IP]:[카프카PORT] --topic kafka
# 토픽 리스트 조회
shell> ~/kafka/bin/kafka-topics.sh --list --bootstrap-server [인스턴스IP]:[카프카PORT]
# 토픽 상세 정보 확인
shell> ~/kafka/bin/kafka-topics.sh --describe --bootstrap-server [인스턴스IP]:[카프카PORT] --topic kafka
# 토픽 삭제
shell> ~/kafka/bin/kafka-topics.sh --delete --bootstrap-server [인스턴스IP]:[카프카PORT] --topic kafka
데이터 생성/사용
# producer 시작
shell> ~/kafka/bin/kafka-console-producer.sh --broker-list [인스턴스IP]:[카프카PORT] --topic kafka
# consumer 시작
shell> ~/kafka/bin/kafka-console-consumer.sh --bootstrap-server [인스턴스IP]:[카프카PORT] --from-beginning --topic kafka
# Redis 서비스 시작
shell> sudo systemctl start redis
# Redis 서비스 중지
shell> sudo systemctl stop redis
# Redis 서비스 재시작
shell> sudo systemctl restart redis
redis-cli
커맨드를 이용해 Redis 인스턴스에 접속할 수 있습니다.
shell> redis-cli
Redis 인스턴스의 기본 설정 파일은 ~/redis/redis.conf
입니다. 변경해야 할 파라미터에 대한 설명은 아래와 같습니다.
127.0.0.1 -::1
<private ip> 127.0.0.1 -::1
Redis가 사용할 ip에 대한 값입니다. 서버 외부에서 Redis 인스턴스로의 접근을 허용하려면 해당 파라미터에 private ip를 추가해야 합니다. private ip는 hostname -I
커맨드로 확인할 수 있습니다.
6379
포트는 Redis 기본값인 6379입니다. 보안상 포트 변경을 권장합니다. 포트를 변경한 뒤에는 아래 커맨드로 Redis에 접속할 수 있습니다.
shell> redis-cli -p <새로운 포트>
nhncloud
기본 비밀번호는 nhncloud
입니다. 보안상 비밀번호 변경을 권장합니다. 복제 연결을 사용할 경우 requirepass
와 masterauth
값을 동시에 변경해야 합니다.
NHN Cloud의 Redis 인스턴스는 자동으로 HA 환경을 구성해 주는 스크립트를 제공합니다. 스크립트는 반드시 설치 직후의 신규 인스턴스에서만 사용할 수 있으며, redis.conf에서 설정값을 변경한 경우에는 사용할 수 없습니다.
스크립트를 사용하기 위해서는 다음 설정이 필수적으로 필요합니다.
설치 스크립트를 수행하는 인스턴스에 타 인스턴스 접속에 필요한 키 페어(PEM 파일)가 있어야 합니다. 키 페어는 다음과 같이 복사할 수 있습니다.
local> scp -i <키 페어>.pem <키 페어>.pem ubuntu@<floating ip>:/home/ubuntu/
생성한 인스턴스들의 키 페어는 모두 동일해야 합니다.
Redis 인스턴스간의 통신을 위해 보안 그룹(Network > Security Groups) 설정이 필요합니다. 아래 규칙으로 보안 그룹을 생성한 뒤 Redis 인스턴스에 적용하세요.
방향 | IP 프로토콜 | 포트 범위 | Ether | 원격 |
---|---|---|---|---|
수신 | TCP | 6379 | IPv4 | 인스턴스 IP(CIDR) |
수신 | TCP | 16379 | IPv4 | 인스턴스 IP(CIDR) |
수신 | TCP | 26379 | IPv4 | 인스턴스 IP(CIDR) |
Sentinel 구성을 위해 3개의 Redis 인스턴스가 필요합니다. 마스터로 사용할 인스턴스에 키 페어를 복사한 뒤 아래와 같이 스크립트를 수행하세요.
shell> sh .redis_make_sentinel.sh
이후 접속 정보에서 사용할 마스터명(Master Name)과 마스터 및 복제본의 private IP를 차례로 입력합니다. 각 인스턴스의 private IP는 hostname -I
커맨드로 확인할 수 있습니다.
shell> sh .redis_make_sentinel.sh
Enter Master's Name (ex> mymaster) : mymaster
Enter Master's IP: 192.168.0.33
Enter Replica-1's IP: 192.168.0.27
Enter Replica-2's IP: 192.168.0.97
복사해 온 키 페어의 파일명을 입력합니다.
shell> Enter Pemkey's name: <키 페어>.pem
Cluster 구성을 위해 6개의 Redis 인스턴스가 필요합니다. 마스터로 사용할 인스턴스에 키 페어를 복사한 뒤 아래와 같이 스크립트를 수행하세요.
shell> sh .redis_make_cluster.sh
이후 클러스터에 사용할 Redis 인스턴스의 private IP를 차례로 입력합니다. 각 인스턴스의 private IP는 hostname -I
커맨드로 확인할 수 있습니다.
shell> sh .redis_make_cluster.sh
Enter cluster-1'IP: 192.168.0.79
Enter cluster-2'IP: 192.168.0.10
Enter cluster-3'IP: 192.168.0.33
Enter cluster-4'IP: 192.168.0.116
Enter cluster-5'IP: 192.168.0.91
Enter cluster-6'IP: 192.168.0.32
복사해 온 키 페어의 파일명을 입력합니다.
shell> Enter Pemkey's name: <키 페어>.pem
yes
를 입력해 클러스터 구성을 완료합니다.
>>> Performing hash slots allocation on 6 nodes...
Master[0] -> Slots 0 - 5460
Master[1] -> Slots 5461 - 10922
Master[2] -> Slots 10923 - 16383
Adding replica 192.168.0.91:6379 to 192.168.0.79:6379
Adding replica 192.168.0.32:6379 to 192.168.0.10:6379
Adding replica 192.168.0.116:6379 to 192.168.0.33:6379
M: 0a6ee5bf24141f0058c403d8cc42b349cdc09752 192.168.0.79:6379
slots:[0-5460] (5461 slots) master
M: b5d078bd7b30ddef650d9a7fa9735e7648efc86f 192.168.0.10:6379
slots:[5461-10922] (5462 slots) master
M: 0da9b78108b6581bdb90002cbdde3506e9173dd8 192.168.0.33:6379
slots:[10923-16383] (5461 slots) master
S: 078b4ce014a52588e23577b3fc2dabf408723d68 192.168.0.116:6379
replicates 0da9b78108b6581bdb90002cbdde3506e9173dd8
S: caaae4ebd3584c0481205e472d6bd0f9dc5c574e 192.168.0.91:6379
replicates 0a6ee5bf24141f0058c403d8cc42b349cdc09752
S: ab2aa9e37cee48ef8e4237fd63e8301d81193818 192.168.0.32:6379
replicates b5d078bd7b30ddef650d9a7fa9735e7648efc86f
Can I set the above configuration? (type 'yes' to accept):
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.