📢 공지사항
home

배포 사전준비

번호
27
비고
12:42
주차
5월 넷째주
확인
환경변수 / requirements.txt / AWS

환경 변수

: 시스템에 저장되어 있는 변수
보통 비밀 키 등 유출되면 안되는 정보
환경에 차이를 둘 때 사용(테스트/프로덕션 구별 등)
os.environ 에서 dict 형식으로 불러올 수 있음
os.environ.get('변수명', '기본값') 으로 사용

requirements

: 내 파이썬(장고) 앱을 실행하기 위해 우선 설치되어야 하는 패키지들
Django, Pillow 등
패키지명 == 버전 으로 저장
보통 requirements.txt 파일에 저장
pip freeze 명령어는 해당 환경에 설치된 모든 패키지를 보여줌
> 는 프로그램의 출력을 파일에 저장한다는 뜻
pip freeze > requirements.txt 로 생성

IAM

: Identity and Access Management
IAM 에서 계정을 만든 후 해당 계정 로그인 정보(액세스 키&시크릿 키)를 이용하여 AWS 의 API 활용
보안을 위해 권한을 최대한 보수적으로 잡음

S3

: Simple Storage Service
AWS 에서 제공하는 구글 드라이브 정도로 생각하면 됨
최초 용량 지정 없이 사용한 만큼만 과금되므로 용량 예측 필요x
여러 서버에서 동시에 접속 가능(부하 순산에 유리)
settings.py 의 SECRET_KEY 를 다음과 같이 바꿈
SECRET_KEY = os.environ.get( 'SECRET_KEY', 'django-insecure-1&bk#+m*3r5rjjsw9d2$-%wmb3r*tf_=0^iqa1^yzfasx)&w8s')
Python
복사
기본값은 원래 있음
터미널에 pip freeze 로 현재 가상환경에 깔려있는 모든 패키지들 확인 가능
pip freeze > requirements.txt 로 터미널 화면에 표시된 내용을 파일에 넣을 수 있음 ... 옆에 txt 파일 생김
AWS console 로그인...???? 회원가입 해야함
iam 쳐서 들어간 페이지에서 사용자(user) → 사용자 추가 → 사용자 이름, 프로그래밍 방식 액세스 →기존 정책 직접 연결 → s3 검색해서 AmazonS3FullAccess 선택 → 다음다음 → .csv 꼭 다운 받아놓아야 함, 키 없어짐
django storatages 검색해서 들어간 페이지에서 Installation 구문 복사해서 터미널 붙여넣기 - 설치
한 후에 pip install django-stoaratages 기입, pip freeze > requirements.txt 로 수시로 저장해줘야 함
Amazon S3 들어가서 Settings → 다음 코드 복사해서 Settings.py 맨 아래에 붙임
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
Python
복사
aws console 에서 s3 검색 → 버킷 만들기
→ 이름 입력 → 퍼블릭 액세스 차단 풀고 아래 동의 → 버킷 만들기
django storages Amazon S3 Settings 에서 다음 코드 복사, settings.py 맨 아래에 붙임
#aws AWS_ACCESS_KEY_ID = 'AKIAVXMCPHDL3FP7V5AK' AWS_SECRET_ACCESS_KEY = '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' AWS_STORAGE_BUCKET_NAME = 'nostalgia-likelion'
Python
복사
<터미널에 pip install boto3>
→ aws 관련 api 를 python 에서 활용할 수 있도록 aws 에서 만든 패키지
pip freeze > requirements.txt
runserver

⇒ 커맨드 나가기 ctcl+c

aws 에서 bucket/blog/ 들어가면 파일 올라간 것 보임
페이지에서 보안 설정 때문에 그냥 접속하면 안되고 서명된 url 이 있어야 함
... aws 지역마다 성격이 달라서 다음 설정 해줘야 함 (settings.py 에 맨 밑)
AWS_S3_SIGNATURE_VERSION = 's3v4' AWS_S3_REGION_NAME = 'ap-northeast-2'
Python
복사
signature mismatch 있을 수 있는데 이거는 aws 측 문제라서 12~24 시간 기다렸다가 보면 정상 작동 할거임
하,,,