[AWS] 3-Tier 구성 (3/n)

유유·2021년 7월 6일
0

aws

목록 보기
3/5

2.인스턴스 구성하기

2.1 EC2 인스턴스란?

Amazon Elastic Compute Cloud(Amazon EC2는 AWS 클라우드에서 확장 가능 컴퓨팅 용량을 제공합니다. Amazon EC2를 사용하면 하드웨어에 선투자할 필요가 없어 더 빠르게 애플리케이션을 개발하고 배포할 수 있습니다. Amazon EC2를 통해 원하는 만큼 가상 서버를 구축하고 보안 및 네트워크 구성과 스토리지 관리가 가능합니다. 또한 Amazon EC2는 요구 사항이나 갑작스러운 인기 증대 등 변동 사항에 따라 신속하게 규모를 확장하거나 축소할 수 있어 서 버 트래픽 예측 필요성이 줄어듭니다.

자세한 내용은 [여기]를 참고하세요(https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/concepts.html)

2.2 EC2 인스턴스 생성하기

모든 실습의 EC2는 “Amazon Linux AMI” 를 기준으로 생성합니다.

2.2.1 Bastion 인스턴스 생성하기

우선 퍼블릭 서브넷에 위치하게 될 인스턴스를 생성하겠습니다.

“Services” → “EC2” 선택 OR https://console.aws.amazon.com/ec2/ 클릭

이 콘솔 페이지는 Ec2와 관련된 모든 설정을 하는 페이지 입니다.

“Instances” → “Launch Instance”

“Launch Instance”를 클릭하게 되면 아래 7가지 과정을 통하여 인스턴스를 생성할 수 있습니다.

AMI(Amazon Machine Image)를 선택합니다.

AMI(Amazon Machine Image) 는 클라우드의 가상 서버인 인스턴스를 시작하는 데 필요한 정보를 제공하며, 크게 4종 류의 AMI 가 있습니다.

  • Quick Start : Amazon 에서 공식으로 제공하는 AMI 이며, Amazon 에 의해 최신 패치로 release 됩니다.

  • My AMIs : 나의 AWS 계정에서 생성되거나, 다른 AWS 계정에서 공유된 AMI 입니다.

  • AWS Marketplace : Amazon Partner 에서 유료 혹은 무료로 판매하는 AMI 입니다.

  • Community AMIs : 여러 커뮤니티에서 제공하는 AMI 입니다.

본 실습 과정에서는 Free tier 계정에서 무료로 이용할 수 있는 “Amazon Linux AMI” 를 이용하겠습니다.

“Quick Start” → Amazon Linux AMI → “Select”

“t2.micro” → “Next: Configure Instance Details”

Instance Type을 정의합니다.

인스턴스 타입은 00000일 기준 약 00개 정도 있습니다.

사용자는 Ec2 인스턴스에서 실행될 어플리케이션의 워크로드에 따라 인스턴스 타입과 크기를 정의하여야 합니다.

생성될 인스턴스의 세부 설정을 정의 합니다.


  • Number of instances : 생성될 인스턴스의 갯수 입니다.

  • Purchasing option : Spot Instance 를 사용할 것인지를 정의 합니다. Network : VPCVirtual Private Cloud) 를 선택 합니다.

  • Subnet : 인스턴스를 시작할 서브넷을 선택 합니다. “No preference” 옵션은 AWS에 의해 임의의 가용 영역 내 기본 서브넷이 선택 됩니다.

  • Auto-assign Public IP : 생성되는 인스턴스의 퍼블릭 IPv4 주소의 수신 여부를 지정합니다.

  • Placement group : 인스턴스끼리 물리적으로 가깝게 구성하여 네트워크 지연시간을 단축 시키기 위한 배치 그룹 옵 션 입니다.

  • Capacity Reservation : Reserved Instance(RI) 옵션 중 하나의 가용 영역 옵션(Only show offerings that reserve capacity)을 구매하셨을 경우 AWS는 반드시 고객의 리소스가 실행될 수 있게 리소스를 확보해 놓습니다. 이 때 적용될 인스턴스를 정의하는 옵션 입니다.

  • IAM role : 인스턴스와 연결할 IAMAWS Identity and Access Management) 역할을 선택합니다.

  • Shutdown behavior : 인스턴스 종료 시 적용할 인스턴스 상태를 선택 합니다.

  • Enable termination protection : 실수로 인스턴스를 terminate 하는 것을 방지하기 위한 옵션입니다.

  • Monitoring : Default 옵션은 5분 단위로 Amazon CloudWatch 서비스를 통해 지표를 수집하지만, 옵션을 선택하 게 되면 모니터링을 1분 단위로 상세히하게 되며, 추가 비용이 발생합니다.

  • Tenancy : 격리된 전용 하드웨어 또는 전용 호스트에서 실행될 수 있도록 선택하는 옵션입니다. Elastic Inference : GPU 리소스를 임시로 사용하기 위한 옵션입니다.

  • Crdit specification : CPU Credit 에 관계 없이 CPU 성능을 burst 하기 위한 옵션으로 추가 비용이 발생합니다.

  • Network Interfaces : 생성되는 Ec2 인스턴스에 대해 세부 네트워크(ENI, Elastic Network Interface) 설정이 가 능합니다. 가령 특정 Private IP를 반드시 사용 해야 하다는 등의 설정도 가능합니다.

  • Advanced Details : “User data” 를 정의할 수 있습니다.

