[TIL] Day39

은채·2022년 6월 30일
0

코드캠프 TIL

목록 보기
38/43

6월 30일 학습 목표

로드밸런서를 연결한다 - (서울에 있는 인스턴스)


도메인 만들 때는 규칙을 가지고 있는 것이 좋다

internet-faclng 인터넷(밖)에서 들어오는것

Internal 프론트, 백엔드 내부용

최소 2개 이상은 반드시 선택되어야 한다 - 자기것과 나머지 1개
우리가 연결할 E2C의 가용영역을 확인해야 한다 (자기것확인!!)


http 80으로 접속하겠다

create target group 설정 - 인스턴스로

열어놓은 3000번 포트로 들어가게


health checker는 5-10초에 한 번 연결을 시도(Advanced health check settings에서 설정가능) 하여, 2번 이상 연결에 응답이 없으면 죽은것으로 간주하고 LB에게 해당 인스턴스가 문제가 있음을 알려준다
이를 바탕으로 LB에서는 나머지 인스턴스에 트래픽을 나누어준다

target 그룹에다 인스턴스를 등록하쟈


타겟 그룹에 인스턴스 등록을 완료했다


LB와 타겟 그룹을 연결해야 한다

만든 타겟 그룹을 등록하고 로드밸런서 생성 완료


로드밸런서도 방화벽을 풀어 80번 포트 접속이 가능하게 해주어야 한다


default를 수정하자


80번에 누구든지 들어올 수 있게!


로드밸런서에 접속하면 최종적으로는 우리가 만든 프론트엔드 페이지에 가게 될 것

<현재까지 진행>

모든 페이지에 https?
처음 접속하는 최상단에만 ssl 인증서를 등록하여 https를 해놓고, 내부적으로는 하지 않는다 (서비스에 따라 다름)

분기처리를 cloudFront에서 해보자

원본에서 LB를 등록하고
동작에섭 분기처리를 한다


로드밸런스의 http 80으로 보낸다고 체크하고 생성하기


이제 원본이 2개가 되었다
주소에 따라 분기처리를 하자


동적페이지는 LB로 가게 설정


정적페이지는 storage 통해서 잘 나왔었고


어제는 나오지 않았던 /boards/aaa까지 된다! => 서버가 꺼지면 이부분은 접속이 불가능하다 ( 정적페이지는 storage에 있어서 접속이 가능하다 )


빌드 아이디를 통합해야 한다

Docker

배포를 위한 Docker
부팅 등 운영체제의 핵심 기능 (커널)은 공유하는 가상머신
운영체제에 따라 달라지는 개발 환경을 똑같이 만들어줘야 할 때 간편하게 해준다
=> OS 전체를 새로 설치하지 않아도 됨(속도가 빨라짐)
=> 프로그램을 미리 설치해준다
=> 가벼운 가상 컴퓨터이다

단, 윈도우는 WSL(Window Subsystem for Linux)라는 프로그램을 설치해야 한다

Dockerfile 을 만들자 -> 명령어를 사용하여 설치해야 할 파일 정리하기
파일을 실행하면 E2C 인스턴트와 같은 역할을 한다

node 14에는 ubntu 안에 node, npm, yarn 이 이미 설치 되어있으니 이 명령어를 쓰자


이제는 작업파일을 도커 리눅스 안에 카피해서 작업한다

이럴 때 node_modules도 카피해서 들어오게 된다

제외하기


Dockerfile


docker-compose.yaml (띄어쓰기 중요)

docker-compose가 있는 곳에서 docker-compose build
buildrk 끝나면 docker-compose up


docker안에서 yarn start 실행

내 안에 있는 3000과 docker안의 3000을 연결한다 (포트포워딩)
연결하지 않으면 내 컴퓨터에 있는 3000에 가도 접속되지 않는다

접속 가능해진다

배포는 백그라운드 배포를 해야한다

docker-compose up -d

쉘이 먹통되거나 일이 없을 것이다 / 컨트롤C를 해도 종료되지 않는다

도커가 잘 실행되는지 확인하기
docker ps

도커에 접속하기
docker exec -it + 컨테이너 + /bin/bash

이제는 도커 안에 파일을 만들어도 밖에 보이지 않고
도커 밖에 파일을 만들어도 도커 안에서는 보이지 않는다

도커에서 나가기
exit

도커 종료하기
docker-compose stop

도커 삭제하기
docker-compose down

EC2에 다시 연결해서 도커가 들어간 git으로 바꿔준다

docker 다시 깔고
sudo yum install docker

명령어 하나씩

sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose

sudo curl -L https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

docker-compose version

깔렸따

yaml파일이 있는 곳에서 실행해보려고 했는데 아마존은 설치하고 바로 안된다

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?: driver not connecting

세 개의 명령어를 해보자

sudo amazon-linux-extras install docker
sudo service docker start
sudo usermod -a -G docker ec2-user

세 개를 한 뒤 껐다가 다시 접속하여 파일로 이동 후 docker-compose build
이제 된다!

빌드아이디를 맞추기 위해서 build:ssg를 다시하고

아이디된 파일이 생겼는지 확인

새파일의 내용들로 스토리지 내용을 업로드하자 (out폴더안의 내용으로)
파일들을 모두 작업 > public으로 지정해주면 끝

배포 끝 ㅠ

배포는 간단하게 할 수도 있고, 복잡하게 할 수도 있다
서비스의 규모에 따라 달라진다

간단한 배포

접속자가 많아져서 프론트엔드 서버를 늘려야 할 때

동적인 페이지 / 정적인 페이지를 구분하여 분기를 나눠 접속시키고 싶을 때

1) 정적파일

2) 동적파일

서버사이드 렌더링


데이터가 포함된 H+C+J 파일을 보내주는 것

profile
반반무마니

0개의 댓글