diff --git "a/AWS/NETWORK/NAT \352\262\214\354\235\264\355\212\270\354\233\250\354\235\264\353\245\274 \354\202\254\354\232\251\355\225\234 \355\224\204\353\235\274\354\235\264\353\271\227 \354\204\234\353\270\214\353\204\267\354\235\230 \354\231\270\353\266\200 \354\235\270\355\204\260\353\204\267 \354\240\221\352\267\274.md" "b/AWS/NETWORK/NAT \352\262\214\354\235\264\355\212\270\354\233\250\354\235\264\353\245\274 \354\202\254\354\232\251\355\225\234 \355\224\204\353\235\274\354\235\264\353\271\227 \354\204\234\353\270\214\353\204\267\354\235\230 \354\231\270\353\266\200 \354\235\270\355\204\260\353\204\267 \354\240\221\352\267\274.md" new file mode 100644 index 0000000..a569700 --- /dev/null +++ "b/AWS/NETWORK/NAT \352\262\214\354\235\264\355\212\270\354\233\250\354\235\264\353\245\274 \354\202\254\354\232\251\355\225\234 \355\224\204\353\235\274\354\235\264\353\271\227 \354\204\234\353\270\214\353\204\267\354\235\230 \354\231\270\353\266\200 \354\235\270\355\204\260\353\204\267 \354\240\221\352\267\274.md" @@ -0,0 +1,36 @@ +### 목차 +- [[#문제 상황]] +- [[#문제 설명]] +- [[#해결 방법]] +- [[#참고]] +### 문제 상황 +인터넷 게이트웨이에 대한 경로를 가진 퍼블릭 서브넷을 활용해 프라이빗 서브넷의 인스턴스에 외부 인터넷 접근을 허용해야한다. +### 문제 설명 +프라이빗 서브넷은 보안상의 이유로 인터넷 게이트웨이를 통해 직접 인터넷에 접근할 수 없도록 설계되었습니다. +하지만 외부 서비스(소프트웨어 업데이트 등)에 접근이 필요할 경우가 존재할 수 있습니다. +이때 프라이빗 서브넷은 외부로의 인터넷 접근이 불가능함으로, 아예 외부 네트워크를 사용할 수 없습니다. +즉 여기서 원하는 상황은 외부에서 프라이빗 서브넷으로 접근은 막고, 프라이빗 서브넷에서 외부로 접근은 허용하는 방법을 찾는 중입니다. +### 해결 방법 +퍼블릭 서브넷 중 하나에 NAT 게이트웨이를 생성하고, 탄력적 IP 주소를 생성하고 NAT 게이트웨이와 연결합니다. +프라이빗 서브넷과 연결된 라우팅 테이블에 NAT 게이트웨이를 대상으로 하는 인터넷 트래픽에 대한 경로를 추가합니다. + +![[스크린샷 2024-07-14 오전 12.43.56.png]] +다음과 같은 순서로 작동할 수 있습니다. +1. 인스턴스 1에서 외부 인터넷으로 요청을 전송 +2. 프라이빗 서브넷에 있는 라우팅 테이블에 있는 설정대로 퍼블릭 티어에 있는 NAT 게이트웨이로 이동 +3. NAT 게이트웨이는 요청을 자신의 공인 IP로 변경하여 인터넷 게이트웨이를 통해 외부 인터넷을 전송 +4. 응답이 들어오면 NAT 게이트웨이가 이 응답을 프라이빗 서브넷으로 전달 + + +### 참고 +결국 해당 챕터에서 말하고 싶은 부분은 인터넷의 아웃바운드 엑세스를 허용하면서 내부 리소스에 대한 인바운드 엑세스는 허용하지 않는 서브넷 계층의 네트워크 아키텍처를 구성합니다. + +NAT 게이트웨이를 통과하는 모든 통신은 연결한 EIP 주소를 가진다. +따라서 외부 공급업체의 허용 목록에 IP를 추가해야하는 경우 NAT 게이트웨이의 EIP를 화이트리스트로 등록할 수 있습니다. (EIP는 프로비저닝된 상태를 유지하는 한 바뀌지 않는다.) +예시) + [페이플](https://www.payple.kr/)이라는 간편 결제 회사에선 서비스에서 보안상의 이유로 서버에 접속할 수 있는 IP를 1개만 허용합니다. (이외의 접근하는 IP는 차단) + 일반적으로 AWS를 사용하면 서버에서 나가는 아웃바운드의 IP는 계속 변동될 수 있기 때문에 NAT 게이트웨이를 사용하여 아웃바운드로 나가는 IP를 고정적으로 EIP로 발급받은 값으로 유지할 수 있습니다. + + +IPv6를 지원하는 VPC를 생성한 경우에는 [송신 전용 인터넷 게이트웨이](https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/egress-only-internet-gateway.html)를 참고하면 프라이빗 서브넷에 대한 아웃바운드 트래픽을 허용하는 아웃바운드 전용 인터넷 게이트웨이를 생성할 수 있습니다. + diff --git "a/AWS/NETWORK/\353\263\264\354\225\210 \352\267\270\353\243\271\354\235\204 \354\260\270\352\263\240\355\225\264 \353\217\231\354\240\201\354\234\274\353\241\234 \354\240\221\352\267\274 \352\266\214\355\225\234 \353\266\200\354\227\254.md" "b/AWS/NETWORK/\353\263\264\354\225\210 \352\267\270\353\243\271\354\235\204 \354\260\270\352\263\240\355\225\264 \353\217\231\354\240\201\354\234\274\353\241\234 \354\240\221\352\267\274 \352\266\214\355\225\234 \353\266\200\354\227\254.md" new file mode 100644 index 0000000..5db4d7f --- /dev/null +++ "b/AWS/NETWORK/\353\263\264\354\225\210 \352\267\270\353\243\271\354\235\204 \354\260\270\352\263\240\355\225\264 \353\217\231\354\240\201\354\234\274\353\241\234 \354\240\221\352\267\274 \352\266\214\355\225\234 \353\266\200\354\227\254.md" @@ -0,0 +1,32 @@ +### 목차 +- [[#문제 상황]] +- [[#문제 설명]] +- [[#해결 방법]] +- [[#참고]] +- [[#레퍼런스]] +### 문제 상황 +2개의 인스턴스로 구성된 애플리케이션 그룹 사이에 SSH를 허용해야한다. 또한 향후 인스턴스 수가 증가해도 이를 손쉽게 적용할 수 있어야한다. +### 문제 설명 +새로운 인스턴스가 추가될 때마다 수동으로 보안 그룹 규칙을 업데이트하는 방법은 번거롭고 오류가 발생할 가능성이 높습니다. +또한 여기서 말하는건 보안 그룹을 한 번에 적용하는 것을 원합니다. +### 해결 방법 +동일한 보안 그룹을 여러 EC2 인스턴스의 ENI(Elastic Network Interface)에 연결하더라도 이들 간의 통신은 불가능합니다. +![[스크린샷 2024-07-14 오전 1.20.37.png]] +보안 그룹을 생성하고 두 EC2의 인스턴스의 ENI에 연결합니다. 마지막으로 보안 그룹이 TCP 포트 22에 도달에 승인하는 수신 규칙을 생성합니다. +![[스크린샷 2024-07-14 오전 1.20.49.png]] + + +### 참고 +기존에는 정적 참고 방식으로 [CIDR](https://aws.amazon.com/ko/what-is/cidr/) 범위를 조정하여 방화벽을 구성하였지만, 이 경우는 인스턴스를 추가하거나 삭제하는 경우 동적으로 변경하기 어렵기 때문에 확장성이 떨어진다. +또한 여러 보안 그룹을 하나의 ENI와 연결할 수 있다. + +> [!info] 보안 그룹을 삭제할 수 없는 경우 +> - 현재 ENI에 연결되어있는 경우 +> - 다른 보안 그룹(자신 포함)에서 참고하고 있는 경우 + +또한 우리가 평소에 ec2 인스턴스를 만들 때 이런 식으로 만들어진다고 생각하지만 +![[Pasted image 20240714011353.png]] +실제로는 다음과 같은 형태로 만들어진다. +![[Pasted image 20240714011336.png]] +### 레퍼런스 +- [# ENI란? 쉽게 개념 및 특징 정리](https://jibinary.tistory.com/133#Elastic%C2%A0Network%C2%A0Interface-1) diff --git a/Pasted image 20240714011336.png b/Pasted image 20240714011336.png new file mode 100644 index 0000000..2105c29 Binary files /dev/null and b/Pasted image 20240714011336.png differ diff --git a/Pasted image 20240714011353.png b/Pasted image 20240714011353.png new file mode 100644 index 0000000..9de58d4 Binary files /dev/null and b/Pasted image 20240714011353.png differ diff --git "a/review/week18/\354\213\254\354\203\201\355\230\204.md" "b/review/week18/\354\213\254\354\203\201\355\230\204.md" new file mode 100644 index 0000000..6cf765d --- /dev/null +++ "b/review/week18/\354\213\254\354\203\201\355\230\204.md" @@ -0,0 +1,23 @@ +#### S3 +- S3는 Flat하다는 것이 놀라웠다. + - 보기에는 계층적으로 디렉토리 및 여러가지 정보가 있는 줄 알았지만, 그것은 논리적인 부분이고 실제로는 key,value 형태로만 구분되는 것이고 디렉토리라는 것이 없다는 것을 알았다. +- 확실히 약간 느리지만 큰 용량의 데이터를 처리하기에 좋아서 이미지나 영상 같은 정보를 올리기 좋은 것 같다. +- Lambda를 사용하면 해당 source code를 s3에 올리고 배포하도록 설정하는 것도 추가로 알았다. +#### CloudFront +- CDN (Content Delivery Network) +#### CloudWatch +- AWS 내의 리소스 사용 및 이벤트 등을 실시간으로 모니터링 할 수 있도록 도와주는 서비스 +- CPU 사용량, 디스크 사용량, 네트워크 사용량 등을 파악하거나, 대시보드도 구성 가능 +#### Amazon VPC를 사용해 프라이빗 가상 네트워크 생성 +- VPC에 IGW로 연결되는 망이 없으면 프라이빗 네트워크가 됩니다. +#### CloudFront를 사용해 S3에서 안전하게 웹 콘텐츠 제공 +- AWS에서 제공하는 CDN 서비스인 CloudFront를 안전하게 사용하는 방법에 +#### 서브넷과 라우팅 테이블을 포함한 네트워크 티어 생성 +- CIDR 블록을 활용해서 다른 서브넷을 생성하고, 라우팅 테이블을 포함하여 두 서브넷을 활용할 수 있습니다. +#### 인터넷 게이트웨이를 사용해 VPC를 인터넷에 연결 +- 처음에는 public cloud에 배포한다는 것이 뭔가 특별한 일이 생기는 것인줄 알았으나, 단순하게 vpc 자체에 router, 그리고 경로에 인터넷 게이트웨이를 설치하면 public으로 만들어진다는 것을 알았습니다. +#### NAT 게이트웨이를 사용한 프라이빗 서브넷의 외부 인터넷 접근 +- 프라이빗 서브넷은 외부/내부 모두 접근이 불가능한데 외부에서 들어오는 접근은 막고, 내부에서 나가는 접근은 허용하는 방법에 대해서 배웠습니다. +- NAT 게이트웨이를 올바르게 사용하는 방법에 대한 내용인 것 같아 좋았습니다. +#### 보안 그룹을 참고해 동적으로 접근 권한 부여 +- 옛날 먼 시절에는 보안그룹이 없었을 때는 어땠을 까라는 생각이 문득 들었습니다... \ No newline at end of file diff --git "a/\354\212\244\355\201\254\353\246\260\354\203\267 2024-07-14 \354\230\244\354\240\204 1.20.37.png" "b/\354\212\244\355\201\254\353\246\260\354\203\267 2024-07-14 \354\230\244\354\240\204 1.20.37.png" new file mode 100644 index 0000000..3baae2b Binary files /dev/null and "b/\354\212\244\355\201\254\353\246\260\354\203\267 2024-07-14 \354\230\244\354\240\204 1.20.37.png" differ diff --git "a/\354\212\244\355\201\254\353\246\260\354\203\267 2024-07-14 \354\230\244\354\240\204 1.20.49.png" "b/\354\212\244\355\201\254\353\246\260\354\203\267 2024-07-14 \354\230\244\354\240\204 1.20.49.png" new file mode 100644 index 0000000..46d1603 Binary files /dev/null and "b/\354\212\244\355\201\254\353\246\260\354\203\267 2024-07-14 \354\230\244\354\240\204 1.20.49.png" differ diff --git "a/\354\212\244\355\201\254\353\246\260\354\203\267 2024-07-14 \354\230\244\354\240\204 12.43.56.png" "b/\354\212\244\355\201\254\353\246\260\354\203\267 2024-07-14 \354\230\244\354\240\204 12.43.56.png" new file mode 100644 index 0000000..a86a865 Binary files /dev/null and "b/\354\212\244\355\201\254\353\246\260\354\203\267 2024-07-14 \354\230\244\354\240\204 12.43.56.png" differ