High Availability App On AWS Cloud [JOINC EDU] 

클라우드에 애플리케이션을 전개하는 이유는 시스템 / 네트워크 비용 때문만은 아닙니다. 클라우드에서 제공하는 시스템 / 네트워크 인프라, 보안, 모니터링, 로깅, 가용성, 확장성, 통합/배포, 관리형 데이터베이스 서비스를 사용하기 위함입니다. 핵심 비즈니스 로직에만 집중하고 나머지 비기능적인 부분을 클라우드에 위임하는게 가장 큰 목적입니다. 비즈니스 로직에 ...

AWS Well-Architected Framework 

AWS Well Architected Framework는 좋은 아키텍처를 만들기 위한 길잡이 역할을 한다. 방대한 내용을 담고 있지만 전체 문서를 가로지르는 핵심은 한 문장으로 정리 할 수 있다. 측정할 수 없다면 관리할 수 없고 관리할 수 없으면 개선할 수 없다. 이 문서는 Well Architected framework를 지탱하는 6개 Pillars(기...

Amazon Route 53 Cheat Sheets 

Amazon Route 53은 고 가용성(High available), 확장성(Scalable)을 가진 DNS(Domain Name System) 서비스다. Amazon Route 53의 핵심 기능은 아래와 같다. Domain Name 등록 : 도메인 이름을 구매하고 관리 할 수 있다. DNS resolution, AWS 리소스에 대한 Health Chec...

개발자를 위한 시스템 디자인 개념 

시스템 디자인는 클라우드 엔지니어, DevOps, 소프트웨어 개발자에게 가장 많이 묻는 질문 중 하나다. 면접과정에서 뿐만 아니라 대규모 소프트웨어 문제를 해결하기 위해서도 시스템 설계에 대한 지식이 필요하다....

API 버전 관리 

API 버전관리가 점점 힘들어지고 있다. API는 더 이상 쓸모가 없어 폐기 될때까지 계속적인 수정, 업데이트, 기능 추가가 발생한다. 이 기능은 클라이언트 애플리케이션의 작동과 품질에 영향을 주기 때문에, 각 API의 변경 내용을 추적하고 관리 할 수 있어야 한다. 일반적으로 API의 버전을 이용해서 추적 관리한다. 문제는 클라우드환경에서 MSA 도입이 ...

Database Sharding 

Database Shard(이하 샤드)는 데이터베이스 혹은 검색엔진에서 사용하는 데이터의 수평 파티션이다. 각 샤드는 데이터 부하를 분산시키기 위해서 별도의 데이터베이스 서버 인스턴스에 보관된다. 간단히 말해서, 데이터를 분산해서 저장하고 읽게하여서 병렬적으로 성능을 높이기 위한 파티션 방식이라고 생각할 수 있다....

똑똑한 개발자와 현명한 개발자 

개발자는 코드를 만드는데 열정적이며, 코드를 만드는 것에서 희열을 느끼고 코드를 통해서 자기자신을 증명한다. 대부분의 개발자는 매우 영리하게 영리하게 코드를 작성한다. 영리하게 코드를 작성하는 것은 장점이지만 단점이 될 수도 있다. 이것을 불편하게 생각하지 말자. 똑똑한 것이 장점이 될 수 있지만 단점이 될 수 있는 것과 마찬가지다. 우리는 단점을 극복 할...

AWS Well-Architecture Framework 

AWS는 100여개가 넘는 수많은 서비스들을 제공한다. 사용자는 이를 서비스를 자유롭게 엮어서 최적화된 애플리케이션을 개발 할 수 있다. 그 조합의 수는 무한하다고 할 수 있다. 하지만 효과적인 조합은 있는 법이라서 AWS는 AWS Well-Architected 정보를 제공하고 있다. 사용자는 AWS에서 제한한 Well-Architected 정보를 이용해서...

NATS 

NATS는 분산 시스템을 지원하는 연결기술(connective technology)로 메시지의 주소 설정, 검색, 통신을 담당한다. 마이크로서비스아키텍처(MSA)에서의 메시지 교환, 스트림 처리를 위해서 사용한다. 클라우드 메시징 서비스 (마이크로서비스, 서비스메시) 이벤트 / 데이터 스트림(데이터 모니터링, 분석, ML/AI)...

AWS Cheat sheet - S3 

Amazon Simple Storage Service(Amazon S3)는 무한대의 확장성, 99.999999%의 데이터 가용성, 보안, 성능을 제공하는 객체 스토리지 서비스(Object Storage Service)다. S3는 Full managed Service로 사용자는 서버, 볼륨, 파일 시스템, 파일관리 소프트웨어 등의 관리의 대부분을 S3에 맡길...