AWS DVA-C02 준비 👊
— 자격증 — 9 min read
들어가며
이전에 GCP 시험을 본 적이 있습니다. 처음에는 덤프 보지 않겠어!! 공부해서 시험을 볼거야!! 라며 디데이도 계산하고 공부 일정도 짜고 그랬는데요. (예상되시겠지만) 그렇게 시험 직전까지 한번도 공부하지 않았고... 결국 전날에 덤프를 열심히 외우고 갔습니다.
그리고 시간이 흘러 AWS 시험을 보게 되었는데... 또 다시 아무것도 공부하지 않은 채로 시험 직전이 되었습니다. 그래도 전처럼 디데이를 세거나 공부 일정은 짜거나 하지 않은 저를 기특(?)해하면서요.
GCP 준비할 때의 경험(?)을 바탕으로 저는 자격증 준비를 통해 남는 지식은 거의 없다는 생각을 하고 있었는데요. 그렇게 하루 버리는 셈 치고 시험 전날 덤프를 읽는데 전에 GCP 시험을 볼 때와는 조금 느낌이 다르더라고요.
경험해본 AWS 서비스의 갯수도 아주 조금 늘어났고, 옆에서 주워 들은 것들도 조금씩 쌓인 상태라 그런걸까요? 오~~ 이럴때 이거 쓰면 좋겠구나, 이거 다른 서비스랑은 어떻게 붙여서 응용하지?
라는 생각이 들어 찾아보게 만드는 문항이 종종 보였어요.
이건 기억해둬야지하고 이면지에 적다보니... 이렇게 써놔도 나중에 보지 않겠다 싶어 아까운 마음이 들어 포스트를 작성하면서 공부하기로했습니다 😀
기록
아는 것과 모르는 것 식별하기
시험 가이드를 열어보면 이 시험에 포함된 AWS 서비스 목록이 명시되어 있는데요. 시험 문제 자체가 상황을 주고 그에 적합한 서비스의 조합을 선택하게 하는 패턴이라, 각 서비스가 어떤 용도로 쓰이는지 정도는 한 번 식별하고 덤프 외우기를 시작해도 좋을 것 같아 잠시 시간을 내어 종이에 정리를 해봤어요.
정확하게 아는 것
(사용해본 것
), 대충 아는 것
(들어는 본 것
), 모르는 것
을 표시하고 추가로 대충 알지만 비슷한 이름/용도의 다른 서비스와 구분할 정도로는 알지 못하는 것
(ex - 맨날 헷갈리는 ECR
ECS
EKS
🤦♀️) 정도를 묶어두니 한결 AWS에 대한 막연한 두려움의 장벽이 낮아지는 것을 느낄 수 있었습니다.
어떤 분야에 대한 공부를 시작할 때 내가 모르는게 있기 때문
에 두렵고 막연한게 아니라 내가 아는 것과 모르는 것이 무엇인지 모르기 때문
에 도전하기 어렵다는 것을 오랜만에 다시 경험할 수 있었습니다.
주어진 문제상황 - 제안된 해결방법 - 내 생각
선택지를 보기 전에 먼저 나라면 어떻게 할까 생각을 해봤는데, 제가 택한 방향이 민망해지는 답안이 몇 개 있어서 나중을 위해 기록해보았습니다.
- 문제) S3 특정 경로의 파일에 대한 접근 권한을 사용자 별로 제한해야됨
- 해결) Cognito를 쓰고 있다면, S3 폴더별 IAM 정책을 Cognito Identity Prefix 로 제한할 수 있음
- 내생각) 평소에 AWS 권한에 대해 제가 관여한건 새로운 기능 개발하다가 권한 에러 떨어질때가 전부인데요. 그마저도 확신 없이 CDS 분들께 "권한 빠진 것 같아요.." 라고 슬랙 보내는게 전부였어요. 이 문항 보고 문제 상황에 대해 다각도로 접근해야겠다는 생각을 했습니다.
- 문제) 일반정보와 개인정보가 섞여서 적혀있는 원본 파일이 S3에 올라가 있는데, 개인정보를 제거하여 제3자에게 제공해야함. 개발자가 파일 읽어서 개인정보 제거하는 람다까지는 개발해뒀음.
- 해결) S3 Object lambda access point 를 생성하여 제3자에게 람다를 거친 S3 파일에 접근하는 방법을 제공할 수 있음
- 내생각) 이거 읽자마자 아 쉽네 lambda trigger 해서 파일 두벌씩 보관하면 되지~ 생각했는데요 ㅋㅋㅋㅋㅋ ㅠㅠ 답 보고 너무 부끄럽더라고요.
- 문제) 캐싱을 통해 DB 접근을 줄여 성능향상을 꾀하고 있는데, 이 데이터는 정렬되어있어야함
- 해결) ElastiCache for Redis instance를 사용
- 내생각) 동일한 문장인데 Redis 인지 Memcached 인지만 다른 두 답안이 있었는데요. Redis 는 몇 가지 유용한 자료구조를 제공하기 때문에 "정렬" 이 보장된 데이터를 캐싱하고자 한다면 Redis 를 선택해야했습니다. 항상 기계적으로 Redis를 선택했었는데, 사실 String Value만 저장한다면 Memcached 도 후보에 넣어 고민해봤어야 하는거 아닌가 반성했습니다.
- 문제) 정적 웹사이트를 HTTPS로 호스팅 하고 싶으며 여러 종류의 repository를 사용하고 있음. 가장 손이 덜 가게 호스팅하려면?
- 해결) AWS Amplify를 사용
- 내생각) 정적 웹사이트를 보고 바로 S3지 라고 생각했는데, 간과한 것이 있었습니다. S3 정적 호스팅 만으로는 HTTP지원이 되지 않기 때문에 CloudFront를 붙여야한다는 사실을요... 이 곳에 친절히 적혀있습니다. ㅎㅎ
느낀점
AWS의 서비스 모듈을 연결할 때 트리거에 기반한 AWS 서비스 간의 연동을 우선으로 고려해보아야지 다짐했습니다.
세부 기능 개발을 하다보면 단일 모듈에 대해서만 집중하게 되는 경향이 있는 것 같습니다. 그래서 각 모듈을 서로 연결해야하는 경우 큐나 배치잡 등 연결고리를 추가하여 문제를 해결하려고하게 되는데요. 알고있던 것보다 다양한 방식으로 트리거를 할 수 있더라고요.
마치며
저는 사실상 개발 업무와 클라우드 인프라 담당 업무가 분리된 환경에서 일을 하고 있는데요. 인프라 담당자와 협업할 때 생각보다 대화의 핀트가 맞지 않을 때가 많아 (오히려 기획자와 이야기가 통하는 편) 초반에 당황했던 기억이 있습니다.
저는 클라우드를 잘 모르고 인프라 담당자는 개발을 잘 몰라서 그랬다는 것을 얼마 지나지 않아 깨닫고 이제 어디가서 풀스택이라는 말은 하지 말아야지 다짐했었는데요.😅 시험 준비하면서 또 그때 생각이 또 났습니다.
그럼,, 다음 시험을 볼 때도 아마 저는 덤프를 읽고 있겠지만 이번처럼 의외로 더 얻어가는게 있을지도 모른다는 기대를 해보며 이만 시험을 보러 가보겠습니다. 준비 시간에 비하면 양심 없지만 부디 붙기를 🙏
(23.05.27 추가) 다행히 패스 하였습니다 🤤