[구성]

apache : 2.4.25
mysql :5.6.44
php : 7.0.33
wordpress : 5.2

[목차]

  1. 서비스 맵 생성
  2. mysql 설치
    1. mysql용 secret 생성
    2. mysql용 storage 생성
    3. mysql용 workload 생성
    4. mysql 설치 확인
  3. wordpress 설치
    1. apache+php 빌드
    2. wordpress용 storage 생성
    3. wordpress용 workload 생성
    4. wordpress 설치
    5. wordpress 용 service 생성
  4. wordpress 최적화

[상세]

1.서비스맵 생성

  • 서비스 > 서비스 맵 현황 > 아래 그룹추가를 선택해서 [wordpress]를 입력한다.
  • 서비스맵 그룹의 우측의 서비스맵을 클릭, 클러스터를 선택하고 맵이름에 [wordpress] 네임스페이스 이름에 [wordpress]를 입력하고 생성을 클릭한다.

앱스 서비스맵 그룹 추가 버튼 클릭 화면
앱스 서비스맵 그룹 추가시 이름 및 색상 설정 화면
앱스 서비스맵 그룹 추가시 클러스터 및 네임스페이스 이름 설정 화면

2.1 mysql용 시크릿 생성

  • 서비스 > wordpress 서비스맵 > 설정정보 > 시크릿으로 이동
  • 우측에 시크릿 생성 버튼을 클릭
  • 이름과 설명에 wordpress-scret을 입력하고 입력값 추가를 클릭하여MYSQL_DATABASE, MYSQL_PASSWORD, MYSQL_ROOT_PASSWORD, MYSQL_USER를 생성하고 해당 값을 입력하고 시크릿 생성 버튼을 클릭하여 mysql이 필요한 정보를 생성한다.
  • mysql에서 사용하는 변수는 https://hub.docker.com/_/mysql 를 참고한다.

앱스 wordpress 서비스맵의 시크릿 조회 화면
앱스 wordpress 서비스맵의 시크릿 생성 화면

2.2 mysql용 storage 생성

  • 서비스 > wordpress 서비스맵 > 설정정보 > 스토리지볼륨으로 이동해서 볼륨 생성을 클릭
  • 스토리지볼륨타입 [SINGLE] 선택, 스토리지 [default storage] 선택, 액세스모드 [ReadWriteOnce] 선택,  이름에 [wordpress-db-storage] 입력, 용량에 [10]을 입력하고 생성을 클릭한다.

앱스 wordpress 서비스맵의 스토리지 볼륨 조회 화면
앱스 wordpress 서비스맵의 스토리지 볼륨 생성 화면

2.3 mysql 용 workload 생성

  • 서비스 > mysql 서비스맵에서 + 버튼을 클릭하고 워크로드 유형을 [Single Instance] 를 선택한다.
  • 컨테이너에 추가를 클릭
  • 기본정보 >  컨테이너명 [wordpress-db] ,이미지 형식[직접입력], 이미지[mysql:5.6.44], cpu[300/500], Memory [256,1024] 입력
  • 환경변수 > 변수 입력형태에서 시크릿 값을 선택하고 추가를 클릭하고 이전에 생성한 시크릿 MYSQL_DATABASE, MYSQL_PASSWORD, MYSQL_ROOT_PASSWORD, MYSQL_USER 을 입력한다.
  • 보안설정에서 AUDIT_WRITE, DAC_OVERRIDE, FOWNER, FSETID, KILL, NET_BIND_SERVICE, NET_RAW, SETGID, SETUID, SETFCAP, SETPCAP, SYS_CHROOT 을 추가 한다.
  • 서비스 포트의 편집을 클릭해서 이름 [c-port]  프로토콜[tcp] 타켓포트[3306] 서비스포트[3306] 을 입력하고 적용을 클릭한다.
  • 볼륨 마운트의 추가를 클릭해서 볼륨선택에서 [wordpress-db-storage]를 선택하고 추가를 클릭하고 컨테이너 경로에 [/var/lib/mysql] 을 입력하고 적용을 클릭한다.
  •  오른쪽 상단에 생성버튼을 클릭하여 워크 로드 생성을 완료한다.

앱스 워크로드 생성 버튼 클릭 화면

앱스 mysql 컨테이너 기본 정보 입력 화면
앱스 mysql 컨테이너 보안 설정 화면
앱스 mysql 컨테이너 환경 변수 설정 화면
앱스 mysql 컨테이너 서비스 포트 설정 화면
앱스 mysql 컨테이너 볼륨 마운트 설정 화면

