클라우드

[클라우드] AWS 사용법(EC2, VPC)

dusqo7951 2024. 10. 15. 14:39

 

EC2 인스턴스 생성

 


 

리전을 서울 리전으로 변경

 

 

.

생성완료

 

 

버킷(저장소)생성

user-1 은 지금 S3 ReadOnly 권한을가지고있어 이아이디로 로그인하면 저장한것 읽기만 가능

사진 삭제

사진 설명을 입력하세요.

사진 삭제

상세보기도 가능

사진 삭제

하지만 객체추가 못함.

이런식으로 가진 권한 내에서만 무엇인가를 할 수 있다.

권한 잘주기!

 

다하면 모두 다 삭제하자!

리소스 정리 (root 계정으로)

S3 객체(=파일)를 모두 삭제한 후 버킷을 삭제

사진 삭제

사진 설명을 입력하세요.

사진 삭제

사진 설명을 입력하세요.

사진 삭제

사진 설명을 입력하세요.

사진 삭제

사진 설명을 입력하세요.

사진 삭제

사진 설명을 입력하세요.

사진 삭제

내가만든 정책삭제


Access Key를 이용한 AWS 서비스 이용

AWS 서비스 이용하는 방법

  1. Management Console ⇒ 사람 사용자가 로그인 후 사용
  2. AWS CLI ⇒ 사람 또는 프로그램이 Access Key를 이용해서 사용
  3. 각 개발 언어별 SDK ⇒ 응용 프로그램을 이용해서 사용

 

AWS CLI 설치

https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/getting-started-install.html

 

https://awscli.amazonaws.com/AWSCLIV2.msi 파일을 다운로드 후 실행해서 기본 설정 상태로 설치를 진행

설치가 완료되면 명령 프롬프트를 실행해서 설치를 확인

 

C:\Users\crpark> aws --version

aws-cli/2.17.63 Python/3.12.6 Windows/11 exe/AMD64

 

C:\Users\crpark> aws iam list-users

Unable to locate credentials. You can configure credentials by running "aws configure".

 

사용자 생성 후 액세스 키를 발급

사진 삭제

IAM 사용자 생성하기

사진 삭제

administratorAccess 권한주고 생성

사진 삭제

사진 설명을 입력하세요.

사진 삭제

사진 설명을 입력하세요.

사진 삭제

사진 설명을 입력하세요.

사진 삭제

사진 설명을 입력하세요.

 

 

액세스 키를 등록
C:\Users\crpark> aws configure
AWS Access Key ID [None]: AK**********GK ⇐ 발급받은 액세스 키
AWS Secret Access Key [None]: zz**************************Vxd ⇐ 발급받은 비밀 액세스 키
Default region name [None]: ap-northeast-2 ⇐ 서울 리전
Default output format [None]: json ⇐ JSON을 출력 형식으로 지정
 

 


aws s3
aws s3api
버킷생성
aws s3 mb s3://my-bucket-inno-2 --region ap-northeast-2
aws s3api create-bucket --buket my-bucket-inno-2 --create-bucket-configuration LocationConstraint=ap-northeast-2
파일업로드
aws s3 cp 파일경로/파일이름.확장자 s3://my-bucket-inno-2/
aws s3api put-object --bucket my-bucket-inno-2 --key 파일경로/파일이름.확장자 --body 파일경로/파일이름.확장자
업로드확인
aws s3 ls s3://my-bucket-inno-2/
aws s3api list-objects --bucket my-bucket-inno-2
파일 상세내용 확인
직접적인 명령어 없음
다운받아 확인가능하긴함.
aws s3 cp s3://my-bucket-inno-2/파일명.확장자 - | head
aws s3api head-object --bucket my-bucket-inno-2 --key 파일명.확장자
파일삭제
aws s3 rm s3://my-bucket-inno-2/파일명.확장자
aws s3api delete-object --bucket my-bucket-inno-2 --key 파일명.확장자
차이점
간단하고 직관적 / 일반적인 파일 작업에 적합
상세하고 API에 가까움 / 더 많은 옵션과 세부기능을 제공
JSON 형식의 출력을 제공
세부적인제어나 자동화 필요시 사용

 

