AWS에서 오라클 12버전을 더이상 지원하지 않음에 따라 12버전을 사용하는 경우에는 19버전으로 업그레이드가 필요함. 4월 1일(KST)부로 순차적으로 버전 업그레이드가 강제로 진행되며, 일부 문법이 틀린 함수의 경우 동작하지 않을 수 있으니, 사전에 RDS 스냅샷을 이용하여 업그레이드 테스트가 진행되어야 안전함.
2. 오라클 12버전 설정
3. 작업 진행
AWS 콘솔의 RDS '수정'으로 들어가, 원하는 버전 번호를 확인할 것.
버전을 확인(여기서는 19버전)하였으면 작업 전, 19버전에 맞는 Parameter Group과 Option Group 생성이 필요하다.(Parameter Group의 경우, 12버전에서 사용하던 Parameter Group과 비교하여 기존에 기본값에서 변경하였던 부분은 변경해준다.
Option Group의 경우, 사전에 적용했던 옵션[타임존 등]을 확인하여 변경할 것)
RDS 수정 시, 버전 선택 후 '▼ 추가 구성' 을 확인하여, 사전에 생성하였던 파라미터 그룹과 옵션 그룹으로 변경해준다.
변경되는 값을 확인 후 '즉시 적용'으로 진행할 것!
300GB 크기 기준으로 10시 34분 시작 -> 11시 26분정도에 완료되었으니, 참고하세요.
ALB의 경우, WhiteList 방식이 아니라, 전체 허용. 특정 IP에만, 특정 경로를 접근하도록 하고싶었음.
1. ALB에 규칙
ALB를 생성하면 위 화면과 같이 리스너를 생성하고, 여러개의 리스너를 사용할 경우에는 각 리스너별로 규칙을 생성할 수 있다. 각 리스너 규칙별로 ALB에 접근하는 소스 IP별 분기, 호스트별 분기, 특정 웹 Path별 분기가 가능함. 1개의 규칙에 소스 IP+호스트 분기와 같이 조합을 통해 다양한 방법으로 분기가 가능하니, 익혀두면 도움이 될 것.
2. 규칙 생성하기
위와 같이 규칙을 준 이유.
1) /admin/page.html 이라는 웹서버 경로에 특정 IP가 접근 가능.
2) /admin/page.html 경로로 접속할 경우, 404 응답 반환(에러 코드는 관리자 임의 지정 가능. 444와 같은 커스터마이징된 에러코드도 가능하며, 한글 반환도 가능) - 위에서 허용된 특정 Source가 아닌 경우임
마지막) 두 가지 조건에 해당하지 않는 경우, test라는 타겟 그룹으로 전달됨.
3. 규칙 생성 후 테스트
환경 구성 1) 클라이언트 PC의 IP는 /admin/page.html로 접근이 허용된 IP
-. taint 명령 후 'kubectl get nodes'를 입력해보면 아래와 같습니다.
*cordon 명령어는 기존 파드에는 영향을 안주면서 스케줄링을 비활성화 하는 역할을 합니다.
kubectl taint nodes node1 key1=value1:NoSchedule
-. taint 명령어로 스케줄링을 정지합니다.
-. cordon은 파드가 스케줄링되지 않도록 하며, taint가 적용된 노드에는 신규 스케쥴은 진행되지 않습니다. 따라서 위 화면을 기준으로 새로 생성된 노드로만 스케쥴이 진행됩니다.
*************
작업간 주의사항 (1)
kubectl get pods -o wide # 해당하는 네임스페이스 내 모든 파드의 상세 목록 조회
kubectl get pods --all-namespaces # 모든 네임스페이스 내 모든 파드의 목록 조회
을 입력하며 정상적으로 pods가 동작하는지 확인할 필요가 있으며,
이상이 있는 pods는
kubectl describe pods <my-pod> 명령어를 통해 어떤 문제가 발생했는지 살펴볼 필요가 있습니다.
작업간 주의사항 (2)
위에서 업그레이드하는 시스템(CoreDNS, CNI, Kube-proxy)과 ingress 설정(위에는 표기하지 않았으며, 추후 공부하며 다시 작성 예정)은 변경 전 kubectl get <블라블라~~~ 조회하고 싶은것> -o yaml > 파일명.yaml 형식으로 백업해두는 것을 추천합니다.