오픈소스와 클라우드를 활용한 SPRi홈페이지 아키텍처 공개

날짜2015.09.22
조회수12426
글자크기
    • 제목 오픈소스와 클라우드를 활용한 SPRi 홈페이지 아키텍처 공개
      개요 SW정책 연구소는 대한민국 SW기술공유 문화 확산을 위해 홈페이지 개발 및 운영에 대한 노하우를 공개합니다.
      목적 공공기관의 기술 및 운영 노하우에 대한 공개를 통한 사회적 가치 증가
      공공기관 홈페이지의 오픈소스 활용 사례 공유
      공공기관 홈페이지의 클라우드 활용 사례 공유
      * 참고 : [법률 제13234호] 클라우드컴퓨팅 발전 및 이용자 보호에 관한 법률
      기술 담당 양병석 (fstory97@spri.kr), 윤웅식(ungsik.yun@gmail.com)
      홈페이지 총괄 윤영식 (ysyoon@spri.kr)
  • 1. 중점 검토 내용
    • 공공기관의 클라우드 이용에 대한 지침과 법률
    • 홈페이지 운용 관련한 개발 및 운용 편의성 및 유연성
    • 개인 정보 보호
  • 2. 사전 검토
    • 공공기관으로서 준수해야 하는 지침을 검토 진행 하였으며, 특히 지침에 강조된 보안 항목들을 중점으로 검토 진행 하였음
    • 정보보안
    • (방화벽) 국정원 인증을 획득한 제품 사용이 필수
    • 클라우드 서비스에서 제공하는 방화벽의 제품명 확인을 통해 국정원 인증 여부 확인 가능 했음
    • (웹 취약점 검사) 년간 1회 필수 진행 필요
    • 외부 업체를 통해 수행 가능함 확인 (https://scan.bitscan.co.kr/)했음
    • 개인정보
    • 개인정보 보유 여부에 따라 준수해야 하는 수준이 다름
    • 소프트웨어 정책연구소는 홈페이지는 개인정보를 포함할 수 있는 일체의 회원가입을 받지 않음
    • 기타사항
    • 기타 보안 사항을 고려하여 구축함
    • 소프트웨어 정책연구소의 웹서버에 올려져 있는 모든 정보는 공공누리 2유형으로 공개, 유출에 대한 위험 없음
    • (http://www.kogl.or.kr/open/info/license2.do)
  • 3. HW 아키텍처 구축
    • ① 방화벽(Firewall) (업체 선택) NCloud24의 KT 클라우드 서비스
    • (기술 역량 ) 아마존 AWS의 파트너사, KT의 클라우드의 총판으로 기술적 역량 입증
    • (운영기술 지원) 매니지드 서비스를 제공하여 구축 및 운영에 대한 기술지원을 제공
    • (지리적 위치) NCloud24의 사무실은 정책연구소의 근교에 있어 방문 상담이 가능(https://www.ncloud24.com/)
    • 제공하는 KT클라우드는 국내에 위치하여 정보의 국외반출에 대한 우려 적음
    • (온디멘드 서비스) 필요에 따른 사양 변경 및 서버 추가 또는 감소가 즉각적으로 가능
    • (개요) 사용자의 웹트래픽의 세부 내역을 검사하고 분석하여, 해킹등의 시도를 차단하는 기기
    • (사양) 펜타시큐리티 Wapple (www.pentasecurity.com)
    • (검토내역) 국정원 인증 획득 제품
    • (보안) 보안 위협이 높은 수준은 아니므로 업체 제공 기본 사양 채택함
    • 권장 Throughput 100Mbps, 최대 200Mbps
    • ② 공개 운영 서버(Product server)
    • (개요) 외부에 공개된 서비스 서버
    • (사양) 4vCore / 8GB / 100GB
    • (검토내역) 현재의 유입을 감당할 수 있을 정도의 사양으로 선택
    • (보안) 개발자나 관리자도 서비스 포트인 80포트외에 직접 접근 불가하며, ③VPN과 ACL(Access list)관리를 통해 비공개 개발서버에서만 접근 가능
    • ④ 비공개 개발 서버(Test server)
    • (개요) 개발 혹은 배포의 목적으로 한 외부에 공개되지 않은 비공개 웹서버
    • (사양) 1vCore / 1GB / 300GB(백업 목적의 200GB 포함)
    • (검토내역) 소수의 개발자와 관리자의 트래픽만 감당 가능하고, 백업파일의 저장공간을 위해 추가 용량 설정
    • (보안) 개발서버는 ⑤OpenVPN을 통해 네트워크에 접근 가능하며, SSH는 아이디 패스워드로 또 한번 검증을 하고, 최종 운영서버는 개발서버에서 SSH로 접근 가능함
    • 운영서버에 접근하기 위해서는 3단계 인증을 거치도록 하여 보안 위협 최소화
  • 4. SW 아키텍처 구축
    SW 아키텍처 구축
    • (운영체계) centos63-64-140930 (https://www.centos.org/)
    • 2010년경까지 전세계에서 가장 인기있는 배포 버전으로 국내에서도 유명 포털등 이를 이용하는 엔터프라이즈 서비스들이 다수 있음
    • (접근관리) OpenVPN : 개발서버에 접근하기 위한 VPN 소프트웨어 이용
    • ⑥ (웹서버) Apache 2.2
    • ⑦ (홈페이지 제작 오픈 소스) Wordpress 4.3.1 (https://ko.wordpress.org/)
    • 전세계에서 가장 많이 사용되는 CMS(Contents Management System)로 문제 해결에 대한 팁들을 구하기 용이하며 php로 되어있어 국내 개발자 수급도 용이함
    • ⑧ (데이터베이스) MySQL 5.1
    • Wordpress는 데이터베이스내에 플러그인 정보들이 저장되어 있으며, 해당 정보는 소스의 절대경로 및 상대경로를 저장하는 경우가 많아 데이터베이스는 운영 서버와 개발 서버 분리에 어려움이 있었음
    • 이러한 특성 때문에 운영서버와 개발서버는 각각의 로컬서버로 구성하였으며 운영서버에서 개발서버로 주기적인 백업 정책을 수행함
    • ⑨ (SSH) 원격지에서 시스템상의 명령어를 실행하기 위한 프로토콜 및 관련 프로그램
    • 암호화 기법을 이용하므로 스니핑 공격에 대한 우려가 적음
  • 5. 서비스 운영 체계 구축
    • 모니터링 체계 구축
    • 24시간 모니터링 통한 서비스 안정성 유지
    • 해당 내용을 기반으로 정기 보고 혹은 비정기 보고 진행
    • 정기보고
    • 업체에서 주기(월)적으로 보고하는 정기 보고서
    • 정기 보고가 아니더라도 서버에 이상이, 생길시 즉각 연락을 받을 수 있음.
    • [정기보고서 주요 내용]
    • 기술 지원 내역
    • - 결론 및 의견
    • - 기타
    • 서비스 사용 현황
    • - 서버 사용 현황
    • - IP 사용 현황
    • - 방화벽 사용 현황
    • 모니터링 결과
    • 비정기보고
    • 예측할 수 없는 장애에 대한 내용 보고 및 조치 가이드
    • 비정기 보고 주요 내용
    • [비정기 보고 주요 내용]
    • 이슈 내용 (에러 로그등 기술 내역 포함)
    • 이슈 발생 시간
    • 추정및 확인된 이슈 원인
    • 해결 위한 조치 제안
    • 참고 사항
    • 장애대응 체계 마련
    • 장애 발생시 모니터링하고 있는 Ncloud24에서 즉시 연락 전달(전화, 문자, 이메일)
    • 수행할 수 있는 장애 대응 방안 함께 제시
    • 대응 후 원인 분석 서비스 제공
    • 백업 정책
    • (대상) 사용자의 업로드 폴더를 제외한 모든 소스와 데이터베이스 대상
    • (백업 주기) 매일 사용자의 트래픽이 낮은 시간에 수행
    • (년간 백업) 매년 하루를 지정, 백업파일을 영원히 유지함
    • (월간 백업) 매월 하루를 지정, 백업 파일을 1년간 유지함
    • (주간 백업) 매주 하루를 지정, 백업 파일을 1개월간 유지함
    • (일간 백업) 년간, 월간, 주간 백업에 해당되지 않는 일반 백업파일은 7일간만 유지함
    • 배포 정책
    • Test Server 소스를 Product Server로 동기화하는 SSH의 배치잡을 통해 배포
    • 배포시에도 운영서버에 직접 접근하지 않아 장애의 위협 및 개발자 오류를 최소화
    • 형상 관리
    • 현재 다수 사용자의 협업 이슈가 없어 Backup 외에 별도의 형상 관리는 진행하고 있지 않음
    • 그러나 장기적인 소스 관리 관점에서 Gitlab 도입 진행
  • 6. 클라우드와 오픈소스 활용을 통한 시사점
    • 소프트웨어 정책연구소는 홈페이지 개발의 유연성과 기민성 확보를 위해 클라우드와 오픈소스 활용을 채택
    • 클라우드 서버의 도입을 통해 아래와 같은 잇점을 확인함
    • (확장에 대한 위험 감소) 필요한 사양의 하드웨어를 필요한 만큼 즉시 사용할 수 있어 서버 확충에 대한 위험도 감소
    • (서비스 품질) 높은 품질의 정기리포트, 24시간 기술 지원 및 상담 서비스
    • (웹기반의 손쉬운 설정과 모니터링) 웹 콘솔을 통해 모니터링 및 관리 기능을 매우 빠르게 수행
    • (높은 수준의 기술 지원) 초기 구축 설정에 대한 컨설팅, 장애 발생 시 원인파악 및 조치등의 실질적인 기술 지원 제공
    • (개발 편의성 향상을 통한 기민성 확보) Open VPN을 통한 Public internet에서의 접근 가능하여 기민한 장애 대응 가능
    • (보안 위협 감소) 운영 서버의 직접 접근을 최소화 하고, 사용자 프로그램의 설치를 필요로 하지 않는 Linux시스템으로 Windows의 리모트 시스템 보다 높은 보안성 유지
    • (낮은 비용) 서버의 구매 비용 보다는 매우 낮은 수준의 임대 비용으로 서비스 가능
    • 초기에 낮은 수준의 사양에서 시작하여 상황에 따라 확장 가능하기 때문에 초기 투입 비용이 낮은것도 특징
    • 오픈소스(워드프레스) 도입을 통해서는 아래와 같은 장점을 취득함
    • (비용 우려 없는 강력한 기능) 무료로 강력한 기능 이용
    • (다양한 확장 기능) 플러그인과 위젯등 다양한 유,무료의 확장 기능이 존재하며 선택 설치 가능함
    • (공개된 기술의 풍부한 정보) 문제에 대한 해결책에 대한 기술 정보가 매우 풍부하며 활성화된 커뮤니티들 다수존재
    • (맞춤형 수정) 소스가 공개되어 있으며 수정가능하여 필요에 따른 변경이 가능
    • (보안 위협 감소) 전세계 사용자들이 함께 취약점을 발견하고 함께 고치는 오픈소스는 보안취약점에 대해 빠른 대응이 가능
    • - 온라인 소스 업데이트를 지원
    • 공공기관에서 개발되는 모든 홈페이지가 클라우드와 오픈소스활용이 적합하다고 할 수는 없으나, 일방적 정보 전달을 목적으로 한 홈페이지는 클라우드와 오픈소스의 활용이 매우 좋은 대안
    • 보안에 위협이 되는 정보를 포함한 경우는 이러한 잇점을 활용하기 위해 위협이 되지 않는 부분만 분리 구축안을 검토할 수 있음
    • 이를 통해 효율적인 예산 사용클라우드와 오픈소스활성화를 통한 SW의 산업과 기술, 문화 발전을 기대할 수 있음