VPC(Vitual Private Cloud)

  • AWS 사용자 계정 전용 가상 네트워크
  • AWS 클라우드에서 다른 가상 네트워크와 논리적으로 분리
  • 한 AWS 리전 안에서만 존재할 수 있고, 한 리전에 만든 VPC는 다른 리전에서 보이지 않음 > VPC Peering
    • 10.0.0.0/8 ⇒ 10.0.0.0 - 10.255.255.255
    • 172.16.0.0/12 ⇒ 172.16.0.0 - 172.31.255.255
    • 192.168.0.0/16 ⇒ 192.168.0.0 - 192.168.255.255

 

VPC 구성 옵션

https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/create-vpc-options.html

 

  • 가용영역( AZ ) : 리전의 고가용성을 위한 구성요소

AWS 리전의 중복전력, 네트워킹 및 연결이 제공되는 하나 이상의 개별 데이터 센터로 구성

  • CIDR 블록 : VPC와 서브넷 IP주소 범위를 지정해야함.
  • DNS 옵션 : 서브넷이 시작된 EC2 인스턴스의 퍼블릭 IPv4 DNS 호스트이름이 필요한 경우 두 DNS 옵션을 모두 활성화 해야함.
    • DNS 호스트 이름 활성화: VPC에서 시작되는 EC2 인스턴스는 퍼블릭 IPv4 주소에 해당하는 퍼블릭 DNS 호스트 이름을 받음
    • DNS 확인 활성화: 프라이빗 DNS 호스트 이름에 대한 DNS 확인은 Route∘53 Resolver라고 하는 Amazon DNS 서버에서 VPC에 제공.
  • 인터넷 게이트웨이 : 인터넷에 VPC 연결
  • 명칭 : VPC 및 기타 VPC 리소스에 지정한 이름은 이름태그를생성하는데 사용됨
    • 콘솔에서 이름 태그 자동 생성 기능을 사용하면 태그 값은 name - resource 형식을 갖음
  • NAT 게이트웨이 : NAT=네트워크주소변환 서비
  • 라우팅 테이블 : 서브넷 또는 게이트웨이의 네트워크 트래픽이 전송되는 위치를 결정하는 라우팅 규칙 집합을 포함.
  • Tenancy : VPC로 시작하는 EC2 인스턴스가 다른 AWS 계정과 공유되는 하드웨어에서 실행되는지 아니면 사용자 전용 하드웨어에서 실해오디는지를 정의
  • 서브넷 : VPC 안에서 가상으로 나눈 네트워크 / 인스턴스는 서브넷 안에위치

 

 

 

기본 VPC(default VPC)

https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/default-vpc.html

기본 VPC - Amazon Virtual Private Cloud

퍼블릭 서브넷, 인터넷 게이트웨이 및 DNS 확인을 통해 EC2 인스턴스를 기본 VPC로 시작하세요. 기본 VPC에서 Elastic Load Balancing, Amazon RDS, Amazon EMR을 활용하세요.

docs.aws.amazon.com

Amazon VPC 를 사용하기 시작하는 경우 각 AWS 리전에 기본 VPC가 있다. 기본 VPC 는 각 가용영역의 퍼블릭 서브넷, 인터넷 게이트웨이 및 DNS 확인 활성화 설정과 함께 제공함. 따라서 기본 VPC Amazon EC2 인스턴스를 즉시 시작할 수 있음. 기본 VPC Elastic Load Balancing, Amazon RDS, Amazon EMR 같은 서비스를 사용할 수도 있다.

 

기본 VPC 구성요소

  • IPv4 CIDR 블록의 크기가 /16인 VPC를 만듭니다 (172.31.0.0/16). 이는 최대 65,536개의 프라이빗 IPv4 주소를 제공합니다.
  • 각 가용 영역에 크기 /20의 기본 서브넷을 생성합니다. 이렇게 하면 서브넷당 최대 4,096개의 주소가 제공되며, 그중 몇 개는 내부용으로 예약되어 있습니다.
  • 인터넷 게이트웨이를 만들어 기본 VPC에 연결합니다.
  • 기본 라우팅 테이블에 모든 트래픽(0.0.0.0/0)이 인터넷 게이트웨이로 전달되는 경로를 추가합니다.
  • 기본 보안 그룹을 만들어 기본 VPC와 연결합니다.
  • 네트워크 ACL(액세스 제어 목록)을 생성하여 기본 VPC와 연결합니다.

