본문 바로가기

Cloud/Oracle Cloud Infrastructure

1. OCI를 이용해서 데이터베이스 어플리케이션 아키텍쳐 구성하기 - Intro

오라클 클라우드 인프라스트럭쳐 (Oracle Cloud Infrastructure, 이하 OCI) 오라클 클라우드에서 IaaS 속하는 제품군입니다. 오라클 데이터베이스나 Exadata 서비스와 같은 일부 PaaS 서비스를 포함하고 있지만, OCI 클라우드 분류상 컴퓨팅, 스토리지, 네트웍 등의 인프라를 서비스하는 IaaS입니다.

지금부터 시작하는 "OCI를 이용해서 데이터베이스 어플리케이션 아키텍쳐 구성하기" 시리즈는 OCI를 이용해서 기업 IT 환경에서 사용되는 가장 일반적인 형태의 IT 아키텍쳐를 간단한 샘플로 구성해 봤던 내용을 공유합니다.

이글의 목적은 교육용입니다. 오라클 클라우드, 특히 OCI를 처음 사용하는 사용자가 내용을 따라해 보면서 사용법을 익히는 데 목적이 있습니다. 또 한편으로는 흩어져 있던 자료를 하나로 모아서, 보기 쉽게 정리하는데 목적이 있기도 합니다. 

테스트 환경은 오라클 홈페이지에서 신청할 수 있는 트라이얼 계정에서 수행했습니다.

https://www.oracle.com/kr/try-it.html

테스트를 위해 참조한 문서들입니다. 이 외 오라클에서 제공하는 핸즈온 자료들도 참조했습니다.

       OCI 매뉴얼: https://docs.cloud.oracle.com/iaas/Content/home.htm

       오라클 IaaS 블로그: https://blogs.oracle.com/cloud-infrastructure/

       오라클 리눅스 블로그: https://blogs.oracle.com/linux/

       오라클 White Paperhttps://cloud.oracle.com/iaas/whitepapers/using_oci_load_balancing_with_wordpress.pdf

끝으로 오라클 제품을 다루고 있지만, 이는 개인적인 테스트 결과일 뿐이며, 오라클의 공식 문서는 아님을 미리 밝힙니다. 



거의 대부분의 기업이 내부 또는 고객 대상 업무를 처리하기 위해 가지고 있는 IT 시스템 아키텍쳐는 클라이언트-WEB/WAS-데이터베이스로 이루어진 구조일 것이다. 데이터베이스 어플리케이션 호스팅이라는 이름을 붙인 이 샘플 패턴을 OCI 구현해 보자.

아키텍쳐  


     두대의 웹서버에 로드밸런서의 퍼블릭 IP 받은 트래픽을 두대의 웹서버에 라운드 로빈 방식으로 분산시킨다. 로드밸런서 장애로 인한 서비스 중지 상황을 대비해 로드밸런서는 Active-Standby 구조로 구성한다.

     가상머신 인스턴스에 아파치 웹서버를 구성한다. 대의 웹서버를 구성하며 첫번째 웹서버의 컨텐츠가 두번째 웹서버로 동기화되도록 rsync 설정을 한다. 또한 한쪽 데이터 센터에 장애가 발생해도 서비스가 계속 이루어 질수 있도록 웹서버는 서로 다른 Availability Domain 위치시킨다. 보안을 위해 프라이빗 서브넷으로 구성하고, SSH 연결은 Bastion 서버를 통해서 이루어지도록 한다.

     데이터베이스는 오라클 데이터베이스로 구성하며 PaaS 서비스를 이용한다. 데이터베이스 장애 방안으로 Primary 데이터베이스를 Standby 데이터베이스로 오라클 Data Guard 이용하여 동기화시킨다. 보안을 위해 프라이빗 서브넷으로 구성하고, SSH 연결은 Bastion 서버를 통해서 이루어지도록 한다.

     데이터베이스의 백업은 오브젝트 스토리지에 받는다. 데이터베이스에서 오브젝트 스토리지 연결은 인터넷 게이트웨이가 아닌 서비스 게이트웨이를 통해 연결한다. 이는 오브젝트 스토리지에 접속하려면 인터넷망 연결이 필요한데, 데이터베이스가 인터넷망에 노출되는 것을 피하기 위해서이다.

     웹서버, 데이터베이스 관리 작업을 위해 SSH 연결을 필요로 한다. 데이터베이스의 SSH 접속은 보안을 위해 NAT 서버 기능을 하는 Bastion 서버를 통해 터널링으로 이루어지도록 구성한다. Bastion 서버는 가상머신 위에 구성한다.


 작업 순서

