본문 바로가기
IT/AWS

AWS - Cloud Basic Theory, VPC

by 스마일엔지니어 2025. 1. 15.

클라우드란?

IT 서비스를 인터넷을 통해 접근해서 사용하는 데에 On-Demand 방식(원하는 만큼 그때그때 필요할때마다 가져감)을 사용한다!

 

Public Cloud 모두와 공유해서 사용
Private Cloud 내부망, 이해관계자들끼리만 사용 (범위 ), 사내 안에 클라우드 올려서 ERP를 가동 등
Hybrid Cloud 전용선, VPN 등 이용하여 외부에 공개하기 어렵지만 외부와 내부를 섞어서 사용할 때 
Multi Cloud 여러가지 여러 서비스를 연동할 필요성
(AWS 쓰다가 구글에 있는 서비스 사용하고 싶을 때)

 

 

-AWS Region

1. AWS 서비스 제공되는 물리적 위치

2. 전세계적으로 36개의 region으로 분리+구성

3. 리전마다 서비스를 구분하기 위해 고유 코드(식별 번호) 존재

  - 코드:  지역+지리적 위치+순번

  ex) ap-northeast-2  // ap: asia pacific

 

-AWS Availability Zones (가용 영역, AZ)

1. Region에 배치된 하나 이상의 데이터센터 그룹

2. 1개의 Region에는 최소 3개 이상의 AZ 구성

3. 1개의 AZ에는 1개 이상의 데이터 센터로 구성

4. 각 가용 영역은 상호 100 km 내외의 거리를 이격하여 구성 -> 재해, 재난에 방지하기위한 목적!!

  - 가용영역 간 네트워크는 전용선으로 연결

5. 가용영역 구분을 위한 고유코드 존재

  -코드: 지역+지리적 위치+순번+가용영역 코드

  ex) ap-northeast-2a

 

-ARN (Amazon Resource Name): 서비스를 고유하게 식별하기 위해서 부여하는 네이밍 컨벤션

 

Partition - Service - Region(Region code) - Account_id - Resource_type - Resource_id

 

만약에 region이 서울(내가 사는 곳)이 아니라면?미국 시민들을 대상으로 했을 때 접근 용이성을 위해 미국을 region으로 설정하기도 (+이중화 목적도 있음)

 

-시스템 개발환경 분류

Code →                                                                      →                                  →                               
Local
: 개발자 한 명 한명의 환경
Dev
: 동료들이 만든 코드를 확인(테스트)하기위해 만든 환경
Staging
: 운영환경(Production)이랑 99% 동일하게 만들어 놓음 // 1%는 데이터가 다름!!
QA
: 품질 점검, 권한/로그/명령어 들을 확인
Production
: 고객들이 실질적으로 접근할 환경, DEV와 달리 보안이 중요시 됨
                             ←                                      ←                                  ←                                  ←                             Data

 

 

*IAM (Identity and Access Management, AWS에서 매우 복잡한 것...)

: 누가 특정 서비스에서 접근할 수 있는가/없는가를 관리해줌

 

누가 (Identity - 보안주체/Principal)

- Root User (디폴트로 만들어지는 유저): 모든 권한 있음, 초기 설정 후 사용하지 않는 걸 권장 (계정 탈취당하면 애써 만든게 다 사라지기 때문+과금), 이메일 정보가 id값이 됨

 

- IAM User: 루트 유저로 생성됨. 생성 -> ID와 PASSWORD 발급되고 이걸 통해 접근, 장기자격증명(id와 password 자체가 장기적으로 바뀌지 X -> IAM Role과 구별됨)

 

