Skip to content

Commit

Permalink
Merge pull request #8 from SSUMC-6th/sof/#5
Browse files Browse the repository at this point in the history
[sof] Chapter 2. AWS (VPC & Internet Gateway & EC2)
  • Loading branch information
ryogaeng authored Apr 18, 2024
2 parents 801b4df + 67b4a98 commit c2e04ab
Show file tree
Hide file tree
Showing 13 changed files with 77 additions and 0 deletions.
Binary file added .DS_Store
Binary file not shown.
Binary file added docs/.DS_Store
Binary file not shown.
Binary file added docs/chapter2/.DS_Store
Binary file not shown.
77 changes: 77 additions & 0 deletions docs/chapter2/Ch02Keyword.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
## AWS VPC
#### VPC(Virtual Private Cloud)가 필요한 이유?
![](../image/ch2_img_1.png)
#### VPC가 없다면 EC2 인스턴스들이 서로 연결되고 인터넷과 연결된다. 이런 구조는 시스템 복잡도를 향상하고, 하나의 인스턴스만 추가되더라도 모든 인스턴스를 수정해야하는 불편함이 생긴다.
![](../image/ch2_img_2.png)
#### 이와 같이 VPC를 적용하면 VPC별로 네트워크를 구성할 수 있고, 각각의 VPC에 맞춤형 네트워크 설정이 가능하다. 이러한 구조의 VPC는 각각의 독립된 네트워크처럼 동작한다.
- - -
## VPC에서 사용하는 사설 IP대역
- 10.0.0.0 ~ 10.255.255.255(10/8 prefix)
- 172.16.0.0 ~ 172.31.255.255(182.16/12 prefix)
- 192.168.0.0 ~ 192.168.255.255(192.168/16 prefix)
- - -
## 리전과 가용영역
#### AWS에서 리전(Region)과 가용영역(Availability Zone)은 클라우드 infrastructure을 구성하는 중요한 요소이다.
## 리전
- AWS에서는 전 세계에 여러 개의 리전을 운영중이고, 각 리전은 하나 이상의 데이터 센터로 구성되어 있다.
- 지리적으로 분산되어있으며 사용자는 자신의 어플리케이션과 데이터를 가장 가까운 리전에 배포함으로써 장거리에서 오는 단점들을 보완할 수 있고, 성능을 최적화할 수 있다. 한국의 경우 서울에 존재한다.
- 리전은 독립적인 서비스 운영으로 이뤄지므로 한 리전에서의 문제가 다른 리전에 영향을 미치지 않는다.
## 가용영역
- 각 리전은 하나 이상의 가용영역을 포함한다. 가용영역은 물리적으로 격리된 데이터 센터 그룹이라고 보면 좋다.
- 가용영역은 서로 다른 가용영역과 격리되어 있지만, 동일한 리전 내에 위치하므로 낮은 레이턴시와 고가용성을 제공한다.
- 레이턴시(latency) : 시스템에서 데이터가 전송되는데 걸리는 시간이다. 일반적으로 네트워크 레이턴시는 데이터가 송수신되는 데에 걸리는 시간을 측정하는데 사용된다. 레이턴시가 낮을수록 데이터 전송이 빠르게 이뤄지므로 사용자는 빠른 응답 시간을 경험할 수 있다.
- 고가용성(high availability) : 시스템이 장애나 오류에도 불구하고 지속적으로 작동할 수 있는 능력을 의미한다. 즉 시스템이 사용 가능한 상태를 유지하고, 사용자에게 서비스를 계속 제공할 수 있는 능력이다. 흔히 고가용성을 달성하기 위해서는 장애가 발생했을 때 시스템이 자동으로 복구되거나 대체 시스템으로 전환될 수 있어야 한다. 고가용성을 갖춘 시스템은 사용자에게 지속적인 서비스 제공을 보장하여 비즈니스 연속성을 유지할 수 있다.
- - -
## 서브네팅
#### : IP주소 낭비를 방지하기 위해 원본 네트워크를 여러 개의 서브넷으로 분리하는 과정을 말한다.
#### 즉 서브넷 마스크의 bit수를 증가시키고, 할당 가능한 host수를 감소시키는 것으로 이해하면 좋다. 예시는 다음과 같다.
![](../image/ch2_img_3.png)
- - -
## 라우팅(Routing)
#### : 패킷 헤더에 존재하는 주소와 각종 정보를 토대로 목적지까지 패킷을 전송하는 일련의 과정이다. 이 때 라우터 장비가 데이터의 목적지가 어디인지 확인하여 가장 빠르고 정확한 최적의 경로를 찾아내어 효율적으로 전송한다.
- - -
## About IP
### 사설 IP의 등장 배경
#### : 간단하게 말하면 IP주소의 부족이라고 말할 수 있다.
#### IPV4를 사용하면 IP는 32bit로 이루어진 주소를 사용할 수 있으며, 이를 합산해보면 약 43억개의 주소를 가질 수 있는 것이다. 하지만 인터넷 수요가 점점 늘어남에따라 IP주소가 부족한 현상이 일어났다. 이를 해결하기 위해 사설 IP라는 개념이 탄생했다.

