mysql 옵션을 사전에 설정해둔 것을 파라미터 그룹이라고 하는데, 데이터베이스에서 한글을 지원하도록 설정하기 위해 파라미터 그룹을 생성
mysql로 설치
프리티어로 설정
해당 인스턴스에 접근할 수 있는 네트워크에 관한 설정
인바운드 : 어떤 IP 대역에서 인스턴스에 접근하도록 허용할 것인지 결정하는 부분
pip install pymysql
config/settings.py
import pymysql
pymysql.install_as_mySQLdb()
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'onlineshop', # DB 이름
'USER': 'onlineshop', # DB 이름? 원래는 관리자 계정이라고 알고 있는데, 나는 인스턴스 이름 쳐야 가능했다.
'PASSWORD': '***********', # DB 관리자 비밀번호
'HOST': "onlineshop.cy2ltarpjqix.ap-northeast-2.rds.amazonaws.com", # 데이터베이스 엔드포인트
'PORT': '3306',
}
}
python managy.py migrate
python manage.py createsuperuser
S3(Simple Storage Service)는 아마존에서 제공하는 인터넷용 스토리지 서비스입니다.
버킷 만들기
IAM( Identity and Access Management) AWS 리소스들에 대한 접근을 제어할 수 있는 서비스. 권한을 부여 or 제한하여 리소스 보관의 안정성을 높임
S3를 파일 저장소로 활용할 수 있게 두 개의 모듈 설치
boto3는 S3를 사용하기 위한 모듈
pip install boto3
django-storages는 다양한 저장소를 사용하기 위한 모듈
pip install django-storage
이 두 개를 설치하면 django-storages를 통해 boto3를 이용한 저장소를 사용할 수 있고, boto3를 이용해 아마존 S3를 저장소로 설정해 미디어 서버로 사용 할 수 있음
botocore.errorfactory.NoSuchBucket: An error occurred (NoSuchBucket) when calling the PutObject operation: The specified bucket do
es not exist
원인: BUCKET_NAME을 잘못 적어서 일어난 일
해결방법: BUCKET_NAME 수정하니 잘 해결
botocore.exceptions.ClientError: An error occurred (AccessControlListNotSupported) when calling the PutObject operation: The bucket does not allow ACLs
원인: s3 버킷에서 ACL이 활성화되어 있지 않았기 때문에 일어난 오류
해결방법: 활성화 시켜주면 됨
- S3 버킷> 권한 탭으로 이동합니다.
- 아래로 스크롤 객체 소유권(Object Ownership)으로 이동하여 편집을 클릭하십시오.
- ACL 비활성화에서 ACL 활성화로 설정을 변경하고 변경 사항을 저장합니다.
botocore.exceptions.ClientError: An error occurred (AccessDenied) when calling the PutObject operation: Access Denied
원인: 사용자(AWS ID 및 AWS 암호로 식별됨)에 내 s3 버킷을 제어할 수 있는 액세스 권한이 부여되지 않았기 떄문에 일어난 현상
해결 방법:
- S3 버킷 > 권한 탭으로 이동합니다.
- 공개 액세스 차단(버킷 설정)으로 이동하여 편집을 클릭하십시오.
- 모든 공개 액세스 차단을 선택 해제 -> 저장
다음과 같은 에러들을 해결하면 다음과 같이 정적 파일 모으기 작업을 잘 수행한 것을 볼 수 있습니다.