갬미의 성장일기
Day 29 - Linux network 명령어 , 서버 배포하기 본문
오늘 배운 내용
- Linux network 명령어
- VS Code에서 작성한 파일 AWS 서버에 올리기
Linux 실습 환경
- 어제처럼 AWS에서 EC2를 생성하여 cmd에서 실행한다
- 오늘은 리눅스 기본 명령어가 아니기 때문에 구름 환경에서는 X
리눅스 사용 용도
1. 클라이언트용
2. 서버용
서버 - 서비스를 전문으로 하는 특별한 컴퓨터
컴퓨터의 모든 자원을 서비스에 집중하는 특별한 컴퓨터
리눅스 -> 서버용으로 많이 사용됨
리눅스에서 install 할때 왜 apt를 사용할까?
윈도우일때 - A 프로그램 실행할 때
B DLL 파일이 필요함
리눅스일때 - A 프로그램 실행할 때
B 의존성 파일이 필요함
dpkg로 프로그램 설치가 가능하지만 의존성 파일을 찾아 같이 설치해줘야 한다
apt는 의존성 파일까지 같이 설치해주므로 편리함!
Linux Network 명령어
일단 리눅스 설치 목록을 최신화 시켜준다
sudo apt update
sudo apt upgrade
update와 upgrade의 차이?
update - 설치할 목록을 갱신 (현재 우분투 목록에 있는 리스트만 최신화)
upgrade - 모든 패키지를 최신버전으로 갱신 (현재 설치되어 있는 목록 업데이트) / 버전간 호환되는 것이 다를 수 있으므로 주의하여 사용
ifconfig
eth0 - 랜카드 이름
특정 랜카드 정보만 보려면
ifconfig eth0(NIC 이름)
netstat
네트워크에 대한 내용 중 내가 해당되는 부분에서 어디로 와서 나가고 어떤 연결상태인지
외부 ip가 내부 ssh로 붙는다
netstat -a 모든 소켓정보를 표시
netstat -i 인터페이스 정보
netstat -l 리눅스 서버가 어떤 포트로 통신하려고 하는지 확인 : 대기중(리스닝)은 포트 또는 소켓을 표시
netstat -p 소켓의 프로세스 ID (PID)/프로그램 이름 표시 (kill등을 할때)
netstat -r 라우팅테이블 확인
netstat -s 프로토콜의 통계 정보 표시
netstat -v 정보를 자세히 해주는것
👇 더 자세한 내용
route
= 네비게이션 / 내 PC에서 외부로 나가 어디를 거쳐가야하는지 확인하는 것
내PC (DNS에서 받아온 domain 주소(www.naver.com) 의 ip주소 확인) -> Default Gateway (NIC) -> 공유기 -> 공유기의 route -> 통신사의 Route에서 www.naver.com의 ip주소에 가는 경로를 확인함 -> 그 경로에 맞추어서 naver 사이트로 이동
traceroute 도메인 -> 집에서 도메인까지 가는 경로, 네비게이션임
최대 30홉 이상의 경로 추적
traceroute google.com
현재 PC에서 거치는 라우트를 표시함
순서가 별로 안많다면 -> 우리집과 가까운곳에 도메인 서버가 있는거임
👇 더 자세한 내용
ping 도메인주소 : 네트워크 연결을 확인
서버에 한번에 많은 ping 을 보내서 과부하 걸리게 하는 공격이 있음
따라서 큰 회사들은 이걸 막음
윈도우는 n번까지만 하지만
리눅스는 끝없이 요청한다
👇 더 자세한 내용
dig 도메인 도메인에 대한 정보를 알려줌
dig -t mx 도메인
👇 더 자세한 내용
host도메인
도메인명은 알고 있는데 ip주소를 모르거나 혹은 그 반대의 경우에 사용하는 명령어
👇 더 자세한 내용
nslookup
네트워크 디버깅을 위해 자주 사용되는 리눅스 명령어로, DNS 서버에 직접 DNS 쿼리를 하고 그 결과를 출력한다
DNS 설정이 정상적인지, 혹은 DNS 서버가 정상적으로 동작하고 있는지, 네트워크가 의도한대로 설정되어있는지 등을 확인함
👇 더 자세한 내용
sudo systemctl
프로그램을 제어하는 명령어이다
sudo systemctl restart 재부팅
sudo systemctl stop nginx 종료
sudo systemctl stop nginx 시작
👇 더 자세한 내용
nginx 접속 html 수정하기
sudo nginx -t 환경설정 현재 값의 위치
nginx 설정파일을 찾아간다
ls -al /etc/nginx
.conf -> 환경설정 파일
nginx 홈페이지를 보면 문서를 보면 해당 내용에 대한 뜻이 있음
include = 여기를 참조하고 있다 --> 이동 / Virtual에 대한 내용이 참조하는 위치로 이동
default 파일이 /etc/nginx/sites-available에 있다는 뜻
다시 이동
default 파일을 수정한다
읽기전용이라 수정 안됨 -> sudo vi default 로 하기
사용하는 index.html 파일의 위치를 바꾼다 (해당 위치에 내가 만든 index.html 문서를 넣어둘것임)
해당 디렉터리에 인덱스로 사용할 html 파일을 만든다
nginx 재시작
sudo systemctl restart nginx
index 바뀜
VS Code에서 작성한 파일 AWS 서버에 올리기
VS Code를 열고 index.html파일을 만든다
이후 해당 위치에서 cmd열기
ssh를 scp로 변경하여 붙여넣기 (원격으로 복사하는 명령어임)
키 위치 잘 넣기
scp -i 키페어 복사할 파일 ubuntu@~~:옮겨질 경로 적기 (띄어쓰기 주의)
scp -i "키페어 경로/keypair.pem" index.html ubuntu@13.52.0.61:~/www/html
클라우드 환경에서 확인
nginx 재시작 후 확인
HTML 파일 수정하고 수동 배포하기
변경할때 마다 scp 명령어로 배포 (수정 -> 배포 반복)
수정 후 scp 다시 입력
다시 재시작
적용 됨
자동배포 (DevOps) -> Git으로 올리고 배포 함
git에 올려놓으면 시간 맞춰서 클라우드 환경으로 올라감
오늘의 회고
- 네트워크부분은 여전히 머리가 아프지만 재미있었다
- 배포라는거를 처음 해봤는데 신기하기도 하고 이걸 어떻게 더 디밸롭할지 궁금했다
- nginx를 어떻게 수정한다는거지,,? 했는데 리눅스 상에서 디폴트파일을 수정하고 로컬에서 html을 만들어 올리니까 뭔가 신기했다
- 내일부터 2일은 취업특강이다~ ^______^
'Cloud > Cloud 공부일기' 카테고리의 다른 글
Day 31 - 가상화, 가상머신 만들기(Virtual Box, CentOS) (0) | 2022.02.21 |
---|---|
Day 30 - 클라우드, 가상화, 도커, 쿠버네티스 개념 (0) | 2022.02.18 |
Day 28 - Linux 기본 명령어 (0) | 2022.02.14 |
Day 27 - 운영체제(Linux) (2) | 2022.02.11 |
Day 26 - DevOps | AWS와 MySQL 연결하기 (0) | 2022.02.10 |