### 고정 IP / 사설 IP / 공인 IP / 유동 IP

#### 고정 IP
#### : 말 그대로 변하지 않고, 컴퓨터에 고정적으로 부여된 IP이다.
한 번 부여되면 IP를 반납할 때까지 다른 장비에 부여할 수 없는 고유의 IP로 보안성이 우수하기 때문에 보안이 필요한 업체나 기관에서 사용한다.

### 유동 IP
#### : 말 그대로 변하는 IP이다.
인터넷 사용자 모두에게 고정 IP를 부여해주기는 어려우므로, 일정한 주기 또는 사용자들이 인터넷에 접속하는 매 순간마다 사용하지 않는 IP주소를 임시로 발급해주는 IP이다.

### 공인 IP
#### : 임의로 우리가 부여하는 것이 아니라 전 세계적으로는 ICANN이라는 기관이 국가별로 사용할 IP 대역을 관리하고, 우리나라의 경우에는 한국인터넷진흥원(KISA)에서 국내 IP 주소들을 관리하고 있다.
이것을 ISP(Internet Service Provider : SKT, KT, LG와 같은 통신업체)가 부여 받고, 우리는 이 회사에 가입하여 IP를 제공받아 인터넷을 사용하는 것이다.

### 사설 IP
#### : 공유기를 사용한 인터넷 접속 환경일 경우 공유기는 공인 IP를 할당받지만, 공유기에 연결된 가정 및 회사의 디바이스는 사설 IP를 할당받는다.
![](../image/ch2_img_4.png)

### 사설망의 원리

#### 사설망(Private Network)은 지정된 대역의 IP만 사용이 가능하다(앞서 AWS VPC의 사용 가능한 대역 자료 참고).
#### 아래 그림을 통해 이해하도록 하자.
![](../image/ch2_img_5.png)

- - -

## 포트포워딩
### 포트포워딩의 목적
#### : 네트워크 라우터 또는 방화벽에서 특정 포트로 들어오는 트래픽을 내부 네트워크의 다른 주소와 포트로 전달하는 기능이다. 이는 주로 NAT(Network Address Translation) 환경에서 내부 네트워크의 서버가 외부 인터넷에서 접근 가능하도록 설정할 때 사용된다.

### 포트포워딩 예시
#### : 외부에서 접근하는 HTTP 요청을 포트 80으로 받아 내부 네트워크의 다른 컴퓨터의 포트 8080으로 전달하는 경우, 외부의 포트 80과 내부의 포트 8080이 포트 포워딩 규칙에 의해 연결된다.

### 그럼 TCP/UDP 소켓 프로그래밍의 포트와는 무엇이 다른가?
#### : 포트 포워딩에서의 포트와 소켓 프로그래밍에서의 포트는 기본적으로 ‘포트’라는 개념을 사용한다. 하지만 포트 포워딩은 네트워크 트래픽을 특정 경로로 유도하는 네트워크 설정의 일부이며, 소켓 프로그래밍은 이 포트를 사용하여 데이터 통신을 구현하는 프로그래밍적 접근이라는 차이가 있다.

- - -
## NAT(사설망 ↔ 외부)
![](../image/ch2_img_6.png)

Binary file added docs/chapter2/image/ch2_img_1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/chapter2/image/ch2_img_2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/chapter2/image/ch2_img_3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/chapter2/image/ch2_img_4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/chapter2/image/ch2_img_5.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/chapter2/image/ch2_img_6.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/.DS_Store
Binary file not shown.
Binary file added src/practice/chapter2/ch2_practice_1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/practice/chapter2/ch2_practice_2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit c2e04ab

Please sign in to comment.