0326
오늘 할 일
-
페이스북 로그인 기능 복습(일요일에 다 못했던 부분까지)! - EC2 Deploy 정리 및 복습(RDS까지 완료)
- TDD 6장까지 실습 하기
과제
-
테스트 `.credentials(**kwargs)` 참고해서 하기
Increasing the amount of inotify watchers
bundle exec jekyll server
실행했는데 오류가 발생했다. 아래 사이트 참고해서 오류 수정!- 수정 사이트 https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers
RestDjango test
- API Client
- 기능 테스트 ->
- 단위 테스트 -> APIRequest
- APITestcase를 사용
–
0327
오늘 한 일
- aws route53 -> 호스팅 닷컴 네임 변경
오늘 할 일
-
EC2,Docker 영상보고 정리 및 구현 - 도메인까지 붙이기
Default Storage
- Storage 에 업로드를 통해 저장 된 파일을 불러오는데 사용한다.
from django.core.files.storage import DefaultStorage
storage = DefaultStorage()
# 자동으로 storage에 저장된 파일을 불러온다. 예로 S3에서 가져올때도 해당
# upload_to 경로/ file_name
storage.open('artist/cat.png')
f = storage.open('artist/cat.png')
result = f.read
len(result)
filecmp.cmp
- 파일 내용을 비교하려고 사용
- 파일 경로를 받기 때문에, 메모리상의 임시파일을 파일시스템 상의 임시파일로 생성해줘야 한다.
-
os.path.join(settings.STATIC_DIR, <경로>)를 사용해서 로컬의 STATIC_DIR에서 파일객체를 생성(open) 생성한 파일객체로 Artist를 생성경로>
-
settings.DEFAULT_FILE_STORAGE에 해당하는 Storage클래스 인스턴스를 가지고 해당 인스턴스의 open()메서드로 생성된 Artist.img_profile에 접근해 FileField
도메인
Client -> [EB] ELB(로드밸런서) -> EC2 / EC2
SSL 인증 사용자 - 브라우저 - (?) - 서버
AWS에 SSL인증서를 추가할 경우 https : 443 Route53 - DNS ACM - SSL 발급 및 관리
커스텀서버에 SSL인증서를 추가할 경우 Let’s Encrypt - SSL 발급 기관 그러나 관리는 알아서/ 3개월마다 갱신을 해야함
로컬 호스트의 경우 개인적을 ssh 인증을 받고 이걸 구글에 신청하면됨
if($http_x_forwarded_proto = ‘http’){ return 301 https://$hosts$request_url; }
0328
오늘 한 일
- EB_docker 강의 보고 정리
- eb 프로젝트에 travis 추가하기
settings 변수 선언
config/settings 의 경우 전역적으로 변수를 사용하기 위해선 대문자로 변수를 선언해서 사용해야 한다. 이부분은 좀 더 알아보자
travis
- 커밋단위로 테스트를 해줌
- https://docs.travis-ci.com/user/languages/python/
- eb 헸단 것처럼 secret을 먼저 보내야 한다. 이때 암호화를 해서 보내야함.
- git ignore 추가
tar -cvf secrets.tar .secrets
<!-- 암호화 -->
travis encrypt-file secrets.tar
<!-- travis.yml에 명령어가 추가 된다.덮어씌우기 yes눌러야 한다. -->
travis encrypt-file secrets.tar --add
ForkRefo <- OriginRefo
Local
Origin - > ForkRefo
upstraem - > OriginRefo
변경사항 받으려면
git fetch <저장소명>
git fork
git remote
circleci
0329
오늘 한 일
- eb docker 배포 완료!!! -> 도메인이랑 travis까지 달기
- cron 실행
내일까지 할 일
- User model로 email sign_up, login api view로 만들어보기
Cron
- 주기적으로 작업을 할 때 사용되는 소프트웨어
- 쉘 명령어로 구성되어있다.crontab 파일에 의해 작동된다. 사용자마다 crontab이 생기기 때문에 각 사용자마다 다른 명령을 내릴 수 있다.
- /2 짝수번째 , 13-15(1시에서3시까지
0330
오늘 한 일
- Celery , redis
오늘 할 일
- 회원가입 모델링 다시하고 test까지 진행하기
유용한 사이트
- Django Packages : 튜토리얼 해보고 사용해보는 것도 좋음
- AWS 이메일 보내는 것도 사용해도 좋을듯 (6만2천건 무료)
- 처음으로 시작하는 파이썬, TDD 인증 한번 보자.
할 일
- 일요일 복습합시다!!! »
- 프로젝트의 경우 크롤링해서 데이터 넣자!!!
Celery
-
- Celery : 분산 작업 대기열
- 문서
- 비동기적으로 진행하는 것
- cron + celery
- Betteries included : 필요한 소프트웨어가 함께 포함 되어있다.
Django-EC2 - celery
Django-EC2 - celery --------- Broker Server(redis/ElastiCache) ----------------
Dajgno-EC2 - celery
Django -> broker server -> workers를 가지고 있음 , CELERY 일 가능한지 물어봄 -> Celery
EB
ELB <- SSL (HTTPS), Domain(Router53)
- EC2 - Django, Celery
- EC2 - Django, Celery
- EC2 - Django, Celery
---
RDS, S3, ElastiCache(Redis):외부에서 접근이 불가능함. 로컬에서 도커사용, ec2에서 해야함
---
Sentry , Travis -CI
---
동작 방식
worker 명령 -> redis -> celery
- result 는 기본적으로 따로 설정을 해줘야 볼 수 있다.
- woker 내용이 바뀌면, redis도 껐다 다시 켜야 한다.