- IAM Role: 부여된 권한만 행사, 임시자격증명(API 던졌을 때 응답받은 ID와 PASSWORD가 매번 바뀜, expire time이 지나서 바뀜 // 토큰 개념)

세션 -  서버 중심의 인증 방식, 클라이언트가 값을 받으면 서버에서 관리토큰 - 클라우드 중심의 인증 방식, 마패 같은 개

+ 추가적으로 IAM User는 1:1 매칭, IAM Role은 1:N 매칭

 

그리고 AWS API 통해 접근하는데 이 API는 신원 정보 증명이 된 사람들이 정보를 줌.

근데  내 계정으로 만든 ROLE에는 접근할 수 있으나 다른 사람 계정으로 만든 ROLE에 접근할 순 없음!!

 

- AWS Service

: 사용자 대신 작업 수행 -> 근데 권한이 없으면 EC2 같은 서비스가 내 계정으로 만든 버킷을 다른데로 푸쉬할 수 있음!!

따라서 권한 부여 필요!!

Secret Key: 텍스트로 된 키값을 api 방식으로 리소스를 관리

 

-IAM은 json 구조의 정책(Policy) 문서를 기반으로 사용자의 권한을 관리한다.

 

-Root User MFA 설정, Password Policy 설정, 대체 연락처 설정, Admin User 생성 이런건 Root User가 하고 나머지 작업들은 IAM USER가 할 것!!

 

 

-실습

 

AWS IAM 콘솔에서 사용자 생성 (이메일로 넣으면 이메일로 접속되나 root 계정일지는 모름)

 

 

AdministratorAccess 로 정책 연결

 

 

사용자 생성

액세스 키 생성 (태그값 굳이 할 필요 X, 그리고 키 값은 따로 적어놓거나 CSV 파일 받아놓기)

 

그리고 cmd 창에서 aws configure 통해

액세스 키 및 비밀 액세스 키 집어넣고

지역: ap-northeast-2 (서울)

output format: json

 

 

aws s3 ls 했을 때 명령어가 먹힌다. (버킷이 없으니 null값이 뜨는 거임)

access denied 뜨는 경우 있는데 -> 이건 권한 정책 (AdministratorAccess 설정안해서 뜨는 거임!!)

 

 

aws iam user 리스트 테이블 보여주기 및 iam-user-2 생성

 

 

-Network Baseline

네트워크 3가지 포인트

1. Segmentation  - 네트워크를 어떻게 분리할 것인가: CIDR, Public&Private

2. Connectivity - 서비스를 어떻게 연결/연동할 것인가: IGW, Nat Gateway(내부->외부), VPN, Peering, Endpoint ...

3. Security - 보안그룹, Network-ACL , VPN ...

 

IP Address: 인터넷에 연결된 장치를 식별 가능하게 해주는 고유 주소

Classful 할당 방식보다 IP주소를 더 효율적으로 사용하기 위해 CIDR 통해 네트워크 주소와 호스트 주소 구분

 

사설 IP대역 (충돌 x)

10.0.0.0 ~ 10.255.255.255

172.16.0.0 ~ 172.31.255.255

192.168.0.0 ~ 192.168.0.0

 

공인 ip주소의 경우 ip 충돌일어남

 

-VPC (Virtual Private Cloud): 나의 네트워크를 만드는 서비스

1. 외부와 격리된 가상의 사설 네트워크

2. CIDR 최소 /28 ~ 최대 /16

3. 최대 5개 생성 가능

4. 한 번 설정한 VPC CIDR 수정 불가능

5. Secondary CIDR Block 통해 네트워크 확장 -> 최대 5개

 

Internet Gateway NAT Gateway
내-외부 통신 내부 -> 외부 통신 O & 외부 -> 내부 통신 X (단방)
1개 여러 개 생성 가능

 

 

-VPC (Virtual Private Cloud) 실습

 

 

VPC , 서브넷 그리고 라우팅 테이블 생성

서브넷의 경우,

01은 ap-northeast-a

02는 ap-northeast-b로 연결

 

 

 

퍼블릭 서브넷에 인터넷 게이트웨이 연결 (VPC에 연결하지 않으면 인터넷 게이트웨이 눌렀을 때 안 )

 

 

NAT 게이트웨이는 퍼블릭 서브넷에 생성해야만 한다!! (이건 주의)

 

 

프라이빗1 라우팅 테이블에 NAT 게이트웨이 연결

 

다시 한 번 작성하지만 *NAT 게이트웨이 경우

퍼블릭 서브넷에서 생성하여 프라이빗 라우팅에서 nat게이트웨이를 연결해야 한다!!

그리고 순서도 중요하다. 인터넷 게이트웨이 생성안 된 상태에서 NAT 게이트웨이 생성하면

계속 pending상태가 나서 에러날 수 있다. (IGW 생성한 후 NAT GW 생성하기!!)

=> IGW가 생성되어있고 라우팅 테이블에 퍼블릭 서브넷이 잘 되어있어야 프라이빗 넷 안에 있는 리소스들에게 IP를 잘 할당할 수 있다!!

 

 

 

-NACL (Network Access Control List)

:일종의 방화벽

적용대상은 서브넷

 

  NACL 보안그룹 (Security Group)
적용 대상 서브넷 EC2가 갖고 있는 네트워크 인스페이스 카드 (ENI)

  인/아웃바운드 트래픽을 allow/deny(기본) 기본 정책은 all deny (모두 차단)
  Stateless -> 인/아웃 바운드 트래픽을 정책을 통해 들어오고나서 내보냄 Statefull -> 인/아웃 바운드 트래픽을 정책을 통해 들어오면 저장해놓음

 

 

-EC2 (Elastic Compute Cloud)

: 가상화된 상태에서 리소스를 제공하는 '서버'

 

 

 

-Bastion (점프 호스트)

: 퍼블릭 ip 통해 프라이빗 서브넷으로 접속해주는 기능

 

-실습

EC2 콘솔창에서 인스턴스 생성

 

 

키 페어는 새 키페어 생성 클릭

 

 

 

보안그룹 생성 + 보안그룹 추가하여 http 버전으로도 생성

 

 

 

pem -> ppk 키파일 변환

 

 

 

 

+ session에서 bastion이름누르고 save 한 다음 open 누르면

 

 

접속이 된다.

 

터미널에서는 ssh -i lab-edu-key-ec2.pem ec2-user@13.124.240.201 로 해주면 된다.

'IT > AWS' 카테고리의 다른 글

AWS - Route 53  (0) 2025.01.21
AWS - Cloud Formation, VPC Peering, VPC Endpoint  (1) 2025.01.20
AWS - EBS, S3  (0) 2025.01.17
AWS - EC2  (0) 2025.01.16