Public Cloud/AWS

AWS 실습하기 6

서머스 2022. 6. 13. 19:23

* Desired Capacity

 EC2에 n개의 인스턴스가 유지되도록 했을 때의 그 n값. 즉, 유지되어야 하는 인스턴스의 최소 개수

- 만약 한개의 인스턴스가 지워진다면 master controller가 그 n개를 유지하기 위해 1개를 복제해서 새롭게 인스턴스 n개를 형성하도록 한다. 

 

* AWS EKS Cluster(Elastic Kubernetes Service)

- 운반되는 애플리케이션을 scale하고, manage하고, 배치하기 위해 관리되는 aws 쿠버네티스 서비스이다.

- 자신이 직접 쿠버네티스를 설치, 운영하지 않아도 쿠버네티스를 사용할 수 있는 managed service이다.

 - eks의 복제 기능으로 인스턴스의 개수를 desired capacity만큼 유지하도록 한다.

- 미리 스냅샷 등 복제해놓고 계속 복구하는 작업을 하게 된다.

 

 

 

인스턴스 만들기

https://aws.amazon.com/ 

 

클라우드 서비스 | 클라우드 컴퓨팅 솔루션| Amazon Web Services

개발자, 데이터 사이언티스트, 솔루션스 아키텍트 또는 AWS에서 구축하는 방법을 배우는 데 관심이 있는 모든 사용자용 무료 온라인 교육 AWS 전문가가 구축한 500개 이상의 무료 디지털 교육 과정

aws.amazon.com

EC2를 검색해서 들어간 뒤, 인스턴스 메뉴에 들어간다

[인스턴스 시작] 클릭

 

 

네트워크 설정 - 편집 을 눌러야 수정 가능하다

VPC - My-VPC로 바꾼다

*프리 티어일 때, 서브넷은 2a or 2c에만 만들 수 있다

* 용량 예약

- 내가 오늘 퇴근할 때 얘를 컸으면, 다음날에 켜야 한다. 비용 절약 때문에(껐다 켜면 비용이 안들어감)

- aws에서는 이 공간을 밤새 보존하는게 아니라, 일부분은 남들이 이용할 수 있도록 열어둔다.

- 내가 바로 poweron을 한다고 해서 이 공간이 바로 확보되는것은 아니기 때문에, ec2가 바로 켜지지 않는 문제가 발생한다.

- 이를 해결하기 위해 용량 예약을 하는 것이다.

- 물론 비용은 발생한다.

 

 

 

 

* cp 다음에 -r 옵션이 필요하다.

사용자 데이터에 추가하는데, 이번에는 echo 로 index.html 파일을 만들지 않고, 깃허브에서 클론하여 index파일을 받아올 수 있도록 한다.

 

[인스턴스 시작]을 클릭한다.

 

새로고침 버튼을 눌러 보면 인스턴스가 생성된 것을 볼 수 있다.

 

그리고 퍼블릭 ip로 들어가면,

이런 홈페이지가 뜬다.

 

aws의 인스턴스와 alibaba의 도메인을 연결하기

https://dns.console.aliyun.com/

 

阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台

欢迎登录阿里云,全球领先的云计算及人工智能科技公司,阿里云为200多个国家和地区的企业、开发者和政府机构提供云计算基础服务及解决方案。阿里云云计算、安全、大数据、人工智能、企

account.aliyun.com

alibaba cloud로 들어간 뒤, dns를 검색해서 들어간다.

저번에 생성했던 dnsa에 클릭해서 들어간다.

[Add Record] 클릭

 

Value에 방금 만든 aws 인스턴스의 public IP값을 넣는다.

그리고 [Confirm] 클릭

 

그리고 http://web01.cloudywinter.shop/

에 접속해본다.

아까 public ip와 동일한 창이 뜬다.

aws의 ip만 가지고도 alibaba의 도메인과 연결해서 사용할 수 있는 모습을 볼 수 있다.

 

 

Amazon VPC

- 사용자가 정의한 가상 네트워크로 AWS 리소스를 시작할 수  있다

- AWS의 확장 가능한 인프라를 사용할 수 있다.

- 고객의 자체 데이터 센터에서 운영하는 기존 네트워크와 유사하다.

 

VPC 관련 용어

1. VPC

- Virtual Private Cloud

- 사용자의 AWS 계정 전용 가상 네트워크. 

- 전체 네트워크 주소 범위는 172.31.0.0/16 (리전 단위)

 

2. 서브넷

- VPC를 쪼갠 조각들

- 각각의 AZ에 1개씩 네트워크 주소가 할당된 VPC의 IP 주소 범위

- 하나의 AZ에 하나의 서브넷이 할당된다.

- 172.31.0.0/20

- 172.31.16.0/20

- 172.31.32.0/20

- 172.31.48.0/20

(리전 단위)

- public subnet : 공인 인터넷과 통신 가능한 서브넷

- private subnet : 공인 인터넷이 차단된 사설 IP만 할당된 서브넷

 

* AZ( Availability Zone)