2.4 mysql 설치 확인

  • 생성된 mysql workload에 상태를 확인하고 상태버튼을 클릭 후 모니터 아이콘을 클릭하여 콘솔로 이동한다.
  • 시크릿에 생성된 정보로 mysql에 접속하여 정상적으로 mysql이 가동되고 있는지 확인한다.

앱스 mysql 컨테이너 동작 상태 확인 화면
앱스 mysql 컨테이너 터미널 접속 화면

3. apache 설치

3.1 apache+php 빌드

  • 빌드 > 빌드 생성 버튼을 클릭.
  • 이름[wordpress-apache-php] , 등록된 레지스트리명 선택,이미지명[wordpress-apache-php], 버전[1.0]을 입력하고 빌드작업 추가 버튼을 클릭한다.
  • 빌드작업유형은 이미지 빌드작업을 선택하고 아래의 값을 입력하고 생성/실행 버튼을 클릭한다.
Copy to Clipboard

앱스 apache+php 컨테이너 이미지 빌드 생성 화면
앱스 apache+php 컨테이너 이미지 빌드 로그 확인 화면

3.2 wordpress용 storage 생성

  • 서비스 > wordpress 서비스맵 > 설정정보 > 스토리지볼륨으로 이동해서 볼륨 생성을 클릭
  • 스토리지볼륨타입 [SHARED] 선택, 스토리지 [default storage] 선택, 액세스모드 [ReadWriteMany] 선택,  이름에 [wordpress-storage] 입력, 용량에 [50]을 입력하고 생성을 클릭한다.

앱스 wordpress 용 스토리지 볼륨 생성 화면

3.3 wordpress용 workload 생성

  • 서비스 > mysql 서비스맵에서 + 버튼을 클릭하고 워크로드 유형을 [Single Instance] 를 선택한다.
  • 컨테이너에 추가를 클릭
  • 기본정보 >  컨테이너명 [wordpress] ,이미지 형식[빌드에서 선택], 빌드 [wordpress-apche-php], 태그[1.0]  cpu[500/4000], Memory [512,2048] 입력
  • 볼륨 마운트의 추가를 클릭해서 볼륨선택에서 [wordpress-storage]를 선택하고 추가를 클릭하고 컨테이너 경로에 [/var/www/html] 을 입력하고 적용을 클릭한다.
  •  오른쪽 상단에 생성버튼을 클릭하여 워크 로드 생성을 완료한다.

앱스 wordpress 설치를 위한 apache+php 워크로드 생성 화면
앱스 wordpress 설치를 위한 apache+php 워크로드 생성시 컨테이너 기본 정보 설정 화면
앱스 wordpress 설치를 위한 apache+php 워크로드 생성시 볼륨 마운트 설정 화면

3.4 wordpress 설치

  • 생성된 wordpress workload에 상태를 확인하고 상태버튼을 클릭 후 모니터 아이콘을 클릭하여 콘솔로 이동한다.
  • 아래 명령어로 wordpress를 설치한다.
Copy to Clipboard

앱스 wordpress용 워크로드의 컨테이너에 터미널로 접속하여 wordpress를 설치하는 화면

3.5 wordpress 용 서비스 생성

  • 서비스 > wordpress workload > 서비스로 이동한다.
  • 서비스에 추가버튼을 클릭하고 서비스 유형 [ Node Port], 서비스명 [wordpress-http], 대상워크로드[wordpress] 선택, 포트 추가 버튼을 클릭해서 이름 [http] 프로토콜 [TCP], 타켓포트[80], 서비스포트[80], 노트 포트[31000] 입력하고 적용한다.
  • 생성된 서비스에서 + 버튼을 클릭하면 접속할 수 있는 url이 표시되고 url을 클릭하면 wordpress로 접속한다.

앱스 wordpress를 외부에서 접속하기 위한 NodePort 방식의 서비스 추가 화면
앱스 wordpress를 외부에서 접속하기 위한 서비스 생성 확인 화면

3.6 wordpress 설정

  • 시크릿으로 생성한 db정보를 입력하면 wordpress 설치가 완료된다.

wordpress 설정 시작 화면
wordpress 설정시 데이터베이스 연결 관련 설정 입력 화면
wordpress 데이터베이스 연결 설정 후 기동 화면
wordpress 사이트 정보 입력 화면
wordpress 관리자 페이지 접속 화면

4. wordpress 최적화

  • 수신 데이터 압축, 캐싱 정책 적용(.htaccess)
Copy to Clipboard
  • Fast Velocity Minify 플러그인 설치(https://ko.wordpress.org/plugins/fast-velocity-minify/)
    • Disable CSS processing 체크
    • Preserve the order of CSS files 체크
    • Disable the “Print” related stylesheets 체크
    • Inline CSS in the footer 체크
    • Disable JavaScript processing 체크