aws ec2 인스턴스 리전 변경
- aws ec2에 업로드한 인스턴스의 리전이 스톡홀름으로 설정되어 있어서 서울 지역으로 변경해주는 작업을 했다
- 인스턴스 리전을 변경해준 이유: 프론트엔드 서버도 리전이 유럽으로 배포 되어서 배포된 지역의 거리가 길어 데이터의 전송속도가 초단위로 늘어났다.
AMI이미지를 생성
- AMI이미지를 생성하여 캡쳐후 처음인스턴스를 생성하고 지역을 서울로 설정한후 재배포 했다
AMI로 인스턴스 시작
- 캡쳐한 이미지로 인스턴스 시작
- 생성할 인스턴스 이름 설정
- 새로운 키페어를 생성하여 저장
- root는 root경로로 접속 ubuntu로 설정시 내가 생성한 인스턴스로 접속
sudo 명령어로 포트설정
80번 포트로 접속도 3000번 포트로 넘겨주는 관리자 명령어
sudo -s iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3000
알게된 것
- 인스턴스 리전을 변경할때 이미지 캡쳐시간에 적용된 github 코드를 가져오기때문에 변경된 리전으로 인스턴스 생성시 아래 명령어로 배포된 코드와 깃허브의 싱크를 맞춰 주어야함
git pull origin 브랜치이름
느낀점
- 그렇게 어렵지 않을거라고 생각했던 팔로우 기능을 너무 오랫동안 해결하지 못해서 답답한 마음이 있었다. 다른 모델들에서 필요한 데이터만 참조하고 , 조인하고 가공하는 과정이 아직 익숙하지 않은것 같다. sql자체에 익숙하지 않다보니 필요한 데이터를 어떠한 방식으로 참조해 올 수 있는지 많이 고민해봐야겠다. 현재 적용된 코드는 서비스 계층에서 3번의 반복문을 수행하는데 코딩 초보인 내가 봐도 시간복잡도 측면에서 엄청나게 나쁜 코드라는 생각이든다 서비스계층에서는 필요한 가공만 수행하기 위해 레포지토리 계층에서 쿼리를 최대한 효율적으로 작성해서 불필요한 반복문을 제거해야 할 것 같다. 쿼리를 어떤 방식으로 작성을 할 것인지 부터 고민을 해봐야겠다. 현재 적용된 코드를 배포하여 테스트 했을때 친구 추가 버튼을 눌렀을때도 요청에 2초이상이 소요되는 상황이 발생했고, 이러한 상황은 리액트가 갖고있는 spa의 장점을 완전히 무시해버리는 코드라는 생각이 들어서 어떻게하면 요청을 빠르게 처리할 수 있는지에 대한 고민과 연습이 많이 필요해보인다. 그리고 사용자가 많아졌을떄의 상황도 고려하여 1번의 요청에 DB에 접근하는 횟수도 최대한 줄여서 효율적인 코드를 작성해야겠다는 생각이 들었다. 아쉬운 부분이 많았지만 그만큼 배워가는 부분도 없지는 않은거 같아서 다음에 이런상황이 생겼을때는 이번보다는 나은 코드를 작성할 수 있을 것 같다. 이제는 간단한 경로오류, 오타, 여러가지 잡다한 오류는 더이상 해결하는게 의미가 없을정도로 빠르게 해결하지만 로직을 짜는 부분에서는 아직 어색한 부분이 많아서 많은 연습이 필요해 보인다.
- 생성된 인스턴스의 지역이 멀면 멀수로 물리적거리가 멀어서 요청을 주고 받는 시간이 초 단위로 늘었다 프론트엔드배포 리전은 유럽이었고 백엔드 배포 리전은 스톡홀름으로 되어있어서 팔로우 추가버튼같은 간단한 요청도 처리되는데 1초이상이 소요되었다 그래서 프론트와 백엔드의 배포리전을 서울로 맞추고 다시 시도 했을때 요청시간이 빠르게 줄어드는 것을 알 수 있었다.