- 예를 들어, 서울 리전은 AZ가 3개이다. -> a, b, c

 

3. 라우팅 테이블

- 네트워크 트래픽을 전달할 위치를 결정하는 데 사용되는 라우팅이라는 규칙 집합

- 172.31.0.0/16 (서브넷 단위)

 

4. 인터넷 게이트웨이

- VPC의 리소스와 인터넷 간의 통신을 활성화하기 위해 VPC에 연결하는 게이트웨이

- 라우팅 테이블에 할당됨(VPC 단위)

 

5. Network ACL(네트워크 액세스 제어)

- 서브넷을 오고 가는 모든 트래픽을 제어하는 역할

- Inbound(내부로의 통신), OutBound(외부로의 통신)를 기반으로 모든 통신을 허가함(서브넷 단위)

 

6. Security Gorup

- 인스턴스의 가상 방화벽 역할

- InBound는 모든 통신을 거부

- OutBound는 모든 통신을 허가

- 인스턴스 단위

- 즉, 들어오는 건 막고, 나가는건 연다

 

https://aws-hyoh.tistory.com/entry/VPC-%EC%89%BD%EA%B2%8C-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-1

 

Virtual Private Cloud(VPC) 쉽게 이해하기 #1

VPC(Virtual Private Cloud) Amazon Virtual Private Cloud(Amazon VPC)에서는 사용자가 정의한 가상 네트워크로 AWS 리소스를 시작할 수 있습니다. 이 가상 네트워크는 AWS의 확장 가능한 인프라를 사용한다는 이..

aws-hyoh.tistory.com

좋은 글은 공유를..,,

 

 

1. VPC 생성하기

[Create VPC] 클릭

 

[DNS 호스트 이름 편집] 클릭

 

dns 호스트 이름을 활성화에 체크 한다. -이를 NEW-VPC와 MY-VPC에 적용한다.

퍼블릭 IPv4 DNS에 주소가 생겼다.

이걸로 접속 가능하다.

 

2. 서브넷 생성

서브넷 메뉴로 가서, [서브넷 생성]을 클릭한다.

 

192.168.16.0/20 : ~ 31.255 까지 사용할 수 있음

 

똑같이 private subnet도 만들어 준다. (여기서는 96~ 112.0까지..)

 

 

3. 인터넷 게이트웨이 생성



별 과정 없이 그냥 이름만 지정하면 된다.

 

(그림의 파란 줄)VPC와 게이트웨이를 연결하는 과정이 필요하다.

그래야 라우팅테이블에서 이용가능해진다.

 

 

그리고 라우팅테이블 메뉴로 들어가보면, 이름이 없는 테이블이 있다.

아까 전 작업으로 생성된것이다.

이름을 바꿔주자.

 

오른쪽 마우스 - 라우팅 편집

 

0.0.0.0을 향하는 트래픽이  그 다음으로 가면 거기서(인터넷 게이트웨이) 다음 장소를 알려준다! => 라우터를 거쳐 거쳐 간다.

 

아랫쪽에 [서브넷 연결] 메뉴 클릭해서 associate (=mapping, link 등과 같은 의미) 한다.

 

스크롤 내리면 [명시적 연결이 없는 서브넷] 목록이 뜨는데, 우측의 [서브넷 연결 편집]을 클릭한다.

 

PUBLIC SUBNET만 을 클릭한다.

 

다시 라우팅 테이블 탭을 들어간다.

똑같은 방식으로 서브넷 - PRIVATE만 선택한 뒤, 연결한다.

 

서브넷 메뉴로 들어간다.

 

퍼블릭 서브넷 4개에 [퍼블릭 IPv4 주소 자동 할당 활성화]를 체크한다.

 

VPC Peering

- 네트워크 보안

- IP가 private로 통신할수 있도록 해준다.

- 프라이빗 IPv4 주소 또는 IPv6를 사용하여 두 VPC간에 트래픽을 라우팅할수 있도록 하기 위한 두 VPC 사이의 네트워킹 연결

실제로는 VPC가 분리되어 있기 때문에 필요한 작업이다.

- 같은 AWS 망 안에서 외부로 노출되지 않고 내부에서 통신할 수 있도록 함. => 보안 강화

- VPN 연결과 다름

 

 

 

<VPC A : 서울>

web server가 있음

public IP 

10.0~ -> 나의 VPC

 

<VPC B : 도쿄>

DB가 있음

private IP -> 인터넷이 안됨

172.31 ~ -> 기본 VPC

*만약 public을 쓴다면 인터넷을 통해 public IP로 통신하면 된다.

 

172.31.**로 private로 Ping이 나가게 된다. -> 그다음 라우팅 테이블 세팅(next hope로 static하게 세팅)

=> 도쿄로 접속하려면 서울을 bastion으로, 서울을 경유해서만 갈 수 있다.

리전을 도쿄로 바꾼다.

 

왜 디폴트 VPC로만 안되는건가?

- 도쿄, 상파울로 등... 모든 리전의 디폴트 VPC의 IP가 172.31.0.0/16이다.

