[AWS] 클라우드 네이티브 AWS 아키텍쳐 설계 및 운영 (2)

김아름·2022년 4월 19일
0

Amazon VPC(Virtual Private Cloud)

  • 사용자의 AWS 계정 전용 가상 네트워크
  • 격리형 클라우드 리소스 (보안때문에 격리)
  • 전체 네트워크 주소 범위는 172.31.0.0/16 (리전 단위)

서브넷

  • 각각의 AZ에 1개씩 네트워크 주소가 할당된 VPC의 IP 주소 범위
  • 172.31.32.0/20, 172.31.0.0/20, 172.31.16.0/29 (AZ 단위)

인터넷 게이트웨이

  • VPC의 리소스와 인터넷 간의 통신을 활성화 하기 위해 VPC에 연결하는 게이트웨이
  • 필수사항: VPC와 연결
  • 라우팅 테이블에 할당 됨 (VPC 단위)

라우팅 테이블

VPC Peering

  • VPC끼리 연결
  • 프라이빗 IPv4 주소 또는 IPv6 주소를 사용하여 두 VPC 간에 트래픽을 라우팅 할수 있도록 하기위한 두 VPC 사이의 네트워킹 연결
  • 동일한 네트워크에 속하는 경우와 같이 VPC의 인스턴스가 서로 통신할 수O
  • 사용자의 자체 VPC 또는 다른 AWS 계정의 VPC와 VPC 피어링 연결을 만들 수O
  • VPC는 다른 리전에 있을 수O (리전 간 VPC 피어링 연결)
  • AWS는 VPC의 기존 인프라를 사용하여 VPC피어링 연결을 생성합니다. 이는 게이트웨이도, VPN 연결도 아니며 물리적 하드웨어 각각에 의존X

Route53

  • 도메인 서비스
  • Amazon Route53을 도메인의 DNS 서비스로 사용할 수O
  • Route53이 DNS 서비스인 경우, www.example.com과 같은 친숙한 도메인 이름을 컴퓨터 간 연결에 사용되는 192.0.2.1.등 숫자IP주소로 변환하여 인터넷 트래픽을 웹 사이트로 라우팅 함
  • 사용자가 브라우저에 도메인 이름을 입력하거나 이메일을 보내면 DNS 쿼리가 Route53에 전달되며 이에 따라 적절한 값으로 응답 함
  • 예를들어 Route53은 example.com 웹 서버의 IP주소를 사용하여 응답할 수O

EBS (Elastic Block Store)

  • 인스턴스에 사용할 수 있는 블록 수준 스토리지 볼륨을 제공
  • 블록: 블록단위로 데이터가 일정하게 저장할 수O
  • OS, 애플리케이션 등 설치 할수O
    <--> S3등은 설치X, 저장만 O
  • EBS 볼륨은 형식이 지정되지 않은 원시 블록 디바이스처럼 동작
  • 이러한 볼륨을 인스턴스에 디바이스로 마운트 할 수O
  • 동일한 인스턴스에 여러 볼륨을 탑재하고 한벙에 여러 인스턴스에 볼륨을 탑재할 수O

EBS Snapshot

  • EBS 볼륨의 특정 시점 스냅샷을 생성하여 새 볼륨이나 데이터 백업의 기준으로 사용 할 수O
  • 볼륨의 스냅샷이 주기적으로 생성되는 경우 스냅샷은 증분식이어서 새 스냅샷은 마지막 스냅샷 이후 변경된 블록만 저장
  • 연결되어 사용중인 볼륨의 스냅샷을 만들 수O
  • 하지만 스냅샷은 smapshot 명령을 실행할 때 Amazon EBS 볼륨에 기록된 데이터만 캡쳐 합
    --> 이때 애플리케이션이나 운영 체제에 의해 캐시된 데이터가 제외될 수O

IAM (Identity and Access Management)

  • AWS 서비스에 대한 액세스를 안전하게 제어하는 웹서비스
  • IAM을 통해 사용자, 액세스 키와 같은 보안 자격 증명, 사용자와 애플리케이션이 어떤 AWS 리소스에 액세스 할 수 있는지 제어하는 권한을 한곳에서 관리



실습하기

1. VPC 만들기

  • VPC를 삭제할 때는 연결된 EC2가 있다면 EC2를 제거한 후 삭제 할 수 있다.
  • VPC 삭제하면 서브넷도 지워진다.
  • 전세계 모든 기본 VPC는 172.31.0.0/16 이다.
  • 기본 VPC도 삭제할 수O --> 기본 VPC 생성 기능 있다.
  • VPC 생성
    • 생성버튼 누르고 VPC NAME 작성(MY-VPC)
    • IP설정(10.0.0.0/16) 한다.
  • DNS 호스트 이름 편집 --> DNS 호스트 이름 활성화 체크
    : EC2생성했을 때 IP말고 도메인이 있는데, 부여 받으려면 체크해야 함

2. 서브넷 생성

  • 서브넷 생성 버튼 클릭
  • 내가 만든 VPC를 클릭
  • 서브넷 NAME 작성
  • IP설정 한다.
  • 서브넷 설정 편집 --> 자동 할당IP 설정 --> 퍼블릭 IPv4 주소 자동 할당 활성화 체크

3. 인터넷 게이트웨이 설정

  • 인터넷 게이트웨이 1개당 1개의 VPC 연결 (1:1)
  • 생성버튼 누르고 NAME 작성 (MY-IGW)
  • VPC 연결 클릭 --> MY-VPC 선택