User data 는 최초 인스턴스가 런치할 때에 수행되는 스크립트 혹은 명령을 의미합니다. 사용자는 User data 를 통해 최초 인스턴스가 런치 될 때에 웹 소스 코드를 다시 내려 받는다던지, Metadata와 Ansible 등 형상관리 어플리케이션 과 연동하여 형상 관리를 자동으로 수행할 수 있습니다.

인스턴스의 스토리지를 정의합니다.

Ec2 Instance의 어떤 OS를 선택하시든 boot partition 은 반드시 필요합니다. 기본적으로 Amazon Linux 는 최소 8GB 의 root 볼륨이 필요합니다.

만약 어플리케이션의 워크로드에 의해 추가 볼륨이 필요할 때는 여러 볼륨 타입과 크기로 추가할 수 있으며, 인스턴스 생성 후에도 필요할 때에 언제든 볼륨을 Attach하거나 Detach 할 수 있습니다.

인스턴스의 Tag 를 기록 합니다.

인스턴스의 Tag는 일반적으로 사용자 혹은 시스템에서 용도 별로 구분하기 위해 사용합니다. 인스턴스의 보안 그룹을 정의 합니다.

Security Group은 IDC 환경의 방화벽과 유사하게 동작하는 논리 방화벽 입니다.

Security Group은 수 많은 프로토콜을 지원하며 IP와 Port base 로 들어오는 트래픽과 나가는 트래픽에 대해 “명시적인 허용” 만을 설정 할 수 있으며, 예외사항으로 정책의 허용으로 들어온 트래픽에 대해서는 허용 하지 않습니다.

  • Type : 트래픽의 서비스를 정의

  • Protocol : 허용할 프로토콜로 일반적으로 등록하는 프로토콜은 TCP, UDP, ICMP 등이 있습니다. Port Range : TCP 혹은 UDP에 대해 허용할 포트의 범위 지정

  • Source : 트래픽에 대한 출발지를 정의, IP 대역이나 Security Group 이 될 수도 있습니다.


Security group은 다음을 포함 할 수 있습니다.
현재 보안 그룹

동일한 VPC에 대한 다른 보안 그룹

VPC Peering 연결에서 동일한 피어 VPC에 대한 다른 보안 그룹

Description : 사용자가 정책을 구분하기 위한 메모


마지막 인스턴스를 런치하기 전 설정 사항을 확인 합니다.

AWS 에서는 기본적으로 Key pair 방식으로 인스턴스의 접근을 제어 합니다.

인스턴스에 접속할 수 있는 유일한 수단이므로 키 관리가 중요 하며, 생성된 키를 분실 하셨을 경우 별도의 작업을 하지 않 는 이상 인스턴스에 접근이 불가합니다.

“Key pair name” 의 이름을 정의 → “Download Key Pair” → “Launch Instances”

이렇게 설정 키페어까지 선택 한 후 'Launch Instance' 를 클릭 하면 아래와 같은 인스턴스 시작 상태를 확인 할 수 있습니 다.


인스턴스를 시작할 때 초기 상태(Instance State)는 pending입니다. 인스턴스가 시작된 후에는 Instance State가 running으로 바뀌고 퍼블릭 DNS를 받습니다.

2.2.2 Private Subnet에 인스턴스 생성하기

이번에는 Public Subnet 이 아닌 Private Subnet 에 인스턴스를 생성하도록 하겠습니다. 이전과 동일한 방식으로 진행하 면 됩니다

Instance Type: t3.xlarge

subnet→ private subnet 선택

2.3 Amazon EC2(Elastic Compute Cloud) 접속하기

2.3.1 사전작업

생성한 "user_public_bastion” 인스턴스에 접근하기 위하여 Security Group 정책을 수정합니다.

본 실습에서는 특정 포트를 통해서만 접근할 수 있도록 Inbound Rule을 아래 이미지와 같이 수정해줍니다.

“Network & Security → “Security Groups” → 해당 Security Group 선택 → “Edit inbound rules”

2.3.2 Amazon EC2(Elastic Compute Cloud)에 접속하기

로컬 컴퓨터의 운영 체제에 따라 로컬 컴퓨터에서 Linux 인스턴스로 연결하는 데 필요한 옵션이 결정됩니다.아래와 같은 다 양한 방법이 있지만, 본 실습에서는 PuTTY를 활용하여 Linux 인스턴스에 연결하도록 하겠습니다.

로컬 컴퓨터 운영 체제가 Linux 또는 macOS X인 경우

SSH 클라이언트

EC2 Instance Connect

AWS 시스템 관리자 Session Manager

로컬 컴퓨터 운영 체제가 Windows인 경우

PuTTY

SSH 클라이언트

AWS 시스템 관리자 Session Manager

Windows Subsystem for Linux

profile
하이

0개의 댓글