- IP대역이 같으면 VPC 피어링이 안된다. -> 충돌이 난다.(Conflict)

- 따라서 새로운 VPC를 만들어 줘야 한다.

 

 

새 탭을 열어서 도쿄의 ec2-인스턴스 메뉴로 간다.

[인스턴스 시작] 클릭

 

* 리전마다 별도의 ami가 존재한다.

그래서 서울의 ami와 도쿄의 ami가 다르다.(아이디를 비교해보면 다름)

 

 

 

키는 리전별로 운영되기 때문에, [새 키 페어 생성] 클릭한다.

 

 

 

네트워크 설정 - 편집 클릭

도쿄에 public ip를 주면 안되기 때문에 [퍼블릭 IP 자동 할당] - 비활성화 를 한다.

 

[인스턴스 시작]을 클릭해서 인스턴스를 생성한다.

 

이를 서울의 인스턴스에서 접속해본다.

서울 리전 - ec2 - 인스턴스로 들어간다.

 

iTerm로 들어간다.(혹은 moba Xterm으로 들어가도 OK!)

상단의 [연결]을 통해 접속한다.

 

여기서 도쿄의 private ip에 ping을 쳐보면 안나간다.

 

서울에서 수락을 해야 ping을 받을 수 있다.

VPC - 피어링 연결 메뉴로 간다.

[피어링 연결 생성]을 클릭한다.

 

 

요청자 : WEB01이 MY-VPC에 있기 때문에 요청자 VPC는 MY-VPC이다.

도쿄의 VPC ID를 복사해서 붙여넣는다.

 

만든 후 다시 도쿄의 VPC - 피어링 메뉴로 들어가보면

 

수락 대기 중인 VPC 피어링이 생긴 것을 볼 수 있다.

작업 - 요청 수락 을 누른다.

 

그러면 VPC Peering Connection이 설정되게 된다.

 

하지만 여전히 ping이 나가지 않는다.

링크가 되었지만, 서로간의 라우팅 정보가 필요하다.

IP network(사설)가 전혀 다르기 때문이다.(10.0..., 172.31.... 두개가 전혀 다르다 => 라우팅이 필요하다.)

따라서 라우팅 테이블을 세팅해줘야 한다.

 

상단에 초록색 창에서 [지금 내 라우팅 테이블 수정] 을 클릭한다.

 

라우팅이 2개가 있으므로 public을 위한 라우팅 테이블임을 알 수 있다.

[라우팅 편집]을 누른다.

- 서울의 MY-VPC정보를 입력한다.

- [피어링 연결]을 클릭해서 나오는 pcx를 선택한다.

[변경 사항 저장]을 한다.

 

도쿄->서울 로 가는 라우팅 테이블이 설정되었다.

이제 서울 -> 도쿄로 가는 라우팅 테이블을 설정해야 한다 -> 그래야 ping이 된다.(ping은 왕복이기 때문에)

 

서울의 VPC - 라우팅 테이블 메뉴로 간다.

public rtb를 수정 해야한다. - 왜냐하면 web01이 public subnet에 있기 때문이다

MY-PUBLIC-SUBNET-RTB의 라우팅 메뉴에서 [라우팅 편집]을 클릭한다.

도쿄의 기본 vpc의 IP를 입력한다.

[변경 사항 저장] 후 ping을 쳐본다.

 

잘 간다.

 

반대로 도쿄에서 서울로 핑이 가는 것도 확인해 본다.

-> ping은 왕복으로 움직이는 것이기 때문에, 도쿄에서 서울로 ping이 가는 지 확인하는 작업은 사실상 불필요하다.

하지만 도쿄는 public IP가 없으므로, 서울을 bastio삼아 접근해야 한다. 이 때, key가 필요하다.

 

일단 WEB01(서울 리전)으로 접속한다

tokyo-key.pem을 web01 넣는다.(moba Xterm을 이용)

그 다음 권한을 400으로 바꾼다

 

SSH로 접속한다.

 

 

애초에 퍼블릭 ip가 없으면 통신이 안된다 -> 하지만 aws는 가능하다!

왜냐하면 outbound내에서 연결된 게 있기 때문이다...

 

 

도쿄 - VPC - 탄력적 IP로 간 뒤, 따로 수정 없이 [탄력적 IP 주소 할당] 을 클릭한다.

인스턴스를 만든 뒤에 뒤늦게 public ip를 할당할 수는 없다. - 탄력적 IP를 생성한다.

 

도쿄의 인스턴스를 선택한다.

 

 

ping google.com을 해 보면 잘 간다.

사용이 끝났으면 탄력적 IP를 연결 해제 후 릴리스 해준다.(과금 방지!)

 

 

 

 

 

 

'Public Cloud > AWS' 카테고리의 다른 글

AWS 실습 8  (0) 2022.06.15
AWS 실습 7  (0) 2022.06.14
AWS - RDS 개념, 실습  (0) 2022.05.31
AWS - EC2 인스턴스 스토리지(EBS, EFS)  (0) 2022.05.30
AWS - EC2 Basic 2  (0) 2022.05.27