데이터베이스 어플리케이션 호스팅 업무 개발 환경의 구축은 아래와 같은 순서로 진행하겠다아래 단계는 환경 구축에 대한 설명을 단위별로 하기 위해 나열한 순서일 분이다 처음 수행하는 VCN 생성을 제외하고는 작업 순서가 정해진 것은 아니다단지 설명의 편의를 위한 절차이므로 3단계 이하는  순서를 바꿔서 수행해도 상관 없다.

1단계. VCN 생성

2단계. Bastion(NAT기능서버 구성

3단계. 웹서버 구성

4단계. 로드밸런서 구성

5단계. 오브젝트 스토리지 구성

6단계. 데이터베이스 구성


작성자: 정영균


OCI를 이용해서 데이터베이스 어플리케이션 아키텍쳐 구성하기 시리즈

1. OCI이용해서데이터베이스어플리케이션아키텍쳐구성하기 – Intro

2. OCI이용해서데이터베이스어플리케이션아키텍쳐구성하기 – VCN

3. OCI이용해서데이터베이스어플리케이션아키텍쳐구성하기 – VCN

4. OCI이용해서데이터베이스어플리케이션아키텍쳐구성하기 – VCN (인터넷게이트웨이)

5. OCI이용해서데이터베이스어플리케이션아키텍쳐구성하기 – VCN (라우트테이블)

6. OCI이용해서데이터베이스어플리케이션아키텍쳐구성하기 – VCN (시큐리티리스트)

7. OCI이용해서데이터베이스어플리케이션아키텍쳐구성하기 – VCN (서브넷)

8. OCI이용해서데이터베이스어플리케이션아키텍쳐구성하기 – Bastion 서버

9. OCI이용해서데이터베이스어플리케이션아키텍쳐구성하기 – Bastion 서버 (시큐리티 리스트)

10. OCI이용해서데이터베이스어플리케이션아키텍쳐구성하기 – Bastion 서버 (인스턴스)

11. OCI이용해서데이터베이스어플리케이션아키텍쳐구성하기 – Bastion 서버 (웹서버 연결)

12. OCI이용해서데이터베이스어플리케이션아키텍쳐구성하기 – Bastion 서버 (NAT 설정)

13. OCI이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 웹서버

14. OCI이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 웹서버 (rsync)

15. OCI이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 웹서버 (NFS 설정)

16. OCI이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 웹서버 (NFS 설정파일시스템)

17. OCI이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 웹서버 (NFS 설정파일시스템마운트)

18. OCI이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 로드밸런서

19. OCI이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 로드밸런서 (아파치웹서버)

20. OCI이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 로드밸런서 (로드밸런서생성)

21. OCI이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 로드밸런서 (백엔드서버)

22. OCI이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 로드밸런서 (리스너)

23. OCI이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 데이터베이스

24. OCI이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 데이터베이스 (DB 시스템)

25. OCI이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 데이터베이스 (데이터베이스구성)

26. OCI이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 데이터베이스 (DB 시스템연결)

27. OCI이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 데이터베이스 (DB 시스템연결)

28. OCI이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 데이터베이스 (백업)

29. OCI 이용해서 데이터베이스 어플리케이션 아키텍쳐 구성하기 – 데이터베이스 (DR 구성)