기록하는 공부
AWS 웹서버 인스턴스 생성 및 연결 본문
728x90
반응형
웹서버 인스턴스 생성 및 연결
- 퍼블릭노드와 프라이빗 노드 생성(그림 참조)
- 퍼블릭 노드(Bastion)로 ssh 연결
- S3에 업로드되어 있는 ssh 키 파일(.pem) 다운로드(CLI 접근)
- 퍼블릭 노드에서 프라이빗 노드로 ssh 연결
aws configure − aws s3 ls − aws s3 ls s3://bunketname − aws s3 cp s3://bunketname/PriKeyFileName . − ls − ssh -i sshPriKeyFileName ec2-user@PriNodeIP
- 프라이빗 노드(PriNode)에서 S3 접근(NAT GW 없는 환경이라 가정)
- EC2(프라이빗노드)에서 S3로 접근
- $ aws configure
- $ aws s3 ls --> X
- EC2(프라이빗노드)에서 S3로 접근
- VPC 엔드포인트 생성 : VPC > 엔드포인트 >> 엔드포인트 생성
- AWS 서비스 : S3
- 유형 : Gateway
- 라우팅 테이블 : 기존 private 라우팅 테이블 연결 후 확인
- VPC 엔드포인트를 이용한 프라이빗 접근
- EC2(프라이빗노드)에서 S3로 접근
- $ aws s3 ls --> O
- EC2(프라이빗노드)에서 S3로 접근
- 마무리
- VPC 엔드포인트 삭제, S3 삭제, EC2들 종료

1. 이전 실습에서 생성했던 MyVPC 이용

2. 퍼블릭노드와 프라이빗 노드 생성
- 이름 : Bastion (퍼블릭 노드 인스턴스)
- AMI : Amazon Linux 2023 AMI
- 인스턴스 유형 : t2.micro
- 키 페어 새로 생성
- 키 이름 : MyKP002
- .pem (ssh)
- 네트워크 설정
- VPC : MyVPC (이전 실습에서 생성)
- 서브넷 : MyPubSubnet (이전 실습에서 생성)
- 퍼블릭 IP 자동 할당 : 활성화
- 보안 그룹 생성 : SSH 허락
- 나머지 설정 기본값 그대로 생성
- 인스턴스 생성(프라이빗 노드 인스턴스)
- 이름 : PriNode
- AMI : Amazon Linux 2023 AMI
- 인스턴스 유형 : t2.micro
- 키 페어 : MyKP002 (Bastion 서버 만들 때 생성했던 키 페어)
- 네트워크 설정
- 네트워크 : MyVPC
- 서브넷 : MyPriSubnet
- 퍼블릭 IP 자동 할당 : 비활성화
- 보안 그룹 생성 : 22번 포트 허락
- 나머지 설정 기본값 그대로 생성

3. S3 생성 및 키 페어 파일 업로드
- MyPubSubnet에 위치한 Bastion에서 MyPriSubnet에 있는 EC2에게 SSH 접근을 하려면 MyPriSubnet에 있는 EC2의 Private Key를 알아야 한다.
- 하지만, 지금 Bastion에는 Private Key에 대한 정보가 없다.
- 따라서, S3에 키페어를 생성할 때 다운로드 받았던 Private Key 파일을 업로드하여 Bastion에서 다운로드 받을 수 있도록 하는 작업 진행
- 버킷 만들기
- 본인 리전에 맞는 곳 설정
- 유니크한 버킷 이름 설정
- 나머지 기본 값 설정 그대로 생성
- 버킷 이름 : mybucket0815

- 생성한 버킷에 키페어 Private Key 파일 업로드

4. Bastion 서버에서 인스턴스 연결 진행
- IAM > 사용자 > 액세스 키 생성
- 액세스 키 복사
- 비밀 액세스 키 복사

- EC2 > 인스턴스 > Bastion 선택 > 연결

- 인스턴스에 연결

- ssh 로그인
[ec2-user@ip-10-0-1-186 ~]$ aws configure
AWS Access Key ID []: AKIAVVQJT76HENIIN5PY
AWS Secret Access Key []: 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
Default region name []: us-east-2
Default output format []: json
[ec2-user@ip-10-0-1-186 ~]$ aws s3 ls
2024-01-09 14:13:10 mybucket0815
- 위에서 생성했던 버킷에 업로드했던 비밀키 확인 가능
[ec2-user@ip-10-0-1-186 ~]$ aws s3 ls s3://mybucket0815
2024-01-09 14:15:28 1674 MyKP002.pem
- 해당 파일을 Bastion 서버에 복사하기
- 이 과정을 통해서 Bastion 서버에서 PriNode 서버로 접근할 수 있는 Private Key 파일을 획득
[ec2-user@ip-10-0-1-186 ~]$ pwd
/home/ec2-user
[ec2-user@ip-10-0-1-186 ~]$ aws s3 cp s3://mybucket0815/MyKP002.pem .
download: s3://mybucket0815/MyKP002.pem to ./MyKP002.pem
[ec2-user@ip-10-0-1-186 ~]$ ls -l
total 4
-rw-r--r--. 1 ec2-user ec2-user 1674 Jan 9 14:15 MyKP002.pem

