2023. 6. 24. 21:56ㆍAWS
선행작업
https://muyeon95.tistory.com/186
https://ap-northeast-2.console.aws.amazon.com/ec2/home?region=ap-northeast-2#Home:
EC2 Instance 생성
AWS EC2 에서는 컴퓨터 하나의 단위를 Instance 라는 이름으로 부른다.
인스턴스 시작 클릭
1. 왼쪽 메뉴에서 "인스턴스" 를 눌러 페이지를 이동
2. 우측 상단에 있는 "인스턴스 시작" 버튼을 눌러 페이지를 이동한다.
3. Ubuntu 선택, Ubuntu Server 22.04 LTS(HVM) 선택 , 아키텍처는 64비트
인스턴스 유형 선택
"프리 티어 사용 가능" 이라고 적혀있는 t2.micre 타입을 선택
"새 키 페어 생성" 선택 후 새 키 페어 생성 클릭 후 키페어 이름, 키페어 유형, 프라이빗 키 파일 형식을 설정한다. RSA, .pem
설정을 마치고 버튼을 누르면 생성한 키 페어 파일이 다운로드 된다.
** 키페어는 서버에 접속할 수 있도록 해주는 신분증이다. 공유 하면 안되고, 잃어버리면 다시는 발급받을 수 없다. EC2 Instance 를 지우기 전까지는 절대 분실하면 안된다.
EC2 Instance 종료하는 법
대상 인스턴스에 마우스 우클릭 > 인스턴스 중지 또는 종료 중 하나를 클릭하면 된다.
EC2 Instance 접속
AWS 에서는 Security Group 또는 보안 그룹 이라는 이름으로 방화벽을 제공한다.
SSH(Secure Shell) 는 일반적으로 다른 컴퓨터에 연결할 때 사용되는 프로그램, 다른 접속 방법보다 보안이 뛰어나 서버 연결을 위해 일반적으로 사용된다.
접속할 Instance 의 방화벽에서 22번 포트가 열려 있어야 접속 가능하다.
AWS EC2 의 경우, 기본적으로 생성하는 Instance 는 이미 22번 포트가 열려있다.
AWS EC2 접속
Mac 은 ssh 가 기본으로 설치되어 있어, 명령어로 바로 접근이 가능하다.
발급받은 Keypair 의 접근 권한을 바꾸어 준다.
cd Download
sudo chmod 400 sparta_keypair.pem
SSH 접속하기
// ssh -i 받은키페어를끌어다놓기 ubuntu@AWS에적힌내아이피
ssh -i sparta_keypair.pem ubuntu@54.180.114.211
Key fingerprint 관련 메시지가 나올 경우 Yes 입력
git bash 를 종료할 때는 exit 명령어를 입력하여 ssh 접속을 먼저 끊어준다.
Node.js 및 MongoDB 설치
node.js
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs
node -v
npm -v
mongoDB
curl -fsSL https://pgp.mongodb.com/server-6.0.asc | sudo gpg -o /usr/share/keyrings/mongodb-server-6.0.gpg --dearmor
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-6.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
sudo mkdir -p /data/db
sudo chown -R 'ubuntu' /data/db
sudo apt-get update
sudo apt-get install -y mongodb-org
sudo service mongod start
sudo service mongod status
Github 에 있는 Repository Clone
git clone 여기에리포지토리주소복사
1. cd 폴더명
2. npm install
3. node app.js
브라우저에 주소 입력
http://복사한IP:3000
하지만 접속이 되지 않는다.
서버 방화벽에서 접속을 허용하지 않았기 때문
EC2 Instance 가 가진 방화벽에서 3000번 포트를 막고 있기 때문에 node.js 로 서버를 아무리 켜도 접속할 수 없다.
https://console.aws.amazon.com/console/home
1. 인스턴스 페이지 접속
2. 생성된 EC2 선택하면 노출되는 하단 창에서 "Security" 탭 선택
이후 Security groups 라는 이름을 가진 링크를 누른다.
인바운드 규칙 변경
1. 인바운드 규칙 편집 클릭
2. 정보 입력 후 저장
Add rule 을 눌러 아래의 정보를 추가로 입력한다.
유형 : HTTP
소스 : Anywhere-IPv4
3.
유형 : 사용자 지정 TCP
포트 범위 : 3000
EC2 Instance 포트 설정 : iptables
iptables : AWS 가 아닌 리눅스 운영체제 내부에서 방화벽 역할을 하는 프로그램
리눅스로 들어오는 모든 요청은 iptables 에 의해 정의된 규칙을 따라 처리되고, 이를 이용해 외부에서 80 포트로 들어오는 요청을 리눅스 내부에서 사용되는 3000 포트로 전달하도록 규칙을 설정한다.
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3000
이후 접속이 되는걸 확인 할 수 있다.
자주쓰는 리눅스 명령어 : https://muyeon95.tistory.com/192
이어서 터미널 접속이 끊기지 않게 하려면 아래 링크를 보면된다.
https://muyeon95.tistory.com/188
'AWS' 카테고리의 다른 글
AWS Serverless Aplication : Hello world Lambda [Lambda, API Gateway, DynamoDB] (1) (0) | 2023.09.11 |
---|---|
AWS EC2 ubuntu postgreSQL 연결 (0) | 2023.09.09 |
AWS EC2 Docker & nGrinder 설치 (0) | 2023.08.28 |
AWS EC2 멈춤 현상 (볼륨 증설하기) (0) | 2023.08.10 |
RDS 사용하기 [ with mysql ] (0) | 2023.06.30 |