지난시간:CDN에 인증서 설치 -> https접속 가능하게 처리
오늘: 1. 스토리지 접속확인
2. 로드벨런서 접속확인(EC2에 yarn start하고확인)
3. 정적, 동적 분기처리
브라우저접속 -> 내가 입력한 주소를 DNS가 CDN주소로 바꿔치기해줌.
이 CDN에 ssl인증서 설치 함으로써 https접속이 가능하게 처리.
이 CDN에서 분기처리.
오리진(원본을 추가)
CDN에서 /boards/* 이렇게 boards폴더 내부의 것들은 다 로드밸런서에서 실행되게 처리.
첫html은 로드벨런서에서 받아옴.
나머지 js,css는 _next에서 받아옴.
이 부분때문에 html부분만 나오게됨.
(.next 와 _next는 내부적으로 동일하게 인식)
빌드 아이디 통일하기(스토리지와 인스턴스가 똑같은것을 갖게하기위함.)
운영환경 통일위해 사용.
도커설치 --
apt install docker-compose
또는 Docker홈페이지 가서 다운받기.
내 컴퓨터 안에 컴퓨터를 더 설치하자.
옛날에는 회사에 입사해서는 설치할 목록들을 받고 일일이 설치, 운영체제에 따라 환경이 달라져 문제가생겼다.
이후 가상머신이라는 것이 만들어지고, 내 컴퓨터 안에 가상머신을 설치해 해당 머신에 운영체제를 설치했다.
--> 요즘에도 이런회사가 있긴함. 옛날에는 대부분의 회사가 이런식.
문제점:컴퓨터 안의 컴퓨터를 설치하면서 느려짐.
운영체제의 핵심기능들은 공유하여 가상머신안에서는 이 이 운영체제의 핵심기능을 설치하지 않게함.
단, 윈도우에서는 공유되는 운영체제가 없기에 따로 설치하는것이 필요. wsl필요.
현재:
도커 파일을 제공 -> 도커를 실행시키면 설치끝.
- 기존의 가상머신보다 빠름(핵심 커널을 공유하기땜문에(중복되는 운영체제)
- 가벼움 -VM웨어라는것이 있는데 이것은 무거움
- 이미 설치할 목록이 세팅되어있으니 편리
npm에서 다운받기 위해서는 vs코드에 npm이 설치되어있어야하고(또는 yarn이), npm install로 다운, 내가만든것을 npm publish로 올릴 수 있음.
git에서 -> git pull로 받고, git push로 올림..
hub -> 다른사람의 운영체제를 다운받을 수 있고(docker pull), 나만의 운영체제를 올릴수도 있음.(docker push)
운영체제를 올린다? -> 기존 운영체제에 내가 자주쓰는 파이썬이라던지 등을 추가해 만든 것.
도커 컴포즈: 여러대의 도커를 하나로 묶는것. (그룹핑)
docker-compose build => 도커 최적화
docker-compose up
도커를 세팅한후, 컴퓨터를 만드는 명령어를 작성한 후, 최적화 명령어를 하면 도커 안에서 실행이 되게 된다.
따라서 yarn start로 브라우저에서 3000번 포트가 열리고 nextjs의 3000번 포트를 찾아 실행되는데, 지금은 도커 컴퓨터가 nextjs를 감싸고있음.
따라서 통로가 필요.
=> 내 컴퓨터의 3000번을 찾음 -> 도커가 3000번으로 실행중인것을 발견하고 이리 들어감. -> 들어온 3000번 포트를 3000번 포트로 넘겨줌(포트포워딩)
==> 3000으로 접속하고 3000으로 넘겨줌.
도커에서 소스코드를 수정하게되면 build다시필요.
==> 자동으로 최적화된파일로 같이 바뀌지 않기에.
그렇게된다면...
build시간 오래걸림.
효율적으로하기
처음 build하면 임시저장소에 저장됨.
임시 저장공간에 있는것이면 거기서 꺼내오고, 따라서 빠르게 가져올 수 있음.
처음실행시 없음 -> 다운받아오고, 임시 저장공간에 적어둠(복사하는 등의 명령어와 결과들도 마찬가지)
이렇게 build하고 이후 다시 build한다면 빠르게 이루어짐.CACHED(임시저장된곳에서꺼내왔다)
따라서 이 캐시를 잘 활용해야함.
수정되었을경우 ===> . /myfolder
여기서 .은 모든 파일을 의미. 원래build했을때와 다르기에 캐시가 깨짐
패키지, yarn 을 먼저복사후 설치
실행최적화
docker-compose up -d
==> 백그라운드에서 실행. EC2를 끄더라도 유지시키기.
끄는방법. =>
docker-compose stop
켜져는 있는데 로그는 어떻게??
docker-compose logs
로그계속 켜져있게하기
docker-compose logs -f
로그끄기
docker-compose stop
원래 컴퓨터 끄는 명령어지만 로그가 켜져있으면 로그가 꺼짐.
마지막 로그 몇개만 보기(5개만)
docker-compose logs -f --tail=5
docker-compose stop 종료
docker ps -a 종료된 컴퓨터 보기
docker rm docker ps -a -q
(종료된컴퓨터의 아이디를 전부 가져와서! 삭제)
docker images 최적화된파일 즉, 이미지들 볼ㄹ 수 있음.
docker rmi docker images -q
이미지들 아이디 가져와서 지움.
docker system prune -a 꺼져있는 컴퓨터의 모든것을 지움.
docker-compose down => install한것을 지움. 이것을 한뒤 이미지 지우기 가능.