티스토리 뷰
이전 글에서 Public Subnet에 있던 백엔드 서버 EC2를 Private Subnet으로 옮기는 작업을 수행하였습니다. 하지만 새로 생성한 EC2에 서버가 실행되지 않아서 정상적으로 동작하지 않았습니다. 따라서 이번 글에서는 Private Subnet에 생성된 EC2에 ssh로 접속하여 직접 서버를 실행시켜 보도록 하겠습니다.
1. Public Subnet에 생성할 EC2의 보안 그룹 생성
EC2를 생성하기 전 먼저 보안 그룹을 생성합니다. 해당 보안 그룹은 ssh 접속만 허용합니다.
2. Public Subnet에 EC2 생성
기존 Public Subnet 중 하나에 새로운 EC2를 생성합니다. 이때 퍼블릭 IP를 활성화하고 위에서 생성한 보안 그룹을 지정합니다. (EC2 생성 방법은 기존에도 많이 다루었기에 사진을 생략합니다.)
3. 로컬에서 Public Subnet EC2로 ssh 접속
로컬에서 아래 명령으로 ssh config 파일을 오픈합니다.
$ vi ~/.ssh/config
이후 아래와 같이 Public Subnet EC2에 접속할 정보를 적습니다.
Host ssh_접속시_사용할_이름
HostName 새로운_EC2의_Public_IP
User ec2-user
IdentityFile ~/.ssh/XXXXXX.pem #pem 파일 경로
pem 파일의 경우 EC2 생성 마지막 단계에서 새로 생성하여 다운 받았거나 기존에 사용하던 pem 파일을 지정했다면 해당 파일의 경로를 적어주면 됩니다.
ssh로 EC2에 접속하는 방법에 대한 추가 내용은 아래 글을 참고하세요.
https://hanbee1005.github.io/aws/ec2/ssh/mac/2021/10/08/aws-ec2-ssh.html
위와 같이 설정 파일을 작성하고 로컬에서 Public Subnet의 EC2로 접속합니다.
$ ssh 설정에서_사용한_Host명
4. pem 파일 전달
Private Subnet의 EC2로 접속하기 위해서도 Public Subnet EC2에 접속할 때처럼 pem 파일이 필요합니다. 따라서 아래 명령을 통해 로컬에 있는 pem 파일을 Public Subnet의 EC2로 전달합니다.
#파일 전송시
$ scp -i [pem file] [upload file] [user id]@[ec2 public IP]:~/[transfer address]
#예시
$ scp -i ~/.ssh/XXXXX.pem ~/.ssh/XXXXX.pem ec2-user@XXX.XXX.XXX.XXX:~/.ssh
위 명령을 통해 파일을 전달하면 Public Subnet EC2의 ~/.ssh 경로에 파일이 정상적으로 복사된 것을 볼 수 있습니다.
5. Public Subnet EC2에서 Private Subnet EC2로 접속
이제 Public Subnet EC2에서 Private Subnet EC2로 접속하기 위해 ssh config 파일을 작성하겠습니다. 위에서와 같은 방식으로 config 파일을 열어 아래 내용을 작성합니다.
$ vi ~/.ssh/config
Host ssh_접속시_사용할_이름
HostName Private_Subnet_EC2_Private_IP #2a 가용영역의 EC2용
User ec2-user
IdentityFile ~/.ssh/XXXXX.pem
Host ssh_접속시_사용할_이름
HostName Private_Subnet_EC2_Private_IP #2c 가용영역의 EC2용
User ec2-user
IdentityFile ~/.ssh/XXXXX.pem
위와 같이 설정을 마친 뒤, ssh 명령으로 접속을 하면 Private Subnet의 EC2에 접속할 수 있습니다. 기존 EC2를 그대로 복사하여 만든 것이기 때문에 백엔드 소스가 그대로 저장되어 있을 것입니다. 따라서 build 디렉토리로 이동하여 서버를 실행하고 브라우저에서 접속하면 정상적으로 웹 서비스가 동작하는 것을 확인할 수 있습니다.
$ cd build
$ node server
지금까지 구성을 살펴보면 다음과 같습니다.
이번 글에서와 같이 직접 서버를 실행해도 되지만 매번 이렇게 하는 것은 번거롭고 좋지 않은 방법입니다. 이전에 자동 CI/CD를 통해 소스를 수정하면 자동으로 EC2에 배포하고 서버까지 실행되도록 하는 방법이 있었습니다. 다음 글에서는 Private Subnet의 EC2로 자동 배포하고 서버를 실행하는 방법을 알아보겠습니다.
'AWS' 카테고리의 다른 글
[AWS CloudFront] 도메인 이름 접속 시 index.html로 자동 이동 (0) | 2021.11.16 |
---|---|
[AWS Subnet] 서버 Private Subnet으로 옮기기(3) (0) | 2021.11.16 |
[AWS Subnet] 서버 Private Subnet으로 옮기기(1) (0) | 2021.11.15 |
[AWS Lambda] CloudFront Invalid Cache 자동화 (0) | 2021.11.12 |
[AWS Code###] 여러 EC2에 CodeDeploy로 자동 배포하기 (0) | 2021.11.12 |
- Total
- Today
- Yesterday
- 소수
- DFS
- permutation
- BFS
- 수학
- SWIFT
- EC2
- CodePipeline
- AWS
- sort
- 조합
- Baekjoon
- search
- string
- Dynamic Programming
- 에라토스테네스의 체
- java
- ionic
- programmers
- CodeDeploy
- map
- Algorithm
- array
- Combination
- spring
- cloudfront
- CodeCommit
- 프로그래머스
- ECR
- 순열
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |