
Network
1) LAN(Local Area Network)
- 근거리 통신 망
- 구성하는 기술
- Router
- 네트워크 출입구가 되는 부분에 설치하는 기기
- 일방향으로 들어온 데이터의 목적지를 확인하고 목적지에 가까운 다른 네트워크에 데이터를 전송
- Hub
- Firewall(방화벽)
- 들어오고(인바운드) 나가는(아웃바운드) 데이터를 확인하고 통신 여부를 조정하는 장치
- 프록시 서버: 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해주는 컴퓨터 시스템이나 응용 프로그램을 가리키는데 서버 와 클라이언트 사이에 중계기
- DMZ: 인터넷과 같이 외부 네트워크 와 내부 네트워크의 중간에 설치하는 네트워크
- DHCP: 접속되어 있는 단말기에 자동으로 IP를 분배하는 장치
- Subnet: 하나의 네트워크를 작게 분할한 네트워크
2) IP Address
- 인터넷 상에서 단말기를 구별하기 위한 주소
- IP v4 와 IP v6 또는 Private IP 와 Publice IP 또는 Static IP 와 Dynamic IP 등으로 분류를 합니다.
- IP v4 는 32비트 주소 체계로 8비트씩 나누어서 10진수로 . 함께 표현
- 0.0.0.0 ~ 255.255.255.255 가능
- 클래스 별로 나누어서 사용
- 첫비트가 0 이면 A Class
- 첫비트가 1이고 두번째 비트가 1이면 B Class
- 첫번째 와 두번째 비트가 1이고 세번째 비트가 0이면 C Class
- 지금도 이 표현법을 사용하지만 실제로는 주소의 개수가 부족해서 IP v6 를 사용
- IPv6 는 4비트 씩 4개씩 끊어서 :: 으로 구분해서 8개의 영역으로 표기
- Private IP는 내부 망에서 서로를 구분하기 위한 IP
- 10 으로 시작하거나 17.16 으로 시작하거나 192.168 로 시작하면 Private IP
- Public IP는 모든 망에서 서로를 구분할 수 있는 유일한 IP
- 내부 망 이외에서 접속을 할려면 Public IP 가 할당되어 있어야 합니다.
- Static IP 는 변경되지 않은 IP
- 서비스를 제공하는 경우는 일반적으로 public ip 와 static ip 의 성격을 갖는 ip가 있어야 합니다.
- Dynamic IP 는 수시로 변경되는 IP
- Elastic IP는 AWS에서 서비스 별로 Static IP 형태로 탄력적으로 부여하는 IP
3) Domain Name 과 DNS
- IP는 숫자로 되어 있고 숫자는 사람이 기억하기 어렵습니다.
- 숫자로 된 IP 에 의미있는 이름을 부여할 수 있는데 이것이 Domain Name
- Domain Name을 IP 와 매핑시켜주는 서비스를 DNS(Domain Name Service)라고 합니다.
- Route 53 이라는 서비스가 AWS 에서 DNS 역할을 수행합니다.
4) VPN(Virtual Private Network)
- 공중 네트워크를 통해 한 회사나 몇몇 단체가 내용을 외부에 들어내지 않고 통신할 목적으로 사용하는 사설 통신망
- 최근의 대기업 업무망은 대부분 VPN으로 구성되어 있습니다.
- 원격 근무를 하고자 하는 상황에서는 VPN은 필수
- 업무 때문이 아니라 차단된 사이트에 접근하기 위한 목적으로 VPN을 사용하기도 합니다.
- Amazon에서는 VPC 라는 서비스로 제공
- 하나의 VPC로 묶으면 하나의 네트워크로 묶인 효과가 발생하게 됩니다.
- 데이터베이스 서비스를 생성하고 EC2 와 같은 OS 서비스를 선택한 상태에서 EC2에서 데이터베이스에 접속을 할려면 하나의 VPC 로 묶던가 데이터베이스를 public 에서 접속할 수 있도록 해주어야 합니다.
- VPC 기능
- CIDR 블록: 서브넷을 의미하는데 네트워크를 나눈 범위로 VPC를 생성할 때 네트워크 범위를 CIDR로 정하고 이를 더 작은 서브넷으로 나누어 사용
- AWS를 이용하다 보면 기본적으로 인바운드가 막혀있는데 이 때 인바운드 규칙을 설정하게 되는데 CIDR을 이용합니다.
- 0.0.0.0/0: 모든 IP를 허용 - 맨 뒤에 0은 이 만큼은 일치하는 것만 허용한다라는 의미
하나도 일치하지 않아도 되기 때문에 모든 IP가 됩니다.
- 0000000.00000000.00000000.00000000 / 0
- 0.0.0.0/1-> 맨 앞의 첫비트는 같아야 합니다.
- 0.0.0.0 ~ 127.255.255.255 는 허용
- Subnet Mask: 동일한 네트워크 크기를 계산하기 위한 값
- IPv4/비트수 형태로 작성하는데 비트수 만큼이 같으면 동일한 네트워크로 간주
- 192.168.0.0/24 - 192.168.0.0 과 앞의 24비트가 같으면 동일한 네트워크로 간주해서 라우터를 통하지 않고 직접 내부 통신이 가능
- 컴퓨터에 설정할 때는 24 대신에 255.255.255.0 으로 설정합니다.
- 가용 영역: 서브넷이 구축된 물리적 장소
- 인터넷 게이트웨이: 인터넷에 접속하기 위한 출입구
- 보안 그룹: AWS가 제공하는 가상의 방화벽으로 인스턴스 단위로 설정하고 유입되는 데이터는 기본적으로 거부
- 유입되는 데이터를 받고자 하면 보안 그룹에 CIDR 형태로 블록을 추가해서 허용을 하는 인바운드 규칙을 만들어 주어야 합니다.
- 네트워크 ACL(Access Control List): AWS가 제공하는 가상의 방화벽으로 서브넷 단위로 설정
5) Peering
- VPC 와 VPC 끼리 연결하는데 사용하는 기술
- 처음에는 Public Access 를 주로 이용
6) 기본 VPC
- AWS에서는 기본적으로 VPC를 제공
- 네트워크 범위는 172.31.0.0/16 으로 제공
- 172.31 로 만 시작하면 모두 동일한 네트워크로 간주해서 별도의 설정없이 통신이 가능
7) IP Masquerade
- LAN 내부의 PC에는 전부 사설 IP 주소를 할당하고 외부로 나갈 때는 사설 IP 주소를 공인 IP 주소로 변환해서 사용
- 이 때 주소 변환을 담당하는 것을 IP 마스커레이드라고 하고 이를 NAT(Network Address Translation) 라고 합니다.
8) 알려진 포트
- 기본적으로 설정해서 사용하는 포트
- 메일: 25, 110, 143
- 웹: 80, 443
- SSH: 22
- FTP: 20, 21
- DNS: 53
- 원격 데스크 탑: 3389
- 데이터베이스: SQL Server(1433), Oracle(1521), MySQL 과 MariaDB(3306), Postgre SQL(5432), Mongo DB(27017), Redis(6379)
- 기타: 여러 애플리케이션이 8080, Spark(7077)
9) End Point
- VPC 내부에서 외부로 접속하기 위한 연결점
- 외부에서 AWS 인스턴스에 접속하기 위해서는 AWS 인스턴스의 End Point를 알아야 합니다.