AWS 계정에서 설정된 기본 DHCP 옵션을 기본 VPC와 연결합니다.

 

사진 삭제

사진 설명을 입력하세요.

 

 

서브넷

  • VPC 내 논리 구분
  • 인스턴스는 서브넷 안에 위치 ⇒ EC2 인스턴스를 배치하는 장소
    • 한번 서브넷에 인스턴스를 생성하면 다른 서브넷으로 옮길 수 없음
    • 인스턴스를 종료하고 다른 서브넷에 새 인스턴스를 만들 수는 있음
  • 인스턴스를 서로 격리하고, 인스턴스 간의 트래픽 흐름을 제어하고, 인스턴스를 기능별로 묶을 수 있음
  • 서브넷은 하나의 가용 영역(AZ, Availablility Zone) 내에서만 존재할 수 있음
  • 서브넷 CIDR 블록
    • VPC의 일부, VPC 내에서는 유니크해야 함
    • 모든 서브넷에서 처음 4개의 IP와 마지막 1개는 예약되어 있으므로 인스턴스에 할당할 수 없음

예) 서브넷 CIDR이 172.16.100.0/24인 경우

172.16.100.0 네트워크 주소

172.16.100.1 AWS에서 VPC 라우터용으로 예약

172.16.100.2 DNS 서버 주소

172.16.100.3 AWS에서 나중에 사용하려고 예약

127.15.100.255 네트워크 브로드캐스트 주소

  • 퍼블릿 서브넷 : 서브넷이 인터넷 게이트웨어로 향하는 라우팅이 있는 라우팅 테이블과 연결된 경우
  • 프라이빗 서브넷 : 서브넷이 인터넷 게이트웨어로 향하는 라우팅이 없는 라우팅 테이블과 연결된 경우

 

 

ENI(Elastic Network Interface, 탄력적 네트워크 인터페이스, 램카드)

  • 물리 서버의 네트워크 이넡페이스와 같은 기능을 수행
  • VPC에서 가상 네트워크 카드를 나타내는 논리적 네트워쿠 구성요소

 

인터넷 게이트웨이(IGW)

  • 퍼블릭 IP 주소를 갖는 인스턴스가 인터넷에 연결 할 수 있도록 기능을 제공
  • 처음 VPC를 만들면 인터넷게이트웨이가 연결되어있지 않으므로, 직접 인터넷게이트웨이을 만들고 VPC와 연결해야 함
  • 하나의 VPC는 하나의 IGW 만 연결가능

 

라우팅(Routing)

  • VPC의 네트워크 트래픽을 전달할 위치를 결정하는데 사용되는 규칙
  • 트래픽을 전달할 IP주소범위(대상주소)와 트래픽을 전송할 게이트웨이, 네트워크 인터페이스 또는 연결(대상)을 지정
  • VPC는 소프트웨어 함수로 IP라우팅을 구현 > 사용자는 라우팅 테이블만 관리
  • 라우팅 테이블 > 라우팅의 집합, 서브넷과 연결 가능
  • 기본 라우팅 테이블 > VPC 와 함께 자동으로 제공되는 라우팅 테이블
    • 기본 VPC인 경우, local 및 IGW 로의 라우팅을 포함
    • 기본 VPC가 아닌경우, local 라우팅만 포함

----------- ---------------------

대상 주소 대상

----------- ---------------------

172.31.0.0/16 local

0.0.0.0/0 igw-0b7313723843100f9

~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~

| 인터넷 게이트웨이

+-- 인터넷 상의 모든 호스트 IP를 기반

 

⇒ 172.31.10.10으로 패킷을 보낼려고 하면, local로 라우팅을 처리

⇒ 198.51.100.50으로 패킷을 보낼려고 하면, ...

