8월 17일 시험을봤다. 오늘까지 한달정도의 텀이 있었고 DOP를 보면서 DBS에 대한 공부도 어느정도 같이 진행이 되었다. 이때 연습시험에서 나온점수는 45%였다.
총점: 45% 주제별 채점: 1.Workload-Specific Database Design:75% 2.Deployment and Migration:0% 3.Management and Operations:50% 4.Monitoring and Troubleshooting:50% 5.Database Security:50%
공부를 하나도 안하고 본 연습시험이라 각이 보였다. 뭐 깊은 고민도 없는 상태였고, 쭉쭉 시험을 풀어나갈수있었기 때문이다.
DOP 시험후 연습시험을 또 봤다. 이시점엔 공부가 어느정도 진행된 상태였다.
공부라함은..DB 서비스들의 docs를 대충보고 FAQ를 탐독하여 어느정도 지식이 있는상태였다. 대부분의 디비를 쓴상태지만.. 넵튠은 넵튠은...! 생소했다. 그래서 좀 열심히 봤는데 이게또 한번 생성하는 거만 못했다. 16일 밤에 부랴부랴 생성해봤다.
총점: 65% 주제별 채점: 1.Workload-Specific Database Design:50% 2.Deployment and Migration:75% 3.Management and Operations:75% 4.Monitoring and Troubleshooting:50% 5.Database Security:75%
20%를 올렸다. 불안감이 엄습했다..허어....70%였으면 불안하지 않았으리라..근데 불안했다. 그래서 연습 시험보면서 봤던 문제들을 기억해서 넵튠 만들고 오로라로 전환하고 테스트를 했다. 오로라 생성이 좀 오래걸려서..새벽2시 까지 봤다. 이과정을 해보길 잘했지 안해봤으면 넵튠 문제 다 틀릴뻔했다.
나는 서비스는 다써봤다. 안 써봤을리 없지.. 그많은 기간 테스트를 해봤으니, 그런데 단순테스트와 서비스에 대한 개념만으로는 나는 DOP를 통과할수 없었다. SAP 때의 지옥이 떠올랐다. 물론 SAP는 서비스 콤비네이션에 대한 질문이 주를 이루므로 각각의 상황에 알맞는 솔루션을 선택하는거라 나의 주종목인 넓고알기에 딱 어울리는 시험이었다. 그러나 DOP는 좀 달랐다.
나는 개발자로서의 경험이 1도 없는 사람이다. 엔지니어로서 오랜기간 일을했고, git 이나, svn, codecommit 등의 서비스를 써본적은 있어도 말 그대로 써본거지 실제로 내가 이걸 활용해 본적이 없는 것이다. 그렇기에 기능분기라던가 마스터 브랜치 같은 개념이나 아티펙트같은 개념이 잘 와 닿지 않았다.
이 모든건 내가 개발자가 아니기에 OPS의 의 영역엔 강할수 있어도 DEV의 영역에는 이해도가 낮았다 라고 판단했다. 그래서 시험에 떨어진 이후, 나는 CI/CD의 Best Practice를 주로 학습하고 여러명의 개발자가 코드분기 패턴이나 승인 패턴, 테스트패턴에 대한 학습을 했다.
그리고 오늘 시험보기 전에 어느정도 확신이 섰다. 내가 뭘몰랐는지에 대한 이유를 알았기 때문이었다. 역시 시험장은 솔데스크가 좋다. 영우글로벌도 좋은데..
Filenames should be encoded in UTF-8 on disk. This is the normal case for Windows and OS X.
There is a bit more uncertainty in the Linux world, but new distributions will have UTF-8 encoded files names. If you are using an old Linux filesystem with non UTF-8 file names (eg latin1) then you can use the convmv tool to convert the filesystem to UTF-8. This tool is available in most distributions' package managers.
If an invalid (non-UTF8) filename is read, the invalid characters will be replaced with a quoted representation of the invalid bytes. The name gro\xdf will be transferred as gro‛DF. rclone will emit a debug message in this case (use -v to see), eg
인코딩 문제인데 이건...하...나중에 rsync 로 남은파일을 채워볼까 생각했지만 불확실성이 너무 컷다. 파일의 누락이 너무많았다
그래도 테스트는 그냥 진행했고 싱크속도 무지빠르고 쓸만했다.
그래서 이후에 소유권과 퍼미션을 넣어주는 작업을 궁리했다.
getfacl -R /src > file.list sed 's/src/dst/g' file.list cd /dst setfacl --restore=file.list
The protocol The source IP address and source port The destination IP address and destination port The TCP sequence number
6개의 조건이 일치하면 같은 target으로 연결해주나, 하나의 조건이라도 달라지면 다른 target으로 연결해주는 것이다. 이 tuple 들이이 일치하지 않더라도 같은 target으로 연결하게 하는 방법이 있다. 그것이 바로 sticky session 인것이다.
stictky session 에서 라우팅 조건은 souce ip 뿐이다. 1 tuple인것이다. 하지만 그렇다고 해서 영원히 같은 인스턴스로 연결해주는것은 아니다. 여기엔 시간 제한이 붙어있다.
-추가 - 수정합니다. docs에는 souce ip 1tuple로 동작한다 적혀있지만 NLB-multi-AZ(HA)구성을 할경우엔 A RR-EIP가 두개가 붙으므로 예상과는 다르게 동작할것입니다. 또한 1tuple로 동작하는 부분또한 client ip + nlb node ip 로 구성되므로 2tuple 로 동작합니다.
예상과 같은 정상적인 결과를 얻기위해선 Weighted, failover 방식으로 route53을 설정해서 단일존으로 라우팅 해야 동일한 결과를 얻을 수 있습니다. -도움주신 무무님 감사합니다.
docs 대로라면 1tuple이라 생각했는데 요소는 1tuple이 아니라
Connection idle timeout 이다
NLB의 Connection idle timeout 은 TCP 350 초 UDP 120초다. - UDP는 태우님이 물어보셔서 추가로 알아봤다.
Elastic Load Balancing sets the idle timeout value for TCP flows to 350 seconds. You cannot modify this value. Clients or targets can use TCP keepalive packets to reset the idle timeout.
Connection idle timeoutElastic Load Balancing sets the idle timeout value for UDP flows to 120 seconds.
그래서 동작은 이렇다.
sticky session 을 켜고 연결이 지속되는 동안은 무조건 같은 target으로 연결되고 마지막 연결부터 350초가 지나고 연결하면 대상/클라이언트 모두 TCP RST 응답을 받아서 sticky session 의 연결이 해제되고 다른 target과 연결되게 되고 다시 sticky로 동작하는거다.