K PaaS-TA 앱 운영
모니터링 Blue-Green 배포 도메인 등록 DB 백업
1. 모니터링 – CF CLI CF ssh 접속 후 top 모니터링 $ cf ssh <app_name> [-i <index>] vcap@v10nelf9v4j:~$ top
1. 모니터링 – CF plugin(1/2) CF CLI “top” 플러그인 설치 $ cf install-plugin -r CF-Community "top" Github: https://github.com/ECSTeam/cloudfoundry-top-plugin
1. 모니터링 – CF plugin(2/2) “top” 플러그인을 이용한 실시간 모니터링 $ cf top
2. Blue-Green 배포 – 개요(1/3) Router Router A_v1 A_v2 A_v1 운영 서비스 영향 없이 서비스 버전 업데이트를 위한 기술 Router Router A.domain.com A-temp.domain.com A.domain.com A_v1 A_v2 A_v1
2. Blue-Green 배포 – 개요(2/3) Router Router A_v1 A_v2 A_v2 운영 서비스 영향 없이 서비스 버전 업데이트를 위한 기술 Router Router A.domain.com A.domain.com A-temp.domain.com A.domain.com A-temp.domain.com A_v1 A_v2 A_v2
2. Blue-Green 배포 – 개요(3/3) 운영 서비스 영향 없이 서비스 버전 업데이트를 위한 기술 Rolling Update Router A_v2 A-temp.domain.com A_v1 A.domain.com A_v1 A_v1 인스턴스 수 A_v1 A_v2 A_v2 A_v1 A_v2 A_v1 A_v2 A_v1 시간
2. Blue-Green 배포 – CF CLI(1/2) CF CLI 를 이용할 Rolling update 어플리케이션(v1) 배포 및 시험 어플리케이션 소스 업데이트 어플리케이션(v2) 배포 및 시험 $ echo "Version1<?php phpinfo(); ?>" > index.php $ cf push cgs_v1 --hostname cgs -m 128m -b php_buildpack $ cf apps $ echo "Version2<?php phpinfo(); ?>" > index.php $ cf push cgs_v2 --hostname cgs_v2 -m 128m -b php_buildpack
2. Blue-Green 배포 – CF CLI(2/2) 어플리케이션(v2) 서비스 Route 등록 및 시험 Scale out / in 구 어플리케이션(v1) 서비스 Route 삭제 및 어플리케이션 삭제 $ cf map-route cgs_v2 paasta.koscom.co.kr --hostname cgs $ cf scale cgs_v1 –i 3 # 구 버전 감소(3 2 1) $ cf scale cgs_v2 –i 2 # 신 버전 증가(1 2 3) $ cf unmap-route cgs_v1 paasta.koscom.co.kr --hostname cgs $ cf delete –f cgs_v1 $ cf apps
2. Blue-Green 배포 – CF Plugin(1/4) 매뉴얼 Zero 다운타임 배포 방식과 CF CLI “blug-green” plugin 을 이용한 배포 $ cf install-plugin blue-green-deploy -r CF-Community Github: https://github.com/bluemixgaragelondon/cf-blue-green-deploy
2. Blue-Green 배포 – CF Plugin(2/4) 매뉴얼 Zero 다운타임 배포 방식과 CF CLI “blug-green” plugin 을 이용한 배포 $ echo “Version1<?php phpinfo(); ?>” > index.php $ cf push testA –m 128m $ echo “Version2<?php phpinfo(); ?>” > index.php $ cf bgd testA
2. Blue-Green 배포 – CF Plugin(3/4) 매뉴얼 Zero 다운타임 배포 방식과 CF CLI “blug-green” plugin 을 이용한 배포
2. Blue-Green 배포 – CF Plugin(4/4) 매뉴얼 Zero 다운타임 배포 방식과 CF CLI “blug-green” plugin 을 이용한 배포
3. 도메인 등록 네임 서버에 호스트 등록 호스트명: www <AWS Route53 등록 사례> IP: 114.31.116.152 참고) 네임서버 IP 확인 <AWS Route53 등록 사례>
3. 도메인 등록 – 포털에서 등록 조직명 > 도메인 관리 도메인 추가
3. 도메인 등록 – 포털에서 등록 기 배포한 어플리케이션 매핑 사례 어플리케이션 > 라우트 라우트 추가
3. 도메인 등록 – 포털에서 등록 참고) 등록된 도메인 없이 시험해 보기 리눅스 hosts 파일 설정: /etc/hosts 윈도우 hosts 파일 설정 : C:\Windows\System32\drivers\etc\hosts) 리눅스 hosts 파일 설정: /etc/hosts
3. 도메인 등록 – 포털에서 등록 신규 배포 어플리케이션 배포 사례 $ echo “Version1<?php phpinfo(); ?>” > index.php $ cf push cgs_v1 --hostname www -d galaxycloud.co.kr -m 128m -b php_buildpack $ cf apps
4. DB 백업 – SSH 터널링 개요 PaaS 제공하는 DB 서비스는 직접 접속이 불가하며, 사용자가 배포한 앱을 이용한 SSH 터널링을 통해 접속 지원 Koscom PaaS-TA PaaS 플랫폼 MySQL 서비스 music-db (Database) 개발자 PC SSH Tunnel spring-music (컨테이너) X
4. DB 백업 – SSH 터널링 생성(1/3) 시험 환경 구성 어플리케이션 배포 서비스 인스턴스 생성 바인딩(어플리케이션 - 서비스 인스턴스) 바인딩 어플리케이션 적용 $ echo “Version1<?php phpinfo(); ?>” > index.php $ cf push cgs_v1 --hostname www $ cf create-service p-mysql 200mb www $ cf bind-service cgs_v1 www $ cf restage cgs_v1
4. DB 백업 – SSH 터널링 생성(2/3) 서비스 인스턴스 환경 정보 확인 터널링 구성 및 백업 $ cf env cgs_v1 $ cf ssh -N -L 3306:10.4.0.5:3306 cgs_v1 로컬 포트 (사용자 임의 지정) hostname port
4. DB 백업 – SSH 터널링 생성(3/3) MySQL 접속 및 백업 $ mysql -u UHlLcpxwbMA4MmmB -pP11D09Wa0K8NG0qf -h 127.0.0.1 -P 3306 \ cf_2d17668a_983c_481b_b199_6bdc5cb17768