5. 퍼블릭 노드(Bastion)로 ssh 연결 퍼블릭 노드에서 프라이빗 노드로 ssh 연결
- 파일 권한 변경 후 ssh 로그인 시도
- 이때, IP 주소는 PriNode의 IP 주소이다.
[ec2-user@ip-10-0-1-186 ~]$ ls -l
total 4
-rw-r--r--. 1 ec2-user ec2-user 1674 Jan 9 14:15 MyKP002.pem
[ec2-user@ip-10-0-1-186 ~]$ chmod 400 *
[ec2-user@ip-10-0-1-186 ~]$ ls -l
total 4
-r--------. 1 ec2-user ec2-user 1674 Jan 9 14:15 MyKP002.pem
[ec2-user@ip-10-0-1-186 ~]$ ssh -i ./MyKP002.pem ec2-user@10.0.3.117
The authenticity of host '10.0.3.117 (10.0.3.117)' can't be established.
ED25519 key fingerprint is SHA256:fSRtYste0TRwj81i8ibxwdoZEVAKCHSDNBz65wFi7Zo.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '10.0.3.117' (ED25519) to the list of known hosts.
, #_
~\_ ####_ Amazon Linux 2023
~~ \_#####\
~~ \###|
~~ \#/ ___ https://aws.amazon.com/linux/amazon-linux-2023
~~ V~' '->
~~~ /
~~._. _/
_/ _/
_/m/'
[ec2-user@ip-10-0-3-117 ~]$

- SSH 로그인, 프라이빗 노드에서 S3 접근 확인
- 프라이빗 노드(PriNode)에서 S3 접근(NAT GW 없는 환경이라 가정)
- EC2(프라이빗노드)에서 S3로 접근
- $ aws configure
- $ aws s3 ls --> X
- 인증도 되고, 권한도 있지만 네트워크가 안되기 때문에 aws s3 ls 같은 명령어가 수행되지 않음
- ctrl+c로 중지
- EC2(프라이빗노드)에서 S3로 접근
[ec2-user@ip-10-0-3-117 ~]$ aws configure
AWS Access Key ID [None]: AKIAVVQJT76HENIIN5PY
AWS Secret Access Key [None]: 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
Default region name [None]: us-east-2
Default output format [None]: json
[ec2-user@ip-10-0-3-117 ~]$ aws s3 ls

6. VPC 엔드포인트 생성
- VPC > 엔드포인트 > 엔드포인트 생성
- 프라이빗 노드가 NAT나 IGW를 거치지 않고 S3와 통신하고 싶은 경우 VPC 엔드포인트 사용
- VPC 대시보드로 이동 - 엔드포인트 클릭
- 이름 : MyVE001
- AWS 서비스 : S3
- 유형 : Gateway
- VPC : MyVPC
- 라우팅 테이블 : 기존 private 라우팅 테이블 연결 후 확인



7. VPC 엔드포인트를 이용한 프라이빗 접근
- 5번 과정에서 중단되었던 aws s3 ls 명령어를 다시 실행
- 성공적으로 결과가 출력되는 것을 확인 가능
[ec2-user@ip-10-0-3-117 ~]$ aws s3 ls
2024-01-09 14:13:10 mybucket0815

8. MyPriRT 라우팅 테이블 살펴보기
- VPC > 라우팅 테이블 > MyPriRT > 라우팅
- 라우팅 테이블을 살펴보면 S3로 연결할 때는 vpc 엔드포인트 전용 게이트웨이로 가도록 지정
- NAT를 삭제했었기 때문에 블랙홀이라고 되어 있음
- 블랙홀 : NAT를 통해 라우팅 하는 것은 사라짐

728x90
반응형
'AWS' 카테고리의 다른 글
AWS RDS 생성 연결 (0) | 2024.01.10 |
---|---|
AWS EBS 생성 및 연결(EC2에 디스크 추가) (1) | 2024.01.09 |
AWS 정적 웹사이트 호스팅 & 버전관리 (0) | 2024.01.09 |