main 브랜치에 배포와 관련된 파일들을 전부 올려 놓았다.CI와 관련된 브랜치를 하나 파서 그곳에서 테스트를 하고 코드가 좋다면 main으로 병합해야 한다. CI에 대한 브랜치를 파 그곳에서 작업하는 것이 권장된다.
instance type은 프리티어를 사용해준다.
위치 무관을 선택했다.
인스턴스 시작을 눌러 인스턴스를 만들어 준다.docker를 사용할 것이기 때문에 cloud9을 사용하지 않는다.연결을 눌러준다.
연결 버튼을 눌러준다.


$ git clone {repository_ssh}

$ ssh-keygen -t rsa -C "깃헙에서 쓰는 email@email.com"

$ cat /home/ubuntu/.ssh/id_rsa.pub





ls를 입력해 클론이 잘 되었는지 확인해보자.
$ sudo apt-get update
$ sudo apt-get remove docker docker-engine docker.io
$ sudo apt install docker.io
$ sudo systemctl start docker
$ sudo docker ps
$ sudo systemctl enable docker
$ docker --version
$ sudo apt install docker-compose
ip 주소를 받게 된다. 하지만 해당 주소는 인스턴스를 껐다 키게 되면 변경이 되게 된다. elastic ip를 설정해보도록 하겠다.elastic ip를 설정하고 사용하지 않은채 그대로 두어도 과금이 된 경험이 있다.탄력적 ip 메뉴가 보인다. 우상단 버튼을 눌러 할당을 하도록 한다.




43.200.168.137이 적용되어 있는 것을 볼 수 있다.
인스턴스 연결을 했던 페이지로 돌아와 새로고침을 해준다.git checkput deploy를 통해 배포용 브랜치로 변경해야 한다. .env 파일이 하나도 없는 것을 볼 수 있다.
.env 파일들을 생성해보도록 하겠다. .env.prod 파일을 생성하도록 하자.DJANGO_ALLOWED_HOSTS에 탄력적 ip 주소를 추가해주도록 한다. i를 눌러 insert 모드로 만든 후 로컬에 있는 파일을 복붙해준다.esc 키를 누르고 shift + :을 친 다음, wq(write quit)을 눌러 저장하고 꺼준다.$ vim .env.prod

.env.postgres.prod 파일도 동일한 방식으로 만들어 준다.$ sudo docker-compose -f docker-compose.prod.yaml up -d --build

$ sudo docker-compose exec web python manage.py makemigrations
$ sudo docker-compose exec web python manage.py migrate


sudo docker ps를 통해 정확히 확인하고 명령어를 입력해야 한다.$ sudo docker exec -ti turtle_drf_backend_web_1 /bin/sh


control + d를 눌러 컨테이너에서 나올 수 있다.