라우팅할 위치와 가장 근접하게 일치하는 항목을 기반으로 라우팅을 처리 → IGW로 라우팅됨

라우팅 테이블의 항목들간의 순서는 중요하지 않음

--------------------------------- ---------------------

대상 주소 대상

--------------------------------- ---------------------

10.0.0.0/16 Local

2001:db8:1234:1a00::/56 Local

172.31.0.0/16 pcx-11223344556677889

0.0.0.0/0 igw-12345678901234567

::/0 eigw-aabbccddee1122334

--------------------------------- ---------------------

 

    • VPC(10.0.0.0/16) 내에서 라우팅되는 IPv4 트래픽은 Local 경로로 처리
    • VPC(2001:db8:1234:1a00::/56) 내에서 라우팅되는 IPv6 트래픽은 Local 경로로 처리
    • 172.31.0.0/16의 경로는 피어링 연결로 트래픽을 전송
    • 모든 IPv4 트래픽(0.0.0.0/0)의 경로는 인터넷 게이트웨이로 트래픽을 전송 ⇒ VPC 내 그리고 피어링 연결을 통한 트래픽을 제외한 모든 IPv4 트래픽은 인터넷 게이트웨이로 라우팅
    • 모든 IPv6 트래픽(::/0)의 경로는 외부 전용 인터넷 게이트웨이로 트래픽을 전송 ⇒ VPC 내 트래픽을 제외한 모든 IPv6 트래픽은 외부 전용 인터넷 게이트웨이로 라우팅

 

 

보안 그룹(security group)

  • 방화벽과 같은 기능을 제공
  • 인스턴스의 ENI(탄력적 네트워크 인터페이스)에서 송수신하는 트래픽을 제어
  • 모든 ENI는 최소 한개 이상의 보안그룹과 연결되어야하고, 보안 그룹은 여러 ENI 와 연결될 수 있음
  • 생성할때 보안그룹 이름, 설명, 포함될 VPC를 지정하고, 생성 후에 인바운드, 아웃바운드 규칙을 지정 > 트래픽을 허용
  • 상태 저장 방화벽 역활 > 보안 그룹이 트래픽을 한 방향으로 전달하도록 허용할 때 반대 방향의 응답 트래픽을 지능적으로 허용

 

NACL(Network Access Control List)

https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/vpc-network-acls.html#default-network-acl

네트워크 액세스 제어 목록으로 서브넷 트래픽 제어 - Amazon Virtual Private Cloud

네트워크 액세스 제어 목록을 사용하여 서브넷 내부와 외부의 트래픽을 제어합니다.

docs.aws.amazon.com

  • 보안그룹과 유사
    • 원본 또는 대상주소 CIDR, 프로토콜, 포트 를 기반으로 트래픽을 인바운드, 아웃바운드 규칙으로 제어 > 방하벽과 같은 역활
    • vpc에는 삭제할 수 없는 기본 NACL이 있음
사진 삭제

사진 설명을 입력하세요.

  • 서브넷에 연결되어 해당 서브넷과 송수신되는 트래픽을 제어
  • 상태 비저장
    • NACL을 통과한 연결 상태를 추적하지않음
    • 모든 인바운드와 아웃바운드 트래픽의 허용 규칙을 별도로 작성해야함
  • 규칙을 적용할 때 규칙번호의 오름차순으로 정리

 

 
보안그룹
네트워크 ACL
인스턴스 레벨에서 운영
서브넷 레벨에서 운영
인스턴스와 연결된 경우에만 인스턴스에 적용
연결된 서브넷에서 배포된 모든 인스턴스에 적용
(보안그룹 규칙이 지나치게 허용적일 경우 추가 보안 계층 제공)
허용규칙만 지원
허용 및 거부 규칙 지원
트래픽 허용 여부를 결정하기 전에 모든 규칙을 평가
트래픽 허용 여부를 결정할 때 가장 낮은 번호의 규칙부터 순서대로 규칙을 평가
상태 저장 : 규칙에 관계없이 반환 트래픽이 허용됨
상태 비저장 : 반환 트래픽이 규칙에 따라 명시적으로 허용 되어야 함

 

계층구조