4. 라우팅 테이블 설정

  • 라우팅 테이블 안에 인터넷 게이트웨이를 넣어줘야되기 때문에 인터넷 게이트웨이를 만든 후 만든다.
  • MY-VPC의 라우팅테이블에서 라우팅 생성한다
    --> 목적지:0.0.0.0/0 (모든 IP주소를 의미) , 타켓: 생성한 인터넷 게이트웨이
  • 퍼블릭 IP 자동할당은 활성화 하기
  • 고급 세부정보 --> 사용자 데이터에
#!/bin/bash
yum install -y httpd
systemctl start httpd
systemctl enable httpd
echo "<h1>SEOUL</h1>" > /var/www/html/index.html

EC2 생성

  • 인스턴스 시작(start가 아니라 launch 개념) 클릭
  • OS, CPU, 메모리 등 선택
  • 네트워크는 MY-VPC 선택
  • 서브넷은 2A와 2C만 선택가능 (프리티어 계정)
  • 보안그룹 생성
    • SSH TCP 22
    • HTTP TCP 80
    • 모든 ICMP-IPv4 0-65535 위치무관 --> ping 확인할 때 사용
  • 키페어 생성

5. 보안그룹(방화벽) 설정 - EC2

  • default 보안그룹은 삭제되지 않음
  • default 보안그룹은 사용하지도 않음 - 공격자들의 첫번째 타겟이 되기 때문

6. VPC Peering

  • 도쿄 리전에서 EC2를 생성
  • 서울리전 EC2와 도쿄리전 EC2 2개 다 접속한다.
  • 서로에게 퍼블릭 IP로 핑 보내면 통신 됨
  • 서로에게 프라이빗 IP로 핑 보내면 통신 X

피어링 연결

  • 서울리전의 VPC --> 피어링 연결 --> 피어링 연결 생성 클릭
    : 이름 작성(MY-PC) --> 피어링할 VPC 선택 (MY-VPC)
  • 피어링 할 다른 VPC 선택 --> 내 계정 / 다른리전 선택 (도쿄에 있는 내 계정)
  • VPC ID(수락자): 도쿄의 VPC ID 확인 후 복사 --> 생성 클릭
  • 도쿄 리전의 VPC --> 피어링 연결 가보면 --> 수락대기중인 피어링 연결이 있음 --> 요청 수락 하기
  • 피어링 연결은 되었는데 Ping은 안됨
    --> Why? 라우팅 테이블 설정을 해야함
  • 도쿄리전에서 라우팅 테이블 설정 --> 라우팅 편집
    • 목적지:10.0.0.0/16(서울로 가겠다), 타겟:피어링 연결
  • 서울리전에서 라우팅 테이블 설정 --> 라우팅 편집
    • 목적지:172.31.0.0/16(됴쿄로 가겠다), 타겟: 피어링 연결

7. Route 53

  • DNS관리 --> 호스팅 영역 생성
    : 도메인 이름에 구매한 도메인 작성 --> 생성 버튼 클릭
  • 값/트래픽 라우팅 대상에 AWS의 네임 서버로 되어있음
    -->도메인 구입한 곳에 가서 AWS의 네임 서버 붙여넣어 설정해준다.
  • 적용이 되면 도메인으로 접근 할 수O
  • 레코드 생성
    • 레코드 이름 작성 후
    • 값에 EC2에서 퍼블릭IP를 넣어준다 --> 생성 버튼 클릭
  • EC2와 연결된 레코드 이름을 브라우저 도메인으로 검색하면 EC2에서 만들었던 index.html 페이지가 뜸

8. EBS

  • 볼륨 생성
    • 무중단으로 서비스 할 수O
    • 범용SSD, 8기가
    • 가용영역 2A
      --> 이전에 만들었던 EC2가 2A였음, 기존 EC2에 스토리지를 추가로 붙이고 싶은 것
lsblk 	// 연결된 블록 스토리지 확인 명령어
  • 볼륨 연결
    • 새로 만든 볼륨을 체크하고 볼륨 연결을 클릭
df -h	//파일 시스템 사용가능 공간 확인
sudo mkfs -t xfs /dev/xvdf	//포맷
sudo mkdir /data	//마운트 될 폴더생성
sudo mount /dev/xvdf /data	//마운트 명령어
sudo umount /data	//마운트 끊는 명령어

sudo cp /etc/fstab /etc/tstab.orig	//복사본 생성
sudo blkid	//블록스토리지 ID 보여주는 명령어
sudo vi /etc/fstab
sudo vi /etc/fstab

  • 스냅샷 생성
    • 볼륨 선택 후 생성
  • 스냅샷에서 볼륨 생성
    • 가용영역을 2C로 하고 만들면 2A에 있던 볼륨이 2C로 복제 됨
  • 스냅샷을 이용한 이미지 생성
    • 볼륨에서 이미지 생성 버튼 --> 이미지 이름 작성 (MY-AMI) --> 이미지 생성 버튼 클릭
    • AMI에 가보면 MY-AMI가 생성되어 있다.
    • AMI 체크 후 AMI로 인스턴스 생성 클릭하면 인스턴스를 만들 수 있다.
  • 스냅샷 복사
    • 백업이라고 보면 됨
    • 볼륨에서 스냅샷 복사 클릭
    • 대상리전 오사카로 설정 할 수 O
      --> 전송 비용 발생
profile
쿄쿄쿄

0개의 댓글