2024.08.15 - [DevOps/AWS] - [AWS] Amazon 클라우드 시작하기
[AWS] Amazon 클라우드 시작하기
클라우드 이해 Cloud는 IT 자원(서버, 스토리지, 애플리케이션 등)에 네트워크(인터넷) 연결을 통해 접근하여 사용할 수 있도록 해주는 모델이다.굳이 클라우드 서비스를 이용해야 할 이유?선투자
lsdiary.tistory.com
AWS의 입문자라면 계정 생성부터 간단한 서비스 종류까지 알아볼수 있는 내용을 이전 포스팅에서 소개했다.
이번 포스팅은 AWS에서 제공하는 서비스는 어떤것인지 조금 더 구체적으로 살펴보겠다.
기본용어
- Region
- AZ(가용 영역) : 리전 내 위치한 물리적으로 독립된 복수 개의 데이터 센터 - 아시아(서울)의 경우 a, b, c, d 4개의 데이터센터(가용영역)로 구성
** 서브넷 마스크에 대한 내용은 따로 공부해오길 추천한다.
웹 서버를 직접 운영한다고 생각해보자. 몇개의 웹서버를 운영하는 것이 좋을까? 가용성을 위해서 반드시 2개이상의 웹서버를 운영해야한다! -> 이를 통해 클라이언트는 하나의 서버에 문제가 생기더라도 정상 작동하는것으로 인지할수 있다.
- VPC(Virtual Private Cloud) : AWS의 가상 네트워크 서비스로, 완벽하게 격리된 가상 네트워크이다.
- 격리된? 이게 무슨 소리지? 예를 들어 보자. 내가 아시아(서울) 대역에 VPC를 만들었다고 가정하면, 전세계 수많은 개발자 중 다른 사람도 똑같은 아시아(서울) 대역에 VPC를 만들수도 있을 것이다. 이렇게 만들어도 서로 완벽히 격리되어 있기 때문에 아무 걱정할 필요가 없는 것이 바로 VPC이다.
- defalut VPC : 자동으로 생성되는 VPC이다. (초심자용 패키지 같은 느낌)
- 172.31.0.0/16 -> 모든 리전에서 지원되기 때문에 보안 취약
- 최대 65536개의 프라이빗 IPv4 주소를 제공
- 네트워크 운영을 위한 퍼블릭 서브넷, 인터넷 게이트웨이, 라우팅 테이블이 모두 설정되어 있다.
- 사용자 정의 VPC : 현업에서는 이렇게 사용한다고 한다.
- ex. 10.0.0.0/16 (최대 65536개의 프라이빗 IPv4 주소를 제공)
- default VPC와 다르게 사용자가 별도 구성 해줘야함
- Subnet : VPC를 논리적으로 나눈 네트워크, 하나 이상의 IP block으로 나눠서 가용영역에 따라 구분
- Public : 외부와 직접 통신이 가능한 네트워크 영역
- Private : 외부와 직접 통신이 불가능한 네트워크 영역, 높은 보안성을 요구하는 서버를 여기에 생성
- Internet Gateway(IG) : VPC와 인터넷간의 통신을 지원 (서버로 들어가는 입구)
- public IP가 할당되어야 함
- Routing Table : 서버 <-> 외부 통신을 하기 위한 테이블 (서버로 찾아가는 길)
- 라우팅 테이블에 인터넷게이트에 대한 경로가 있어야 서브넷의 서버들은 외부 통신 허용
- 인바운드 규칙 : IG -> 서버
- 아웃바운드 규칙 : 서버 -> IG
- NAT Gateway (Network Address Translation) : 인스턴스의 소스 IP 주소를 NAT 게이트웨이의 IP주소(Public IP 주소)로 바꿈
- NAT를 사용하면 Private Subnet에 생성된 서버들이 인터넷에 연결할 수 있다. -> 외부에 Private Subnet의 서버의 IP주소가 외부에 노출되지 않는다.
- Public Subnet에서 NAT를 생성하고, 생성시 Public IP 를 할당해야 한다.
- 최종적으로 IG를 통해 외부와 통신할수 있게 된다.
- 프리티어 서비스에 해당하지 않는다! -> $0.045 / 시간
AWS 네트워크 직접 사용해보기
https://docs.aws.amazon.com/vpc/latest/userguide/default-vpc-components.html
Default VPC components - Amazon Virtual Private Cloud
Amazon creates the above resources on your behalf. IAM policies do not apply to these actions because you do not perform these actions. For example, if you have an IAM policy that denies the ability to call CreateInternetGateway, and then you call CreateDe
docs.aws.amazon.com
AWS 공식문서를 보면 Default VPC에 대해서 설명하는 걸 볼 수 있다.
IAM 계정으로 접속해서 직접 확인해보자.
> 아무것도 안했는데 Default로 뭔가가 만들어져 있는것을 확인할수 있다.
- 각 서브넷의 2^20 개 IP 주소는 4096개
- AWS가 예약한 IP 주소를 제외하고 사용가능한 IP주소는 4091개 사용가능
라우팅 테이블
- 0.0.0.0/0 : 외부 인터넷을 의미한다. -> IG와 연결되어있으므로 IG는 외부 인터넷과 통신이 가능하다.
- 보안상 위험하므로 무조건 사용자 지정 VPC를 만들어서 사용하자!
사용자 정의 VPC 만들기
- VPC : test1vpc-ap2-vpc. 10.0.0.0/16
- Subnet : test1vpc_subnet_pub_a
- public, private 각각 2개씩(가용영역 A, C) 10.0.0.0/24
- NAT : 2개의 private subnet 연결
위와 같은 조건으로 생성해보겠다.
> VPC 접속
> VPC 생성 클릭
> VPC 등을 선택하면 위에 언급했던 요소들을 한번에 만들수 있다.
- 복잡한 아키텍처의 경우 따로 만드는게 효율적이라고 한다.
테스트하는것이므로, 나는 VPC 등으로 간단하게 테스트해보겠다.
> 가용영역 A, C
> private subnet 때문에 NAT 자동 생성
> NAT 게이트웨이 1개 -> 과금때문
> VPC 엔드포인트 -> 아직 S3 안할거라서 없음 체크
> VPC 생성
> VPC 보기 클릭
> 나머지 리소스들도 생성된것을 확인가능
>> 외부와 통신할수 있는 네트워크 구축 완료!
'DevOps > AWS' 카테고리의 다른 글
[AWS] Amazon EC2 원격 로그인 (0) | 2024.08.16 |
---|---|
[AWS] Amazon EC2 인스턴스 만들기 (3) | 2024.08.15 |
[AWS] Amazon 클라우드 시작하기 (0) | 2024.08.15 |
백엔드 아키텍처 간단히 알아보기 (DDD, MSA, 멀티모듈) (0) | 2024.08.06 |
Spring + AWS S3 사용해서 사진 올리기 (0) | 2024.07.05 |