오라클 클라우드 인프라스트럭쳐 (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 Paper: https://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 시스템연결)
'Cloud > Oracle Cloud Infrastructure' 카테고리의 다른 글
6. OCI를 이용해서 데이터베이스 어플리케이션 아키텍쳐 구성하기 - VCN (시큐리티 리스트) (0) | 2019.01.15 |
---|---|
5. OCI를 이용해서 데이터베이스 어플리케이션 아키텍쳐 구성하기 - VCN (라우트 테이블) (0) | 2019.01.15 |
4. OCI를 이용해서 데이터베이스 어플리케이션 아키텍쳐 구성하기 - VCN (인터넷게이트웨이) (0) | 2019.01.15 |
3. OCI를 이용해서 데이터베이스 어플리케이션 아키텍쳐 구성하기 - VCN (0) | 2019.01.15 |
2. OCI를 이용해서 데이터베이스 어플리케이션 아키텍쳐 구성하기 - VCN (0) | 2019.01.15 |