Introduction to Networking
Networking: 컴퓨터가 서로 소통하는 방법
문자 메시지를 보내든 인터넷을 검색하든 네트워크에서 상호 작용을 하는 것
What is Networking
computer network: 자원을 공유하기 위해 서로 연결된 두개 이상의 장치
노드(node): 네트워크의 장치
- host node: 일반적으로 네트워크의 서버 / client: 호스트 노드에 의존하는 노드
네트워크의 client는 shared data 또는 기타 서비스에 액세스하기 위해 host에 연결
네트워크는 모든 디바이스들의 연결과 그들 간의 통신을 가능하게 하기 위해 network connecting devices을 필요로 함
이 장치들은 노드들이 서로 통신하기 위해 사용하는 life source(생명원)
Network Components
Server
- 다른 컴퓨터 장치나 소프트웨어가 액세스할 수 있는 소프트웨어 서비스를 실행하는 physical computer
Router
- 여러 개의 네트워크 segments를 하나의 네트워크로 연결하는 네트워크 장치
- IP address가짐
Hub and switch
- 네트워크의 모든 노드 또는 여러 노드를 함께 연결하는 장치
Internet service provider (ISP)
Cloud
- 인터넷으로 IT 리소스의 on-demand delivery
Network nodes
- 서버에서 서비스에 액세스하는 컴퓨터 하드웨어 장치
OSI Model
OSI model : 컴퓨터가 서로 통신하는 방법을 관리하기 위한 protocols 또는 rules 모음
(너무 자세히 공부할필요는 x)
Layer 1: Physical layer
- 네트워크 노드를 연결하기 위해 transmission media를 통해 raw data를 전송하기 위한 표준을 정의
Layer 2: Data link layer
- WAN의 인접 네트워크 노드 or 동일한 LAN 세그먼트의 노드 간에 데이터를 전송하기 위한 표준을 정의
Layer 3: Network layer
- 다양한 네트워크를 통한 통신을 담당
- 하나 이상의 네트워크를 통해 소스에서 목적지 호스트로 variable-length(가변길이) network packets을 전송하는 수단을 제공
Layer 4: Transport layer
- 사용자 간에 투명한(transparent) 데이터 전송 제공
- upper layers에 안정적인 데이터 전송 서비스 제공
- 흐름 제어, 세분화 및 오류 제어를 통해 주어진 링크의 신뢰성을 제어
Layer 5: Session layer
– 사용자 응용프로그램 프로세스 간에 세션을 열고 닫고 관리하는 메커니즘을 제공
Layer 6: Presentation layer
- 추가 처리 또는 표시를 위해 포맷하고 정보를 응용프로그램 계층에 전달
- 응용프로그램이 허용하는 syntax(구문)을 기반으로 데이터를 변환
Layer 7: Application layer
- OSI 애플리케이션 계층과 사용자 모두가 소프트웨어 애플리케이션과 직접적으로 상호작용
- 사용자에게 가장 가까움
Network Models
일반적인 두 가지 네트워크 관리 모델:
- Peer-to-peer: 워크로드 분산을 목적으로 서로 연결된 컴퓨터 시스템
- Client-server: 데이터 관리 및 애플리케이션 호스팅을 서버에서 집중화(centralized)하여 클라이언트에 배포
Network Types
컴퓨터 네트워크의 가장 일반적인 두 가지 유형:
Local area networks (LANs) : 층, 건물, 캠퍼스와 같은 제한된 지리적 영역에 있는 장치들을 연결
- 일반적으로 장치를 연결할 때 Ethernet이더넷 표준을 사용
Wide area networks (WANs) : 여러 도시 또는 여러 국가와 같은 넓은 지리적 영역에 있는 장치를 연결
- 광섬유 케이블과 위성과 같은 기술 사용
- 인터넷은 가장 큰 WAN
Internet Protocol (IP) Addresses
IP 주소는 10진수 형식의 숫자 레이블
네트워크의 각 노드는 해당 노드를 식별하는 고유한 IP 주소를 가짐
IP Address Structure
IP 주소는 점으로 구분된 4개의 숫자 집합으로 구성
- 각각의 집합은 이진 형식으로 표현되는 8비트를 나타냄
- 기계가 이진 형식을 십진 숫자 형식으로 변환
- 4개의 섹션 → IP 주소의 길이는 32비트로 간주됨
IPv4 and IPv6 Addresses
IPv4 주소
- 예: 192.0.2.0
- 길이 32비트
- 최대 43억 개의 IP 주소 제공
- 보다 일반적으로 사용되고 확립됨
- 모든 VPN에서 지원됨(IPv6와 달리 현재는 지원되지 않음)
IPv6 주소
- 예: 2600:1f18:22ba:8c00:ba86:a05e:a5ba:00ff
- 길이 128비트
- 사실상 무제한의 IP 주소를 제공
- 더 많은 사용자 장치 수용
- 최종적으로 IPv4를 대체할 것
Classless Inter-Domain Routing (CIDR)
네트워크를 설정할 때 네트워크에 포함될 IP 주소의 범위를 결정해야 함
- 네트워크의 IP 범위를 정의하는 일반적인 방법은 CIDR 블록
Netmask
- 숫자는 network identifier에 대해 routing prefix 의 32비트 중 몇 비트를 고정하거나 할당해야 하는지 알려줌
- 네트워크에 사용 가능한 IP 수를 결정
CIDR Special Cases
Fixed IP address
- 32비트가 모두 고정
- Use case: 방화벽 규칙을 설정하고 특정 호스트에 액세스할 수 있도록 함
인터넷 CIDR 블록
- 32비트 모두 유연
- Use case : 인터넷 트래픽을 허용하도록 방화벽 규칙 설정
Subnets
서브넷은 네트워크 내의 네트워크
각 서브넷은 네트워크의 이 파티션에 대해 지정된 범위의 연속(consecutive) IP 주소로 구성됨
IP 주소가 다른 서브넷의 IP에 도달해야 한다면, 그 주소는 라우터를 통해 이동해야 함
서브넷 및 IP를 서브넷 내에 전략적으로 배치하여 네트워크 복잡성을 줄이고 네트워크 부하를 줄여 효율성 향상
Subnet CIDR Blocks
서브넷은 네트워크 내의 네트워크이므로 IP 주소를 정의하는 CIDR 블록 주소도 있어야 함
- 그러나 서브넷의 CIDR 블록은 네트워크의 CIDR 블록 내에 있어야 함
- 서브넷 CIDR 블록은 중복 불가
Planning Ahead
Subnet Types
Public subnets공용 서브넷
- 인터넷 게이트웨이를 통해 라우팅되는 인터넷 트래픽이 서브넷에 도달하도록 허용
- 고객을 대상으로 하는 웹 사이트가 있다면 좋은 선택
Private subnets 개인 서브넷
- 공용 인터넷에서 라우팅되는 서브넷에 대한 트래픽을 거부
- 네트워크가 네트워크 외부의 서비스에 연결해야 하지만 외부 서비스가 네트워크에 연결을 시작하지 못하도록 제한하는 경우 개인 서브넷을 사용해야 함
- 프라이빗 서브넷에서 퍼블릭 인터넷에 액세스하려면 NAT device 필요
Your Cloud in the Cloud
클라우드 공급자는 네트워크 센터를 클라우드로 전환할 수 있는 옵션을 제공
VPC(Virtual Private Cloud)는 클라우드 내에서 클라우드를 제공
- VPC를 사용하면 네트워크 및 보안 구성을 제어하여 specifications(기준)에 따라만 액세스 권한 부여 가능
Introduction to Amazon VPC
Amazon VPC는 리소스 배치, 연결 및 보안을 포함하는 완벽한 제어 기능을 제공하는 가상 네트워킹 환경
- AWS 계정에 전용의 logically isolated virtual network
Amazon VPC Architecture
Amazon VPC는 Region specific
- VPC는 하나의 Region에 국한됨. 여러 영역에 걸칠 수 X
각 지역 내에 여러 가용성 영역 존재
서브넷을 배치할 AZ와 해당 서브넷이 공용인지 개인용인지 선택
EC2, RDS와 같은 리소스를 적절한 서브넷으로 시작 가능
Default VPCs
AWS 계정을 설정하면 각 AWS 지역에서 기본 VPC가 자동으로 제공됨
- Default VPC- 해당 지역의 모든 AZ에 대한 public subnet 가짐
기본 VPC를 사용하거나 삭제하지 않는 것이 좋음
Amazon VPC Quotas
Amazon VPC 지역당 5개의 VPC로 할당량 제한
- 더 필요한 경우에는 티켓을 제출하여 숫자 늘릴수 있음
Amazon VPC Use Case
Amazon VPC의 주 usecase: multi-tier web applications을 호스팅
- Amazon VPC를 사용하여 웹 서버, 응용프로그램 서버 및 데이터베이스 간의 네트워크 연결 및 제한을 정의
가장 일반적인 multi-tier architecture는 presentation tier, logic or application tier, data tier으로 구성됨
- Presentation tier: 사용자가 웹 사이트 또는 앱과 상호 작용할 수 있는 위치.
- Logic tier: 컴퓨팅 프로세스가 발생하는 곳
- Data tier: 데이터가 저장되는 곳. 일반적으로 개인 서브넷에서 보호
Amazon VPC Multi-Tier Application Example
VPC Architectural Patterns
VPC 네트워크를 설계하는 방법은 네트워킹 요구에 따라 달라짐
Single VPC pattern
Multi-account pattern
- 여러 IT 팀을 보유한 대규모 조직 및 조직
- 액세스 및 표준을 관리하는 것은 복잡한 조직에서 더욱 어려움
Summary
▪ AWS 네트워킹 서비스 지식과 기술의 기초가 되는 네트워킹의 기초
▪ 컴퓨터 네트워크(computer network)는 자원을 공유하기 위해 서로 연결된 두개 이상의 장치를 말한다
▪ IP 주소는 네트워크 상의 노드를 식별하는 숫자 라벨이다
▪ 서브넷은 IP 주소 그룹으로 구성된 네트워크 내의 네트워크입니다
▪ VPC는 클라우드 내의 네트워킹 환경을 제공합니다
▪ Amazon VPC는 컴퓨팅 및 데이터베이스 인스턴스를 시작할 수 있는 경제적이고 유연하며 안정적인 환경입니다
▪ Amazon VPC는 멀티 계층 아키텍처를 지원하는 데 사용할 수 있습니다
▪ 추신: 기본 VPC를 설정하는 데 비용이 들지 않습니다