-
Notifications
You must be signed in to change notification settings - Fork 4
nCloud 서버, VPC 만들고 설정
- dev-server (개발용)
- [공인 ip] 223.130.151.78
- pub-server (배포용)
- [공인 ip] 211.188.48.107
- pri-server (DB용)
- [사설(비공인) ip] 10.15.11.6
-
public, dev 서버
- Inbound: 22 (SSH), 3389 (원격 데스크톱) → 어느 ip address에서도 해당 포트로 접근 가능
- Outbound: 어느 ip address, port로도 가능하게 뚫어놓음(ICMP는 ping으로 연결 확인용)
-
private 서버
- Inbound: 22(SSH), 5432(postgresql) → public 서버에서만 접근 가능 (dev 서버도 같은 acg라 가능은 함)
- Outbound:
- ICMP(ping으로 인터넷 연결 확인)
- 일단은 ping, http, https용 포트 개방 ⇒ postgresql 서비스 처음 설치할 때 필요
-
public, dev 서버 서브넷 (+ 임시 NAT)
- 인터넷 게이트웨이와 로컬 Route 존재
-
private 서버 서브넷
- NAT 게이트웨이와 로컬 Route 존재
- NAT 게이트웨이는 후에 삭제해야함
- 접속 키 ssh 관리자에 추가해주기 :
ssh-add [접속 키]
(base) ➜ pem ls
web-dev-key.pem web15-pri-key.pem web15-pub-key.pem
(base) ➜ pem ssh-add web-dev-key.pem
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0664 for 'web-dev-key.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
# 읽기 전용으로 권한 바꿔줌
(base) ➜ pem chmod 600 web-dev-key.pem
(base) ➜ pem ssh-add web-dev-key.pem
Identity added: web-dev-key.pem (web-dev-key.pem)
b. 이제 ssh -A [ip 주소]
로 접근 가능 (-A 옵션이 key 관리)
로컬에서 접속 덜 귀찮게 하기위해 ssh config 파일 업데이트하겠음
- (Ubuntu 기준) 해당 파일 존재 확인
(base) ➜ ~ ls -ld .ssh/config
-rw------- 1 summerminj summerminj 188 Sep 26 19:04 .ssh/config
(base) ➜ ~ vim .ssh/config
b. config 파일 업데이트
Host oct-dev
HostName 223.130.151.78
Port 22
User root
ForwardAgent yes
Host oct-pub
HostName 211.188.48.107
Port 22
User root
ForwardAgent yes
c. 이제
ssh oct-dev
ssh oct-pub
으로 접속 가능
- dev-server
-
ping [ietf.org](http://ietf.org)
으로 인터넷 게이트웨이 연결 여부 확인------------------------------------------------------------------------------------------------------------ // // ////// ////// // //// // // ////// // // // // // // // // // // // // // // // // // // // // // // ////// // //// ////// ////// Welcome to Naver Cloud Platform Server! Authorized access only! If you are not authorized to access this system, disconnect now! ------------------------------------------------------------------------------------------------------------ root@dev-server:~# ping ietf.org PING ietf.org (104.16.45.99) 56(84) bytes of data. 64 bytes from 104.16.45.99 (104.16.45.99): icmp_seq=1 ttl=58 time=5.56 ms 64 bytes from 104.16.45.99 (104.16.45.99): icmp_seq=2 ttl=58 time=2.39 ms 64 bytes from 104.16.45.99 (104.16.45.99): icmp_seq=3 ttl=58 time=2.46 ms ^C --- ietf.org ping statistics ---
-
passwd
로 비밀번호 좀 쉽게 변경
b. pub-server
-
ping [ietf.org](http://ietf.org)
으로 인터넷 게이트웨이 연결 여부 확인---------------------------------------- // // ////// ////// // //// // // ////// // // // // // // // // // // // // // // // // // // // // // // ////// // //// ////// ////// Welcome to Naver Cloud Platform Server! Authorized access only! If you are not authorized to access this system, disconnect now! ------------------------------------------------------------------------------------------------------------ root@pub-server:~# ping ietf.org PING ietf.org (104.16.44.99) 56(84) bytes of data. 64 bytes from 104.16.44.99 (104.16.44.99): icmp_seq=1 ttl=58 time=7.23 ms 64 bytes from 104.16.44.99 (104.16.44.99): icmp_seq=2 ttl=58 time=2.27 ms 64 bytes from 104.16.44.99 (104.16.44.99): icmp_seq=3 ttl=58 time=2.33 ms 64 bytes from 104.16.44.99 (104.16.44.99): icmp_seq=4 ttl=58 time=2.21 ms ^C --- ietf.org ping statistics ---
-
passwd
로 비밀번호 좀 쉽게 변경 -
private 서버 접속 명령어 단축 등록
- local → pub, dev 접속할때와 마찬가지로 설정 문서 편집
root@pub-server:~# ls -ld .ssh/config
ls: cannot access '.ssh/config': No such file or directory
root@pub-server:~# mkdir -p ~/.ssh
root@pub-server:~# touch ~/.ssh/config
root@pub-server:~# chmod 600 ~/.ssh/config
root@pub-server:~# vim ~/.ssh/config
Host oct-pri
HostName 10.15.11.6
Port 22
User root
ForwardAgent yes
이제
ssh oct-pri
으로 접속 가능
c. pri-server
-
ping [ietf.org](http://ietf.org)
으로 인터넷 게이트웨이 연결 여부 확인 (현재는 NAT 게이트웨이 연결되어 있어 가능해야 함)---------------------------------------- // // ////// ////// // //// // // ////// // // // // // // // // // // // // // // // // // // // // // // ////// // //// ////// ////// Welcome to Naver Cloud Platform Server! Authorized access only! If you are not authorized to access this system, disconnect now! ------------------------------------------------------------------------------------------------------------ \root@pri-server:~# ping ietf.org PING ietf.org (104.16.45.99) 56(84) bytes of data. 64 bytes from 104.16.45.99 (104.16.45.99): icmp_seq=1 ttl=58 time=7.42 ms 64 bytes from 104.16.45.99 (104.16.45.99): icmp_seq=2 ttl=58 time=2.49 ms 64 bytes from 104.16.45.99 (104.16.45.99): icmp_seq=3 ttl=58 time=2.48 ms ^C --- ietf.org ping statistics ---
-
passwd
로 비밀번호 좀 쉽게 변경
- PostgreSQL의 GPG 키 바이너리 형식으로(중요!!!) 저장
wget --quiet -O- https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor -o /etc/apt/trusted.gpg.d/postgresql.gpg
- apt update로 필요한 패키지 업데이트
sudo apt update
- apt upgrade로 필요한 패키지 업그레이드 (서버 안정성…)
sudo apt update
- 최신 버전
apt show postgresql
로 확인 후 postgresql 설치
# 설치
root@pri-server:/# sudo apt-get -y install postgresql-14
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages were automatically installed and are no longer required:
...
# 메모리 관리
root@pri-server:/# sudo apt autoremove
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages will be REMOVED:
- PostgreSQL 실행되는지 확인하기
root@pri-server:/# sudo service postgresql start
root@pri-server:/# sudo service postgresql status
● postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; ve>
Active: active (exited) since Tue 2024-11-12 17:55:08 KST; 4min 0s >
Main PID: 43920 (code=exited, status=0/SUCCESS)
CPU: 1ms
Nov 12 17:55:08 pri-server systemd[1]: Starting PostgreSQL RDBMS...
Nov 12 17:55:08 pri-server systemd[1]: Finished PostgreSQL RDBMS.
lines 1-8/8 (END)
root@pri-server:/# sudo -i -u postgres
postgres@pri-server:~$ psql
psql (14.13 (Ubuntu 14.13-1.pgdg22.04+1))
Type "help" for help.
postgres=#
postgres=#
- 일단은 비활성화시켜놓기
root@pri-server:/# sudo service postgresql stop
root@pri-server:/# sudo systemctl disable postgresql
Synchronizing state of postgresql.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install disable postgresql
Removed /etc/systemd/system/multi-user.target.wants/postgresql.service
나중에
- user, database 설정 해놓고
- public 서버에서만 특정 포트로 접속 가능하게 보안설정해두고
- 확인해야함.. 하지만 나중에 하겠습니다 일단은 안쓰니까요
참고할 사이트: https://backendcode.tistory.com/265
root@pri-server:/# ping ietf.org
PING ietf.org (104.16.44.99) 56(84) bytes of data.
64 bytes from 104.16.44.99 (104.16.44.99): icmp_seq=1 ttl=58 time=4.72 ms
64 bytes from 104.16.44.99 (104.16.44.99): icmp_seq=2 ttl=58 time=2.48 ms
64 bytes from 104.16.44.99 (104.16.44.99): icmp_seq=3 ttl=58 time=2.54 ms
64 bytes from 104.16.44.99 (104.16.44.99): icmp_seq=4 ttl=58 time=2.52 ms
64 bytes from 104.16.44.99 (104.16.44.99): icmp_seq=5 ttl=58 time=2.60 ms
→ 멀쩡히 잘되는 상태… 왜냐하면
- NatGateway용도로 만들어 놓은 별도의 서브넷이 있고
b. 해당 서브넷과 연결하여 NAT Gateway를 만들었으며
c. public subnet처럼 인터넷 Gateway를 쓸 수 있는 라우트 테이블에 등록되어 있기 때문
이걸 없에서 DB용 프라이빗 서버에서는 인터넷에 접속할 수 없게 하겠음
-
PostgreSQL을 설치했으니 이제 넷에 접속할 필요가 없고
-
NAT Gateway는 비쌈..
-
private route table에서 Routes 설정 → 0.0.0.0/NATGW 삭제
-
NAT Gateway를 아예 삭제
-
NATGateway용 Subnet 삭제
-
그러면 Route Table에서도 연관 Subnet에서 빠짐
아직 Outbound 규칙은 고치지 않은 상황
하지만 NAT Gateway를 없애놔서 인터넷 연결은 안된다!!
Outbound rule도 업데이트해둘까 하다가 나중에 다시 인터넷에 연결해둘 일이 있을 것 같아서 보류
⚓️ 사용자 피드백과 버그 기록
👷🏻 기술적 도전
📖 위키와 학습정리
✏️ 에디터
Novel이란?
Novel 스타일링 문제
에디터 저장 및 고려 사항들
📠 실시간 협업, 통신
Yorkie와 Novel editor 연동
YJS, Websocket, React-Flow
YJS, Socket.io
WebSocket과 Socket.io에 대해 간단히 알아보기
YJS 가이드 근데 이제 Socket.io를 곁들인
🏗️ 인프라와 CI/CD
NCloud CI CD 구축
BE 개발 스택과 기술적 고민
private key로 원격 서버 접근
nCloud 서버, VPC 만들고 설정
monorepo로 변경
⌛ 캐시, 최적화
rabbit mq 사용법
🔑 인증, 인가, 보안
passport로 oAuth 로그인 회원가입 구현
FE 로그인 기능 구현
JWT로 인증 인가 구현
JWT 쿠키로 사용하기
refresh token 보완하기
🧸 팀원 소개
⛺️ 그라운드 룰
🍞 커밋 컨벤션
🧈 이슈, PR 컨벤션
🥞 브랜치 전략
🌤️ 데일리 스크럼
📑 회의록
1️⃣ 1주차
킥오프(10/25)
2일차(10/29)
3일차(10/30)
4일차(10/31)
2️⃣ 2주차
8일차(11/04)
9일차(11/05)
11일차(11/07)
13일차(11/09)
3️⃣ 3주차
3주차 주간계획(11/11)
16일차(11/12)
18일차(11/14)
4️⃣ 4주차
4주차 주간계획(11/18)
23일차(11/19)
24일차(11/20)
25일차(11/21)
5️⃣ 5주차
5주차 주간계획(11/25)
29일차(11/25)
32일차(11/28)
34일차(11/30)
6️⃣ 6주차
6주차 주간계획(12/2)
37일차(12/3)