AWS S3 and RDS

Amazon S3 사용하기

  • 도메인을 이용한 버킷 사용하기
  • media 파일 적용하기

    1. 도메인을 구입한다.
    2. Amazon - S3에서 버킷을 생성한다.
      • 버킷 이름은 media.[도메인 주소]로 한다.
      • 권한 설정에서 다음과 같이 설정한다.
        • 퍼블릭 ACL 관리 체크 항목을 모두 해제한다.
        • 퍼블릭 버킷 정책 관리 체크 항목을 모두 해제한다.
        • 시스템 권한 관리에서 ‘엑세스 권한 부여함’을 선택한다.
      • 버킷이 생성되면 속성 탭에서 정적 웹 사이트 호스팅을 활성화한다.
        • index.html, error.html은 그대로 입력하고 진행한다.
    3. Amazon - Route53에서 설정한다.
      • 호스팅 영역 생성을 누르고 구입한 도메인 이름을 입력한다.
      • 생성을 누른 후, NS 유형의 값을 확인한다.
      • 도메인을 구입한 페이지로 이동하여 도메인 관리로 이동한다.
      • 네임서버에 NS 유형의 값으로 수정한다.
        • whois.kisa.or.kr의 WHOIS 조회를 통해 네임서버가 바뀌었는지 확인한다.
      • 다시 Amazon - Route53에서 레코드 편집 생성을 누른다.
        • 이름에는 media를 입력한다.
        • 별칭을 ‘예’로 선택한다음 media.[도메인 주소] (s3-website)를 선택하고 생성한다.
    4. 해당 pycharm project에서 settings.py를 수정한다.

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      AWS_STORAGE_BUCKET_NAME = '도메인 주소으로 만든 버킷 이름'
      AWS_S3_CUSTOM_DOMAIN = '%s' % AWS_STORAGE_BUCKET_NAME
      AWS_S3_SECURE_URLS = False

      # https에서 http로 수정
      # http를 사용함
      STATIC_URL = 'http://%s/%s/' % (AWS_S3_CUSTOM_DOMAIN, AWS_LOCATION)
      STATICFILES_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'

      # media 관련
      DEFAULT_FILE_STORAGE = 'config.asset_storage.MediaStorage'
      • config/asset_storage.py를 생성하고 작성한다.

        1
        2
        3
        4
        5
        6
        7
        # config/asset_storage/py

        from storages.backends.s3boto3 import S3Boto3Storage

        class MediaStorage(S3Boto3Storage):
        location = 'media'
        file_overwrite = False
      • config/urls.py를 수정한다.

        1
        2
        # 주석 처리
        # urlpatterns += static(settings.MEDIA_URL, document_root = settings.MEDIA_ROOT)
      • 서버를 실행한 후, 이미지 파일을 업로드해본다.

      • 이미지 출력이 잘 되는지 확인하자.
      • Amazon - S3의 해당 버킷에 파일이 저장되어있는지 확인하자.

Amazon - RDS 사용하기

  • Amazon Database 사용하기

    1. Amazon - RDS에서 데이터베이스를 생성한다.

      • 오른쪽 항목의 파라미터 그룹으로 이동하여 파라미터 그룹을 생성한다.
      • 그룹 세부 정보에서 파라미터 그룹 패밀리는 postgres9.6을 선택하고 생성한다.
      • 파라미터 그룹에서는 편집을 통해 파라미터를 수정할 수 있다.

        1
        ex) encoding을 검색하고 편집을 누르면 해당 값인 UTF-8을 변경할 수있다.
      • 데이터베이스 생성을 누른다.

        1. 엔진 선택
          • PostgreSQL 선택
          • RDS 프리 티어에 적용되는 옵션만 적용
        2. DB 세부 정보 지정
          • DB 엔진 버전을 PostgreSQL 9.6.12-R1을 선택
          • DB 인스턴스 식별자를 작성
          • 마스터 사용자 이름을 작성
          • 마스터 암호를 작성
        3. 고급 설정 구성
          • 네트워크 및 보안에서 퍼블릭 엑세스 가능성을 ‘예’로 체크
          • 데이터베이스 옵션에서 DB 파라미터 그룹을 생성한 파라미터 그룹으로 선택
          • 백업은 0일로 설정
          • 삭제 방지 활성화
        4. 생성
    2. 데이터베이스 목록에서 해당 데이터베이스가 ‘사용 가능’이 될 때까지 기다린다.
      • 해당 데이터베이스를 클릭한다.
      • 보안 - VPC 보안 그룹 - 하단 인바운드에서 IP를 추가할 수 있다.
      • 연결&보안 - 엔드포인트와 구성 - DB 이름을 알아둔다.
    3. pycharm project의 settings.py를 수정한다.

      • settings.py를 수정한다.
        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        17
        18
        # config/settings.py
        # 기존 데이터베이스 항목을 수정
        DATABASES = {
        'default': {
        # psycopg2 - binary 이용
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        # Amazon 해당 DB의 구성 - DB 이름
        'NAME': 'dstagram',
        # Amazon database 생성 때 작성한 마스터 사용자 이름
        'USER': 'amazon master user name',
        # Amazon database 생성 때 작성한 마스터 암호
        'PASSWORD': 'amazon master password',
        # Amazon 해당 DB의 연결&보안 - 엔드포인트
        'HOST': 'wps10-dstagram.cnuxbldx8kex.ap-northeast-2.rds.amazonaws.com',
        # # Amazon database 생성 때 포트
        'POST': '5432',
        }
        }
    4. pycharm project의 DB를 초기화한다.

      1
      $ python manage.py migrate
    5. 관리자 계정을 생성하고 서버를 실행하여 확인한다.

      1
      2
      3
      $ python manage.py createsuperuser

      $ python manage.py runserver
Share