-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
[sof] Chapter 2. AWS (VPC & Internet Gateway & EC2)
- Loading branch information
Showing
13 changed files
with
77 additions
and
0 deletions.
There are no files selected for viewing
Binary file not shown.
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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) | ||
|
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.