[클라우드] AWS 클라우드 양성 과정 캠프 참여 후기

     

    AWS 클라우드 캠프, 일단 해봐!

    누군가가 '너는 어느 분야의 개발자가 되고 싶어?'라고 물었을 때, 막상 떠오르는 분야가 없었다.

    관심을 가진지 별로 안되기도 하고, 아직 모르는 다채로운 분야가 있기 때문이랄까?!

    그래서 올해 목표는 어떤 것이든 경험해 보자! 였다. 

     

    그러던 중, 눈에 AWS 클라우드 캠프 참가 공고가 보였다. 

    신청에는 클라우드 개발 경험, 지식 정도를 물어봤었다.

    과거 네이버 클라우드 교육을 들은 적이 있었어서 '중하'정도로 표시했었다. 

    그때는 더더욱 클라우드에 'ㅋ'자도 몰랐기 때문...

     

    다행히 캠프에 참여할 수 있는 기회를 받았고,

    개념이 너무 어려워서 머리가 깨질 것 같더라도 일단 부딪혀보자는 마인드로 캠프에 참가하게 되었다. 

     

     

    클라우드... 너 정체가 뭐야...?

    AWS Technical 기초 및 심화 교육, AWS Instructor 관련 영상 시청 및 실무자 특강 실시
    AWS 클라우드 전문가 멘토링 및 사후 관리 지원

    이 주된 교육 내용이었고, 실상은 AWS 클라우드 이론 및 실습 위주의 교육과정이 진행되었다. 

     

    보안 그룹 : Amazon EC2 인스턴스의 가상 방화벽(상태 저장 특징 설명)

    다양한 그림과 실생활 예시(클라우드를 커피를 파는 카페로 비유해서 설명해 주셨다)를 통해서 클라우드에 입문하기는 수월했다. 

    하지만, 디테일하게

    '솔루션스 아키텍트는 백엔드 Amazon RDS DB 인스턴스에 액세스 할 수 없도록 VPC에 대한 보안을 구성하고, 애플리케이션 티어에서 지정된 포트를 통해서만 DB 인스턴스에 액세스 하게 할 때 어떤 조치를 취해야 하나요?'

    라고 물어봤을 때, 정확한 답변을 하기엔 부족하다고 생각한다. 

     

    참고로 답은 '데이터베이스 포트를 통해 애플리케이션 티어의 보안그룹에서 보내는 요청을 허용하는 인바운드 규칙을 데이터베이스 보안 그룹에 추가하고, 다른 인바운드 규칙을 제거한다. 또한, 데이터베이스 포트에서 애플리케이션 티어와 백엔드 간의 AWS Direct Connect 연결을 구성한다.'이다. 

    강사님이 말씀해 주신 부분 위주로 추후 클라우드에 대한 개념을 블로그에 정리해 볼 예정이다. 

     

    클라우드를 어디서부터 공부해야 할지 막막했는데, 

    캠프를 통해 자료도 얻고, 방향성도 잡은 것 같아

    교육과정은 힘들었지만 캠프에 참여하기 너무 잘했다고 생각한다. 

     

     

    에러, 에러, 그리고 제멋대로 돌아가는 AWS 서비스

    첫날을 제외한 나머지 4일 동안은 실습시간이 있었다.

    실습은 정책상 자세하게 공개하지 못해, 내가 실습하면서 어려웠던 부분에 대해 서술하고자 한다. 

     

    💡 멘토가 필요하다고 격렬하게 느낀 부분

    Employee Directory 애플리케이션을 테스트해 여러 가용 영역 간에 애플리케이션의 로드 밸런싱이 실행되는지를 확인하는 실습을 진행하였다. 

    스트레스를 줘서 추가 인스턴스 프로비저닝이 트리거 되어 실제로 작동하는 것을 확인하였다.

     

    실습은 위의 사진처럼 실습 과정을 친절하게 알려준다.

    이때, 이것 말고도 다른 에러가 있었었다.

    시작 템플릿 생성하는 실습이었는데, 한 줄 요약하면은 내가 micro3을 선택하지 않아서 발생하였다.

    그 에러를 해결하고자 처음에는 vCPUs, Memory 설정이 안 되어 있어서인가 해서 조절도 해보고, 여러 가지 시도를 했다.

    이때 정말 되는 게 없어서 너무 힘들었다.

     

    그러고 나서 테스트 실습을 진행하는데, Refresh 버튼을 눌러도 아무것도 변화되는 것이 없었다.

    도무지 검색해도 안 보이고, 계속 붙잡고 있어도 모르겠어서 강사님께 여쭤보니

    이는 '시간이 지나면 shutdown 했던 인스턴스가 목록에서 사라짐'을 의미하는 것임을 알았다. 

     

    물론 내가 직접 검색해서 에러를 해결하는 과정도 의미 있지만, 

    시간을 너무 많이 소모하느라 주어진 일들을 다 못한다면 조금은 무의미한 시간이 발생한다고도 생각한다.

    이때 도움을 주는 분이 강사님이셔서 내가 고민하는 부분에 대해 속 시원하게 해결해 주셔서 감사했다.

    (물론 충분한 검색과 고민을 한 결과도 말씀드리고, 최종적으로 확인받는 느낌으로 여쭤봤다) 

     

    처음 접하는 기술이다 보니 잘못된 길로 빠져들기 쉽고,

    방대한 정보의 홍수 속에서 멘토, 길잡이의 중요성을 뼈저리게 느끼게 되었다. 

     

     

    🚨 에러 1: Request timed out

    Amazon VPC 인프라에 데이터베이스 계층 생성을 생성하는 실습을 진행했다.

    Amazon Aurora 데이터베이스(DB) 클러스터를 생성하여 MySQL 데이터베이스와 Application Load Balancer(ALB)를 관리하도록 하였다. 

    Amazon RDS 데이터베이스와 Application Load Balancer을 생성하는 부분까지는 에러가 없었다. 

     

    Application Load Balancer URL을 확인한 후 로드 밸런서를 통해 기본적인 HTTP 요청하는 테스트를 진행하는데,

    Health status가 Unhealthy가 나오면서 Request timed out이 발생하였다. 

     

    이 문제는 나의 실수로 발생하였다. 

    Engine type - Aurora (MySQL Compatible)를 선택하지 않았기 때문이다. 

    올바르게 다시 데이터베이스를 생성해서 문제를 해결하였다.

     

    🚨 에러 2: Health checks failed with these codes: [500]

    Registered target의 Health status를 확인하는데, 또! Unhealthy가 발생하면서,

    에러 메시지 Health checks failed with these codes: [500]가 발생하였다.

    이는 500 내부 서버 오류는 일반적인 HTTP 상태 코드로 서버에서 문제가 발생하였으나 문제의 구체적인 내용을 표시할 수 없음을 의미한다.

     

    사실문제를 이 문제는 해결하지 못하였다. 

    내가 서버 코드를 뜯어보기도 전, 데이터베이스에서 자동으로 삭제되기 시작하였다.

    나는 아무것도 설정한 게 없는데 말이다!

     

    강사님께 가서 이게 왜 그러냐, 어떻게 해결하냐 여쭤보았지만

    500 에러는 서버 코드를 살펴봐야 하는데 데이터베이스가 자동으로 삭제되어 문제 원인도 알아보지 못한다고 말씀하셨다.

    또한, 본인이 가르치면서 이렇게 데이터베이스가 자동으로 삭제되는 경우는 처음이라고 말씀하셨다.

     

    나는 데이터베이스가 생성하면서 요금이 발생하기 때문에,

    내가 과도하게 데이터베이스를 만들어서 과요금으로 자동으로 삭제하는 줄 알았다...ㅎㅎ

     

    이 부분은 문제의 원인이 아직도 궁금하다.

    '내가 조금 더 빨리 코드를 살펴봐야 한다는 생각을 했다면 문제 원인을 파악할 수 있었을 텐데'라는 아쉬움으로 남는다. 

     

    결론은 실습은 성공적으로 완성하긴 했다. 

     

     

    💭 그래서 느낀 점과 앞으로의 목표

    언제나 에러 발생은 어렵고, 까다롭지만 그만큼 해결했을 때 짜릿한 것은 없는 거 같다. 또한, 곰곰이 생각할 기회도 주고 말이다.

    다른 사람들은 에러가 발생하지 않았는데 나만 에러가 발생한 거 보면은 뒤쳐졌다고 생각하기보다는

    더 꼼꼼하게 학습할 기회가 있었다고 긍정적이게 생각하기로 하였다. 

     

    사실 4박 5일 동안 합숙하면서 교육을 듣는 것이 짧은 시간 동안 방대한 양을 학습하는 것이라 버거웠지만,

    나름 얻어가는 것은 많아 보람차다. (클라우드 학습법/목표부터 시작해서 내 여름방학 목표까지 세울 수 있었다.)

     

    크게 나의 목표는 두 가지이다. 바로, 캡스톤 아키텍쳐 구현과 SAA 자격증 취득이다. 

     

    목표 1: 캡스톤 아키텍쳐

    마지막 실습은 길잡이가 주어지지 않은 채로 위의 아키텍쳐를 구성하는 것이다.

    클라우드를 완벽하게 학습한 다음, 이번 여름방학이 지나기 전에 프로젝트를 완성하는 것이 나의 목표이다.

     

    목표 2: SAA 자격증 취득

    사실 foundational의 Cloud Practitioner 자격증을 취득하고자 했었다.

    많이 찾아보니 이 자격증은 너무 기초기도 하고, 굳이 추천하지는 않는다 한다. (강사님 또한 그러하셨다)

    그래서 SAA 자격증으로 한 단계 업해서 취득하고자 한다.

    내 목표는 늦어도 8월 말까지 자격증 취득하는 것이다. 

     

     


    굉장한 값진 경험을 하였다. 내가 어디 가서 또 이런 경험을 할 수 있을까 싶을 정도로 말이다.

    이상으로 AWS 클라우드 양성 과정 캠프 참여 후기를 마친다.

     

     

     

    댓글