지난 시간 우리는 소규모 아키텍트를 제작하기 위해 AWS 에서 사용되는 서비스 종류를 7가지 살펴보았습니다. 각 너무나 대표적인 서비스라서 하나도 놓치지 말아야 하는데요, 오늘은 이 7가지의 서비스 중 가장 핵심이 되는 서버 구축 즉, EC2 제작을 해보려고 합니다. 제작하기 전에 EC2에 대한 간단한 개념을 갖기 위해서는 1편 보시는 것을 추천드립니다.
AWS 소규모 아키텍트 (1) - AWS Service 톺아보기
안녕하세요. 지금부터는 본격적인 AWS서비스와 함께 우리가 무엇을 구현해야 하는지, 왜 이 서비스를 사용하는지에 대해서 본격적으로 탐구해보도록 하겠습니다. 저희는 소규모 아키텍트를 제
oueya1479.tistory.com
EC2 생성
EC2를 제작하기 위해서 AWS 홈페이지에 접속하여 EC2를 검색합니다.
하나의 서버를 형성하기 위해서는 인스턴스라는 소메뉴에 들어가야 하는데요, 각 서버를 칭하는 말이 여기서는 인스턴스 입니다.
아직 인스턴스가 존재하지 않아 아무것도 없습니다.
인스턴스를 생성하시기 전에 꼭 Region을 확인하시기 바랍니다. Region은 상단 우측에 위치하고 있으며 인스턴스가 생성되는 지역을 의미합니다. 저는 '서울'로 선택했습니다.
이름 및 태그
인스턴스 이름을 입력하는 곳입니다.
애플리케이션 및 OS 이미지
다음은 애플리케이션 및 OS 이미지에 대한 선택입니다.
서버를 생성하기 전 OS를 선택하여 원하는 이미지를 가져올 수 있습니다. 여기서 이미지는 저번 시간에 설명했듯이 하나의 모든 정보들을 캡쳐하여 가지고 있는 상태에서, 그것과 똑같은 EC2를 생성하기 위한 하나의 수단이었습니다. 마찬가지로 OS에서도 똑같이 적용됩니다.
OS선택에서는 ubuntu를 선택해서 진행할 것이며 각 취향에 맞게 선택하시길 바라겠습니다.
이후 아래의 선택창에서는 운영체제의 세부사항 이미지를 볼 수 있습니다. 현재 선택되어 있는 것들은 aws의 세부 운영체제라서 보기 어려울 수도 있지만 가령 Window가 선택되어 있는 환경에서는 다음과 같은 선택사항들을 볼 수 있습니다.
Microsoft Windows Server 2019 with SQL Server 2019 Standard
Microsoft Windows Server 2019 with SQL Server 2019 Enterprise
Microsoft Windows Server 2019 with SQL Server 2017 Standard
Microsoft Windows Server 2019 with SQL Server 2017 Enterprise
.
.
.
가장 중요한 것은 과금이 되지 않기 위해서는 '프리 티어 사용 가능'이 포함된 OS만 선택해야 한다는 것입니다. 우리는 테스트 개발환경을 제작하여 생성 및 배포에 대해 알아볼 것이기 때문에 특출난 사양도 필요하지 않으며, 더욱이 과금될 필요가 없습니다.
따라서 꼭 프리티어 사용가능한 것인지에 대해 확인하시고 선택하시길 바라겠습니다.
인스턴스 유형
서버의 사양이 결정되는 곳입니다. 여기서 우리는 t2.micro를 선택해야 합니다. 혼자만 프리티어거든요.
t2.micro의 이름이 조금 특이하다고 생각하실 수 있습니다. 위 사진에서 우측에 위치한 스크롤을 보면 알다시피 정말 많은 인스턴스 유형이 존재하며, 각 이름당 규칙이 존재합니다. 이름에 대한 규칙이 궁금하시다면 다음 경로를 클릭하여 확인해보시기 바랍니다.
AWS 인스턴스 유형 이름 규칙 알아보기
EC2를 생성하기 위해서는 OS이미지 및 인스턴스 유형에 대해서 선택해야 합니다. 많이 들었다시피 t2.micro는 AWS에서 지원하는 프리 티어 인스턴스 유형입니다. 그렇다면 t2의 정체는 무엇이고, 왜 m
oueya1479.tistory.com
키 페어
다음은 키 페어에 대한 입력입니다. 안전한 EC2의 접속을 위해 키 페어의 생성이 필요합니다.
키 페어를 생성하게 되면 공개키(public key)와 개인키(private key)가 동시에 생성되며, 공개키는 AWS에 업로드되고, 개인키는 자신의 디바이스에 파일로써 가지고 있게 됩니다.
키 페어는 다음과 같이 생성됩니다.
⚠️확인
.pem : OpenSSH와 함께 사용
.ppk : PuTTY와 함께 사용
Mac유저는 굳이 ppk로 생성하지 않아도 연결할 수 있습니다.
네트워크 세팅
네트워크 세팅은 보안 그룹에 대한 설정이 가능합니다. 상황에 따라 간편하게 구성되어 있는 보안 그룹을 선택할수도 있고, 기존 보안 그룹에 대해 생성할 수도 있습니다.
여기서 먼저 인바운드, 아웃바운드의 방화벽 설정이 가능합니다.
인바운드란, 인스턴스로 들어오는 수신 트래픽을 제어합니다. 즉, 우리가 이 EC2에 접근할 때 인스턴스에서는 이를 관리해야 하며 그 관리하는 규칙이 바로 인바운드 규칙입니다.
아웃바운드는 그 반대로, 인스턴스에서 밖으로 빠져나갈 때에 발신 트래픽을 제어하는 역할을 합니다. 즉, 인스턴스에서 다시 우리에게 데이터를 전송할 때에는 아웃바운드의 규칙을 제어합니다.
간편하게 구성되어 있는 보안 그룹은 SSH, HTTP, HTTPS에 대해 설정이 가능합니다. 인터넷에서 바로 HTTP, HTTPS 트래픽을 허용시킬 수 있도록 간편하게 설정할 수 있으며, SSH의 경우 위치 무관, 사용자 지정, 내 IP와 같이 추가 설정이 가능합니다.
SSH가 설정되어 있어야만 우리는 EC2에 대해 접근해서 설정할 수 있기 때문에 체크해주시는 편이 좋습니다.
여기서 SSH란 Secure SHell의 약어로 네트워크간 원격 접속을 가능케하는 프로토콜을 의미합니다. 즉, 선택을 해주어야만 제작시 따로 설정하지 않고도 바로 접근할 수 있도록 도와줍니다.
💡Tip
만약 보안 그룹 세팅을 통해 새롭게 보안 그룹을 작성할 경우 이후에 그 보안그룹에 대해 접근할 때에는
기존 보안 그룹 선택을 클릭하시면 됩니다.
만약, 기존 보안 그룹을 새롭게 제작하거나 관리하고 싶다면 VPC를 입력하여 왼쪽 사이드메뉴에서 보안 그룹을 선택하시면 됩니다.
여기에서 입력하는 인바운드 규칙과 아웃바운드 규칙을 따라 보안그룹이 생성되고, 이는 EC2를 제작할 때에 불러올 수 있습니다.
스토리지 구성
인스턴스의 용량에 대해 선택합니다. 보통 EC2는 어떤 데이터베이스의 성격을 갖기보다는 서버의 성격이 강합니다. 따라서 큰 용량의 서버를 굳이 가지지 않아도 유연한 운영을 펼칠 수가 있습니다.
스토리지 구성은 다양한 성능과 퍼포먼스로 나뉘지만, OS선택 및 인스턴스 유형처럼 신중하게 알고 넘어가기에는 중요하지 않습니다.
aws에서 제공하는 볼륨 유형을 살펴보려면 다음 링크로 접속하여 확인해주시기 바랍니다.
Amazon EBS 볼륨 유형 - Amazon Elastic Compute Cloud
Amazon EBS 볼륨 유형 Amazon EBS는 다음의 볼륨 유형을 제공하고 이러한 볼륨 유형은 성능 특성과 가격이 다르므로 애플리케이션의 필요에 맞게 스토리지 성능과 비용을 조정할 수 있습니다. 볼륨 유
docs.aws.amazon.com
인스턴스 제작을 누르게 되면 다음과 같은 화면이 나옵니다.
가장 중요한 부분이 남았습니다.
그것은 이 인스턴스에 접근하는 방법입니다.
우리의 준비물은 다음과 같습니다.
- Terminal (mac을 사용하고 있습니다.)
- key 페어 중 private key
- 위의 사진에서 퍼블릭 IPv4 주소
EC2 접근하기
가장 먼저 개인 키를 생성한 폴더로 접근해서 키에대한 접근 권한을 변경해주어야 합니다. 그냥 접근하게 되면 권한에 대해 부인되면서 접속이 되지 않습니다. 저는 /Users/heony/key 라는 곳에 key를 저장해두었고, 다음은 key에 명령을 내리는 방법입니다.
heony@gimdongheon-ui-MacBookPro ~ % cd /Users/heony/key
heony@gimdongheon-ui-MacBookPro key % chmod 700 i-am-key.pem
heony@gimdongheon-ui-MacBookPro key %
cd로 해당 디렉토리에 접근해서 권한을 부여해도 되고, 다음과 같이 부여해도 됩니다.
heony@gimdongheon-ui-MacBookPro ~ % chmod 700 /Users/heony/key/i-am-key.pem
heony@gimdongheon-ui-MacBookPro ~ %
💡Tip
자신에게 맞는 권한 추가하기. 이 외에도 여러가지 방식이 존재합니다.
chmod 000 test.pem : 사용자, 그룹, 다른사용자의 모든 권한을 제거한다.
chmod 777 test.pem : 사용자, 그룹, 다른사용자의 모든 권한을 추가한다.
chmod 700 test.pem : 사용자에게만 모든 권한을 준다.
chmod 744 test.pem : 사용자에게는 모든 권한을 주고, 그룹, 다른 사용자에게는 읽기 권한만 준다.
key에 대해 권한이 부여되었다면 인스턴스의 퍼블릭 IPv4주소와 함께 키 페어를 입력하면 됩니다.
yes를 입력하는 것도 잊지 마세요.
// 형식은 다음과 같다.
ssh -i [key의 위치와 key파일 이름] [사용자이름]@[퍼블릭IPv4주소]
// 여기서 사용자이름은 OS마다 다르다.
// ubuntu를 OS로 선택했기 때문에 사용자 이름을 ubuntu로 입력하면 된다.
// 다음과 같이 입력하면 된다.
ssh -i /Users/heony/key/i-am-key.pem ubuntu@
ec2-3-34-125-16.ap-northeast-2.compute.amazonaws.com
heony@gimdongheon-ui-MacBookPro ~ % ssh -i /Users/heony/key/i-am-key.pem ubuntu@
ec2-3-34-125-16.ap-northeast-2.compute.amazonaws.com
The authenticity of host 'ec2-3-34-125-16.ap-northeast-2.compute.amazonaws.com (3.34.125.16)' cant be established.
ED25519 key fingerprint is SHA256:ckZpe/xCWPOsuF3SJSpfDsxDuPr/yuS0NZT604NHINA.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
우리는 접속하는 방법이 ssh -i [key] [사용자이름]@[퍼블릭IPv4]라는 것을 알았습니다.
여기서 사용자 이름은 OS가 ubuntu이었기 때문에 ubuntu로 지정했지만 만약 다른 OS를 선택하셨다면 다음을 참고해주세요.
Amazon Linux 2 또는 Amazon Linux AMI의 경우 사용자 이름은 ec2-user입니다.
CentOS AMI의 경우 사용자 이름은 centos 또는 ec2-user입니다.
Debian AMI의 경우 사용자 이름은 admin입니다.
Fedora AMI의 경우 사용자 이름은 fedora 또는 ec2-user입니다.
RHEL AMI의 경우 사용자 이름은 ec2-user 또는 root입니다.
SUSE AMI의 경우 사용자 이름은 ec2-user 또는 root입니다.
Ubuntu AMI의 경우 사용자 이름은 ubuntu입니다.
Oracle AMI의 경우 사용자 이름은 ec2-user입니다.
Bitnami AMI의 경우 사용자 이름은 bitnami입니다.
그렇지 않은 경우 AMI 공급자에게 문의하세요.
이렇게 EC2에 대한 내용을 마칩니다.
우리는 이 인스턴스에 대해 앞으로 Load Balancing과 Auto Scaling을 통해 유연한 운영을 하기 위한 일들을 수행할 것입니다. 만약 이 인스턴스를 제작하고 사용할 일이 없으시다면 꼭 종료해주시기 바랍니다. 그렇지 않으면 어쨌든 과금이 나갈 수가 있습니다..
750시간 방치해두었다가 조금 과금된 사람
'PROGRAMMING > AWS' 카테고리의 다른 글
AWS EC2 인스턴스 구매 옵션 (0) | 2022.07.29 |
---|---|
AWS 소규모 아키텍트 (3) - Load Balancing과 AMI (0) | 2022.07.26 |
AWS 인스턴스 유형 이름 규칙 알아보기 (0) | 2022.07.26 |
AWS 소규모 아키텍트 (1) - AWS Service 톺아보기 (0) | 2022.07.26 |
AWS IAM에 대한 이해, 우리는 왜 IAM을 사용해야 하는가. (1) | 2022.03.08 |