AWS

AWS

    채팅서비스 sql vs nosql mongodb ? dynamodb ?

    채팅서비스를 개발하면서 데이터베이스에 채팅내용을 저장할 일이 생겼다. 주워들은 건 많아서 채팅 서비스를 많은 기업에서 nosql을 사용해서 저장하는 걸 알고 있었지만 왜? 사용하는지 알지 못하기에 한번 정리하고 가면 좋을 것 같아서 정리해봅니다. 또한 nosql 의 대표적인 mongodb와 aws 에서 지원하는 nosql dynamodb 의 차이점을 정리하고 갑니다. 1. 채팅서비스 왜 noSql을 사용하는거야 ? RDBMS에 채팅 내용을 담으면 I/O비용이 크다. I/O 비용이 크다는 말은 데이터를 넣고 빼는데 리소스(cpu, disk, memory)를 사용하는 량이 크다.그에 비해 NoSQL은 상대적으로 적습니다.\ 확정성에 용의하다. 채팅서비는 대규모 동시 사용자와 데이터를 다루어야 한다. nosq..

    aws codedeploy 블루/그린배포 중 오류

    blue / green 배포 ci/cd 도중 발생한 에러 모든 설정 다 했는데 자꾸 실패.. 왜 자꾸 실패하는지 모르겠습니다. 심지어 UnknownError라고 합니다ㅠㅠ EC2 인스턴스 재부팅, codedeploy-agent 재설치도 해봤지만 같은 문제가 계속 발생했습니다.. EC2에 설치한 codedeploy-agent codedeploy-agent 서비스의 상태를 확인해봤습니다. 설치 후 실행 확인 시에는 정상이라 문제가 없다 생각하고 그냥 넘어갔었습니다.. 혹시 몰라 로그 파일(/var/log/aws/codedeploy-agent/codedeploy-agent.log)을 봤습니다. 그랬더니.. 에러가 계속 발생하고 있었습니다!!!! 그래도 일단 원인은 찾았어요. :) 현재 IAM 정책 EC2의 I..

    NAT Gateway를 왜 쓰는걸까 ?

    public 서브넷은 인터넷과 연결하여 외부에서 접근이 가능한 영역을 말한다. 따라서 public 서브넷과 인터넷 게이트웨이를 연결시킴으로서 외부 인터넷과 통신이 되게 하였다. private 서브넷은 외부 인터넷을 차단하고 내부에서만 사용하기 위해 만든 Subnet이다. 예를 들어 Database Service인 RDS를 넣어두고, RDS는 중요한 정보이니 외부에서의 접속을 차단하는 형태로 이용한다. "그런데 만일 RDS가 외부 인터넷을 통해 업데이트를 해야 할 일이 생긴다면 어떻게 해야할까?" 공인 IP를 생성해서 private 서브넷도 Internet Gateway를 통해 연결해줘야할까? 그러면 그건 public 서브넷이지 private가 아니게 된다. 그리고 외부에서도 침입이 가능해져 보안이 문제가..

    AutoScaling 시작템플릿설정

    실제 시작 템플릿 생성 화면 오토 스케일링 조정 옵션 Auto Scaling 그룹을 조정하는 다양한 조건 방법을 설정하는 옵션이다. 예를들어, CPU 점유율이 일정 %를 넘었을 때 추가로 늘리거나 아니면 2개 이상이 필요한 스택에서 EC2 하나가 죽었을 때 실행하거나 등 현재 인스턴스 수준 유지 관리, 수동 조정, 일정을 기반으로 조정, 온디맨드 기반 조정 등등 이 있다. CloudWatch이나 ELB(부하 분산)와 연계가 가능하다. 아래 사진과같이 어느 when일떄 take the action할지 옵션 조정 메뉴가 있다. 오토스케일링 동작 원리 복잡하지만 최대한 간단하게 요약하자면 다음과 같이 된다. EC2 인스턴스 클러스터 가 있고 8개의 인스턴스가 필요하다고 가정해보자 하드웨어가 터졌다던지 소프트웨..