DevOps
[ DevOps ] - AWS 기반 소규모 & 중규모 아키텍트 설계 - ALB에 인스턴스 연결하여 웹서비스 실행하기
타겟그룹 생성 일단 로드벨런서를 EC2인스턴스에 적용하기 전에 먼저 타겟그룹을 설정해 줘야 합니다. 이는 마이크로 서비스에서 중요하게 됩니다. order그룹 1개, delivery그룹 1개, boss그룹 1개를 각각 만든다음에 그 안에 서버를 여러개 만들어서 동작하게 할 수 있습니다. 하지만 아직 모놀리식이므로 1개만 만들어도 충분합니다. 먼저 Instance를 하나 만듭니다. 그리고 tg1이라는 타겟그룹을 만듭니다. 또한, PORT를 설정하는 것은 로드벨런서에게 트래픽이 왔다고 해 봅시다. 그럼 이 트래픽을 서버의 어떤 포트로 보내줄 것이냐를 결정해 주느냐 입니다. 여기서는 당연히 8000번 포트에 서버를 실행시키고 있고 인바운드 규칙도 편집해 주었으므로 HTTP 8000로 적어주는 것이 맞습니다. 그..
[ DevOps ] - AWS 기반 소규모 & 중규모 아키텍트 설계 - 로드밸런서 (L4, L7)의 동작원리와 AWS ELB
로드 밸런싱 만약 앱의 client가 늘어나게 되고, 서버가 하나라고 한다면, 서버는 이를 감당하지 못할 수도 있습니다. 이를 해결하기 위해서는 앞에서도 말했지만, 서버를 여러개로 늘릴 수 있습니다. 이러한 방식의 문제는 서버가 필요로 하는 용량이 너무 커졌을 떄, 이를 기술적으로 해결하기가 어렵다는 것입니다. 그리고 비용문제가 있을 수도 있습니다. traffic이 늘어나면 이에 대한 비용이 기하 급수적으로 늘어나기 때문에 비용 측면에서는 좋지 않습니다. 그래서 저희는 이러한 해결방안을 생각할 수 있습니다. 같은 성능의 서버를 여러개 만들고, 이에 대해 트래픽을 나누어 줄 수 잇는 어떠한 것을 활용하면 되겠다 라고요. 이를 위한 것이 AWS의 Elastic Load Balancer(ELB)입니다. 이 L..
[ DevOps ] - AWS 기반 소규모 & 중규모 아키텍트 설계 - Django 결과를 EC2에 배포하기
ssh-keygen 우선 ssh-keygen에 대해서 알아보자 SSH를 이용하여 서버에 접속하는 방법은 다양하게 존재합니다. 그 중 가장 단순한 방법은 비밀번호로 접속하는 것입니다. 하지만 비밀번호의 문제점은 보안이 취약하다는 점입니다. 물론 비밀번호도 보안되어서 전달되지만, brute force에 의해서 해킹을 당하는 경우가 종종있다고 합니다. 그에 반해 Key를 이용한 ssh접속은 보안적으로 믿을만하다고 증명된 바 있습니다. key는 private key와 public key의 쌍으로 이뤄져 있고 이를 비대칭 키라고 부릅니다. private key는 client에서 안전하게 보관되어야 하는 key이고 public key는 server(EC2등)에 공유되는 key를 말하게 됩니다. 밑에서 다시 한번 설..
[ DevOps ] - AWS 기반 소규모 & 중규모 아키텍트 설계 - 데이터베이스 구축 (AWS RDS)
AWS RDS 연결 이제 본격적으로 aws에서 rds를 만들고 이를 우리가 만든 앱과 연결해 보도록 하겠습니다. 우선 기본적으로 초기 데이터베이스 이름을 project1으로 지정해 주었습니다. 그리고 프리티어 정책에 따라서 mysql 데이터베이스를 하나 구축했습니다. 우선 생성된 데이터베이스의 default sg의 인바운드 규칙을 3306번 포트에 대해 열어주고 기존에 만들어진 model을 만든 aws rds에 migrate해 보겠습니디. $python manage.py migrate 그리고 runserver를 통해 저장되어 있는 값들을 보면 아무것도 저장되어 있지 않습니다. 기존의 db의 틀만 migrate한 것이기 때문에, 정상입니다. 그리고 aws rds의 모니터를 통해 잘 작동하는지 확인하면 정상..