SSAFY 활동 정리 후 포트폴리오 만들기


가슴으로 낳은 LoveLine 프로젝트

나라는 사람을 다시 한 번 정리해보는 계기

요즘은 포트폴리오 정리를 하느라, 굉장히 바쁜 날들을 보냈다.
Github 자기소개를 작성하고, 진행했던 프로젝트들의 README를 (살벌하게) 작성했고,
그 안에 들어간 코드를 수정하고, 퍼블릭화 해도 되는 것인지 검토하고…
만들었던 소개영상들, 공식문서들과 UCC를 유튜브에 업로드하고..
나라는 사람을 돌아보는 시간을 가지면서, 자기반성과 뿌듯함을 동시에 느꼈다.

진행했던 프로젝트들의 깃헙 README를 살벌하게 작성했다

자세히 보기

대용량 트래픽 대처 AWS 시스템 아키텍쳐 토이 프로젝트


이력서 클릭 한 방에, 10번이나 지원한다구?

작년 12월, 내가 면접을 봤던 연봉이 쌔기로 유명한 M모 회사의 DevOps 직군 과제는 다음과 같았다.

Public Cloud (AWS, GCP, Azure 등) 상에서의 웹서비스 시스템 아키텍처를 설계하여 10분 내로 발표하시오. 웹 서비스는 고객사별로 활용하는 사이트 도메인이 구분되고, 특정 순간에 순간적인 대용량 트래픽이 발생할 수 있다.

처음 이 과제를 딱 받은 순간부터 멘붕이었다. 매일같이 SSAFY 최종 프로젝트를 진행하는 와중에 (심지어 내가 팀장) 준비할 수 있는 기간은 고작 일주일!!
여차저차, PPT 자료 조사도 하고, Ssafy 시니어 개발자 친구님들에게 조언도 얻고, 컨설턴트님들과 화상통화로 PT의 부족한 점도 듣고, PPT도 세련되게(?) 만들고,
대본도 칼같이 10분에 딱 맞춰 제작하고, 영상을 찍어, PT전형은 통과했지만
결론부터 말하자면, 총 7차 면접 과정중 6차에서 떨어지고 말았다! ㅎㅎㅎ (인생은 쓰디쓴 법)

PT 과제는, 그저 이론상으로 대용량 트래픽에 대응할 수 있는 시스템 아키텍쳐를 설계하고 구성하는 것 뿐이었지만 PT면접을 통과하고, 기술면접을 준비하던 와중에
“내가 만든 시스템 아키텍쳐를 실제로 구현해 가야 겠다!!” 라는 생각이 들었다. 실제로 이론상으로 설계도를 그리는 것과, Backend - Frontend 로직 + Infra구성까지 다 하는 것은 하늘과 땅차이!!

고래서, 단 3일만에 부랴부랴 AWS 의 Auto Scaling, Route 53, Amazon RDS, Amazon S3, Cloudfront, ELB 기능을 포함한 토이 프로젝트를 개발했는데, 결론부터 말하자면 아니 이걸 어케 3일만에 다했지.. 싶을 정도의 나름 개고생한 흔적들이 보이는 토이 프로젝트가 나오게 되어서, Github 에 Open 하게 되었다.

Backend는 Django, Frontend 는 Vue(Vuetify)로 작업했고,
배포는 gunicorn, Nginx 를 사용했다.

AWS System Architecture 초안

기본적인 사이트의 컨셉은, 회원가입한 구직자가, 이력서를 간단히 작성하고
원하는 부서에 이력서를 낼 때, 대용량의 사진을 여러장을 보내도 서버가 다운 되지 않도록 하는 것이었다.
AutoScaling 기능을 추가했고, Cloudfront로 모니터링 하도록 했고, 요구사항이었던 고객사별 다른 도메인 주소를 구현하기 위해 Route 53을 붙였다.
CDN (Cloudfront)도 붙여서 Image 로딩의 레이턴시를 줄였다.

또한, Frontend 단에서 SPA가 조금 더 가볍게 로딩될 수 있도록 디렉토리를 Refactoring 해 기본적으로
각 세션단위 컴포넌트가 Lazy Loading 될 수 있게 만들었다. 컴포넌트를 재활용할 수 있게 만든 것은 덤이다.

Backend 단에서는 Django로 S3 서버로 이미지를 바로 업로드 할 수 있게 만들었는데,
이미지를 여러개를 업로드 할 수 있도록 Stack 을 만들고 그 안에서 For문을 돌며 챠라락 여러개의 이미지 업로드가 될 수 있게 만들었다.

사실은 제대로 된 테스팅을 해보려면 여러가지 부하툴을 사용했어야 했는데,
Uhm… 사실은 개발을 다 끝내고 나니까 기력이 떨어져서 좀 귀찮았… (커허흠)

시간이 너무 없어서, 다 구현하지 못한 부분(ElastiCache 등)도 있고, 아직 이때는
AWS의 이론에 대해 깊이 있는 학습을 마저 못한 것도 있어서 미흡하지만
어쨋든, 깔끔하고 이쁜 모바일 반응형 웹 서비스를 3일만에 완성시켰다는 점에서 뿌-듯 했따고 한다. ㅎㅎ






프로젝트의 세부사항과 코드는 다음 링크의 README에 올려놓았습니다. 참조!

https://github.com/Jesuisjavert/awsTest

AWS AI/ML Innovate Online Conference 참가후기


Machine Learning 뽕에 취한다...

AWS AI / ML Innovate Online Conference 참가 후기

