[인프라][Error] AWS DB 접속 에러 django.db.utils.OperationalError: (2003 ... (60)

나의 재물운? 연애운은?

AI가 봐주는 내 사주팔자 - 운세박사

https://aifortunedoctor.com/

[인프라][Error] AWS DB 접속 에러 django.db.utils.OperationalError: (2003 ... …

영리치 0 3,951 2021.12.06 20:34

django.db.utils.OperationalError: (2003, "Can't connect to MySQL server on 'database-1.cyfnfibkdjsr.ap-northeast-2.rds.amazonaws.com:3306' (60)")



DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'project1',
'USER': 'admin',
'PASSWORD': 'gfdg',
'HOST': 'hfdhdf',
'PORT': '3306',
'OPTIONS': {
'init_command': "SET sql_mode='STRICT_TRANS_TABLES'"
},
}
}
#HOST에는 AWS의 RDS 엔드포인트를 적어주면 됨


RDS 생성 후에 로컬에서 돌아가는 Django 프로젝트에 RDS를 붙임. 


python3 manage.py migrate

명령어로 마이그레이트

그때 아래와 같은 오류 발생


django.db.utils.OperationalError: (2003, "Can't connect to MySQL server on 'ghdfhdf' (60)")


위와 같은 경우는 대부분 인바운드 규칙의 문제임

1분도 안되서 연결이 안되었다고 뜨면 보안그룹부터 확인해야함


91d67d4e6796d631792223d5af61d887_1638789996_6049.png
 

AWS > EC2 > 보안그룹

생성

유형에 MYSQL 선택 후 모든 IP에 대해서 허용하기


로컬에서만 접근하려면 내 IP 선택 해도 됨.

내 IP 선택하면 우리 회사의 공유기를 공유하는 네트워크에서 접근이 가능함


보안그룹은 항상 인바운드만 신경쓰면 됨.

인바운드가 되면 아웃바운드는 자동으로 됨.


[EC2에서 RDS 접근]

MySQL 보안그룹 인바운드에 웹(EC2) 보안그룹을 등록하면

EC2에서 MYSQL에 접근이 가능함.


보안그룹이 같으면 서로 통신이 가능함.



20명 규모 이후부터 MSA를 진행함 대부분

MSA는 초기 비용이 많이 듬

EC2 4개 데이터베이스 8개 정도 돌리는 데 120만원 월간

아무것도 없는 상태에서 MSA를 하면 월 120만원 고정비만 듬

대신 규모가 커졌을 때 MSA가 오히려 더 비용이 저렴함 (최적화 가능)

그 이유는 MSA는 작은 단위로 스케일아웃을 할 수 있기 때문임.


스케일업 = 성능 올리기

스케일아웃 = 복제, 복사하면 트래픽 커버


RDS는 스케일 아웃을 하는 데 한계가 있음

따라서 MSA로 만들어서 작은 단위로 스케일하면 더 효율적임


MSA는 어느정도 성공이 보장된 서비스에서 하는 것임

MSA를 도입할 지 말지 결정할 수 있는 것은 행복한 고민임

그냥 ㅈ밥들은 전부 모놀리식으로 일단 만들면 됨.




당근 DDD

도메인 기반으로 잘 나눠놓는 설계

작은 팀 단위로 서비스 만들어서 배포하고 통합 가능함.



Comments

나의 재물운? 연애운은?

AI가 봐주는 내 사주팔자 - 운세박사

https://aifortunedoctor.com/

Category
실시간 인기글
Magazine
훈남/훈녀
 
 
 
상점
Facebook Twitter GooglePlus KakaoStory NaverBand