때는 코로나 시국, Offline Conference들이 Online으로 많이 이루어진다.
하지만, 오히려 좋아. Online 이니까, 참가비도, 교통비도 0원!
올해 이루어졌던, AWS re:invent 도 참여했었고 (re:invent 는 System Architecture쪽 위주)
도키도키한 마음으로 아기다리 고기다리
AWS AI (Artificial Intelligence) & ML (Machine Learning) Innovate Online Conference 의 날이 밝았다 !

기조연설의 캡쳐본으로 어떤 내용이 진행 되었는지 Summary 해보았다.

자세히 보기

VPC Endpoint & NAT Device & MetaData


VPC 끝포인트 설정을 통해 안전한 통신 환경을 제공해보자

VPC 엔드포인트

VPC 엔드포인트가 왜 필요할까?

AWS에서 제공되는 대부분의 서비스에 접근하려면, 퍼블릭 네트워크 통신이 필요하다.
하지만 금융 서비스처럼 강력한 보안 요건을 충족하려면, 격리된 프라이빗 서브넷 내에
자원이 생성 되어야 하며, 인터넷 통신이 되지않는 프라이빗 서브넷이 외부 퍼블릭
네트워크 통신이 가능하도록 만들어 주는 것이 VPC 엔드포인트이다!

자세히 보기

AWS VPC 서브넷 구성과 네트워크 통신 과정


TCP/IP 전송 방식은 기차놀이처럼 줄줄이 연결되어있다. 우리는 기차역을 만들 것이다.

VPC 퍼블릭 / 프라이빗 서브넷 설정 실습

VPC 생성

VPC의 생성은 AWS의 VPC 메뉴에서 할 수 있다.
VPC 생성 버튼을 클릭하면, 다음과 같은 화면이 나온다.

VPC에 이름과 IP CIDR 블록을 입력해준다

자세히 보기

AWS VPC 프라이빗/퍼블릭 서브넷 & 인터넷 게이트웨이 & 라우팅 테이블


VPC를 설정 할 땐, 퍼블릭/프라이빗 영역설정이 중요하다

VPC (Virtual Private Cloud)란?

VPC는 Virtual Private Cloud의 약자로 AWS 클라우드 내 논리적으로 독립된 섹션을 제공하여,
사용자가 정의한 가상 네트워크상에서 다양한 AWs 리소스를 실행할 수 있게 지원한다.
한 마디로 독립된 가상의 클라우드 네트워크 라 볼 수 있다.

사용자는 VPC 내에 IP 대역, 인터페이스, 서브넷, 라우팅 테이블, 인터넷 게이트웨이, 보안 그룹,
네트워크 ACL 등을 생성하고 제어할 수 있다.

퍼블릭/프라이빗 서브넷이 하나씩 있는 VPC의 사례

자세히 보기

AWS EC2 인스턴스 생성 & 콘솔 연결 & Public IP 접근해보기

AWS Cloudformation 이란?

AWS Cloudformation Logo

AWS 의 Cloudformation 기술 공식 설명은,
AWS CloudFormation은 환경의 모든 인프라 리소스를 안전하고 반복 가능한 방식으로 설명하고 프로비저닝할 수 있도록 공통 언어를 제공합니다.
라고 하는데..

즉, 쉽게 말하자면, 자동화된 인프라 구축을 도와주는 서비스라고 하겠다.

자세히 보기

AWS EC2 인스턴스 생성 & 콘솔 연결 & Public IP 접근해보기

EC2 인스턴스를 생성해 보자!

AWS의 EC2란, 크기 조정이 가능한 컴퓨팅 용량을 클라우드에서 제공하는 웹 서비스이다. 쉽게 말하면, 클라우드 상에 내 PC를 한 대 얻는 것과 같은거라고 생각하면 된다.

EC2 콘솔창에서 Region을 서울로 바꾸는 걸 잊지 말자!

EC2를 생성하기 위해선 AWS에 회원가입을 하고, AWS Management Console에 로그인을 한다.
그 뒤, EC2 서비스를 클릭하고, 위 스크린샷의 주황색 버튼, 인스턴스 시작 버튼을 누르면 EC2를 만들 수 있다.

자세히 보기

AWS Global Infra 및 주요 개념 소개

AWS Global Infrastructure

AWS Global Infrastructure

AWS는 전 세계적으로 분포한 데이터센터를 통해, AWS를 서비스 하고 있다.
현재 AWS는 24개의 Region(리전)과 77개의 가용영역(Availability Zone),
220개 이상의 연결구간 POP(Point of Presence)를 운영하고 있다.

참조) AWS Global Infra Official info site
https://aws.amazon.com/ko/about-aws/global-infrastructure/

글로벌 네트워크들은 해저 광케이블을 통해 연결되어 있고, 물론 반갑게도 서울을 찍어보면 도쿄와 홍콩으로 연결된 해저 광케이블을 볼 수 있다.
물리적으로 케이블의 거리가 멀면 ping은 비례하겠거니.. 생각이 든다.

자세히 보기

AWS Network Online Study (ANOS 2기) 시작!

뭐.. 서버가 남는다구? 그럼 클라우드로 만들어버려!- 제프 베조스

AWS(Amazon Web Services)란..?

AWS가 세계를 휩쓸고 있다.
클라우드 서비스는 기존의 온프레미스(On-Premise) 방식을 넘어
업계의 표준으로 다가서고 있고, 많은 기업들이 서버를 클라우드로 이전하는 추세이다.

평소에 AWS를 활용해 서비스를 배포하고, 이것저것 기능을 더해 아키텍쳐를 설계해 본 경험은 있지만,
네트워크에 대한 이론적 배경을 좀 더 자세히 공부하고 싶어서,
AWS Network Online Study [ANOS 2기]를 시작하게 되었다.

자세히 보기