ubuntu 20.04 버전에 node.js를 설치해봅니다.

node는 서버 프로그래밍을 위한 js 런타임으로 javaScript로 확장 가능한 백엔드 기능을 개발할 수 있습니다.

 

1. CURL 설치

node를 설치하기 전 커맨드 라인 툴을 설치해야 합니다.

CURL은 서버와 통신할 수 있는 커맨드 명령어 오픈소스 툴로 아래의 명령어로 설치합니다.

$ sudo apt-get install -y curl
Reading package lists... Done
Building dependency tree
Reading state information... Done
curl is already the newest version (7.68.0-1ubuntu2.7).
curl set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

 

2. apt 패키지 매니저 이용하여 설치

apt 패키지 매니저를 update 합니다.

$ sudo apt update
Hit:1 http://ap-northeast-2.ec2.archive.ubuntu.com/ubuntu focal InRelease
.....
Get:42 http://security.ubuntu.com/ubuntu focal-security/multiverse amd64 c-n-f Metadata [512 B]
Fetched 22.8 MB in 4s (5470 kB/s)
Reading package lists... Done
Building dependency tree
Reading state information... Done
48 packages can be upgraded. Run 'apt list --upgradable' to see them.

nodejs를 설치합니다.

$ sudo apt install nodejs
Reading package lists... Done
Building dependency tree
Reading state information... Done
nodejs is already the newest version (10.19.0~dfsg-3ubuntu1).
0 upgraded, 0 newly installed, 0 to remove and 48 not upgraded.

버전 확인을 통해 설치 확인을 합니다.

$ nodejs -v
v10.19.0

노드 패키지 매니저인 npm을 다운로드합니다.

$  sudo apt install npm
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
...

npm 버전 확인을 통해 설치 확인을 합니다.

$ npm -v
6.14.4

 

node 버전이 너무 낮은 문제점이 발생하여 최신 버전으로 설치해보도록 하겠습니다.

$ curl -sL https://deb.nodesource.com/setup_14.x -o nodesource_14_setup.sh
 

다운로드한 shell을 실행합니다.

$ sudo bash nodesource_14_setup.sh
## Installing the NodeSource Node.js 14.x repo...
## Populating apt-get cache...
+ apt-get update
Hit:1 http://ap-northeast-2.ec2.archive.ubuntu.com/ubuntu focal InRelease
Hit:2 http://ap-northeast-2.ec2.archive.ubuntu.com/ubuntu focal-updates InRelease
Hit:3 http://ap-northeast-2.ec2.archive.ubuntu.com/ubuntu focal-backports InRelease
Get:4 http://security.ubuntu.com/ubuntu focal-security InRelease [114 kB]
Fetched 114 kB in 2s (69.3 kB/s)
Reading package lists... Done
## Confirming "focal" is supported...
+ curl -sLf -o /dev/null 'https://deb.nodesource.com/node_14.x/dists/focal/Release'
## Adding the NodeSource signing key to your keyring...
+ curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | gpg --dearmor | tee /usr/share/keyrings/nodesource.gpg >/dev/null
## Creating apt sources list file for the NodeSource Node.js 14.x repo...
+ echo 'deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_14.x focal main' > /etc/apt/sources.list.d/nodesource.list
+ echo 'deb-src [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_14.x focal main' >> /etc/apt/sources.list.d/nodesource.list
## Running `apt-get update` for you...
+ apt-get update
Hit:1 http://ap-northeast-2.ec2.archive.ubuntu.com/ubuntu focal InRelease
Hit:2 http://ap-northeast-2.ec2.archive.ubuntu.com/ubuntu focal-updates InRelease
Hit:3 http://ap-northeast-2.ec2.archive.ubuntu.com/ubuntu focal-backports InRelease
Get:4 https://deb.nodesource.com/node_14.x focal InRelease [4583 B]
Get:5 https://deb.nodesource.com/node_14.x focal/main amd64 Packages [774 B]
Hit:6 http://security.ubuntu.com/ubuntu focal-security InRelease
Fetched 5357 B in 0s (11.9 kB/s)
Reading package lists... Done
## Run `sudo apt-get install -y nodejs` to install Node.js 14.x and npm
## You may also need development tools to build native addons:
     sudo apt-get install gcc g++ make
## To install the Yarn package manager, run:
     curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/yarnkey.gpg >/dev/null
     echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
     sudo apt-get update && sudo apt-get install yarn
 

다운로드한 버전으로 node를 설치합니다.

$ sudo apt install nodejs
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
  fontconfig-config fonts-dejavu-core gyp javascript-common libauthen-sasl-perl libc-ares2 libdata-dump-perl
  libdrm-amdgpu1 libdrm-intel1 libdrm-nouveau2 libdrm-radeon1 libencode-locale-perl libfile-basedir-perl
  libfile-desktopentry-perl libfile-listing-perl libfile-mimeinfo-perl libfont-afm-perl libfontconfig1 libfontenc1
  libgl1 libgl1-mesa-dri libglapi-mesa libglvnd0 libglx-mesa0 libglx0 libhtml-form-perl libhtml-format-perl
  libhtml-parser-perl libhtml-tagset-perl libhtml-tree-perl libhttp-cookies-perl libhttp-daemon-perl libhttp-date-perl
  libhttp-message-perl libhttp-negotiate-perl libice6 libio-html-perl libio-socket-ssl-perl libio-stringy-perl
...
Use 'sudo apt autoremove' to remove them.
The following packages will be REMOVED:
  libnode-dev libnode64 node-gyp nodejs-doc npm
The following packages will be upgraded:
  nodejs
1 upgraded, 0 newly installed, 5 to remove and 46 not upgraded.
Need to get 25.4 MB of archives.
After this operatio , 87.7 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 https://deb.nodesource.com/node_14.x focal/main amd64 nodejs amd64 14.19.3-deb-1nodesource1 [25.4 MB]
Fetched 25.4 MB in 0s (61.0 MB/s)
(Reading database ... 75731 files and directories currently installed.)
Removing npm (6.14.4+ds-1ubuntu2) ...
Removing node-gyp (6.1.0-3) ...
Removing libnode-dev:amd64 (10.19.0~dfsg-3ubuntu1) ...
Removing nodejs-doc (10.19.0~dfsg-3ubuntu1) ...
dpkg: libnode64:amd64: dependency problems, but removing anyway as you requested:
 nodejs depends on libnode64 (= 10.19.0~dfsg-3ubuntu1).
...
Removing libnode64:amd64 (10.19.0~dfsg-3ubuntu1) ...
(Reading database ... 74289 files and directories currently installed.)
Preparing to unpack .../nodejs_14.19.3-deb-1nodesource1_amd64.deb ...
Unpacking nodejs (14.19.3-deb-1nodesource1) over (10.19.0~dfsg-3ubuntu1) ...
Setting up nodejs (14.19.3-deb-1nodesource1) ...
Processing triggers for libc-bin (2.31-0ubuntu9.7) ...
Processing triggers for man-db (2.9.1-1) ...
 

node버전을 확인해 보니 제대로 설치되었습니다.

$ node -v
v14.19.3
 
 

 

728x90
반응형

spring boot로 구현되어 있는 backend에서 aws sqs sdk 사용을 해보려고 합니다.

소스는 aws 개발자 안내서를 참조하여 작성하였습니다.

https://docs.aws.amazon.com/ko_kr/sdk-for-java/v1/developer-guide/setup-project-gradle.html

 

Gradle에서 SDK 사용하기 - AWS SDK for Java

이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오.

docs.aws.amazon.com

 

개발자 가이드에 따르면 Gradle의 버전에 따라 프로젝트 설정 방법이 달라지므로, 사용 중인 Gradle의 버전부터 확인해 보도록 하겠습니다.

 

현재 사용 중인 Intellij에서 Gradle Version 확인 방법은 아래와 같습니다.

1. 프로젝트 내에서 gradle 폴더를 찾습니다.

2. wrapper 내 2개의 파일 중 gradle-wrapper.properties 파일을 찾아 열어봅니다.

gradle version 확인

저의 버전은 7.1을 사용하고 있습니다.

 

아래에서 보듯이 5.0 이상이면 1단계는 건너뛸 수 있어요. 2단계부터 진행해보도록 하겠습니다.

 

기존에 소스를 살펴보면 build.gradle에 dependency가 정리되어 있습니다.

이 부분에 implemention을 추가해 줍니다.

implementation platform('com.amazonaws:aws-java-sdk-bom:1.11.1000')
implementation 'com.amazonaws:aws-java-sdk-s3'
implementation "com.amazonaws:aws-java-sdk-sqs"

"com.amazonaws:aws-java-sdk-sqs" 뒷부분에 ":version 정보"를 입력하여 특정 정보의 sdk를 사용하도록 설정할 수도 있습니다. 생각보다 간단하네요;;;

다음에는 sqs 연결을 하여 메시지를 전송하는 부분에 대하여 포스팅해보도록 하겠습니다.

728x90
반응형

지난번에 1,2 과정에 이어서 나머지 작업을 진행해보겠습니다.

https://sound-story.tistory.com/23

 

[Client VPN 구축] 2. 클라이언트 VPN 엔드포인트 생성

지난번에 이어 Client VPN 구축 작업을 해보겠습니다. https://sound-story.tistory.com/22 [Client VPN 구축] 1. Client VPN이란, 인증서 및 키 생성 AWS Client VPN은 AWS 리소스 및 온프레미스 네트워크의 리소..

sound-story.tistory.com

 

3. 클라이언트에서 VPN 연결 활성화

① [대상 네트워크 연결] 탭에서 [대상 네트워크 연결]을 실행한다.

② VPC와 연결할 서브넷을 선택한다. private 서브넷에 연결하기 위해 private 서브넷을 선택하며, 현재 a와 c 2개의 private subnet을 구성하였으므로 두 개의 대상 네트워크를 두 번에 걸쳐 연결한다.

 

③ 이제  Client VPN 엔드포인트의 상태가 Availble로 변경되면, 클라이언트가 VPN 연결을 설정할 수 있지만, 권한 부여 규칙을 추가할 때까지는 VPC 내 리소스에 액세스 할 수 없다.

4. 클라이언트가 네트워크에 연결하도록 승인

① 권한 부여 규칙을 생성하여 VPC에 액세스할 수 있는 클라이언트를 지정한다.

5. 클라이언트 VPN 엔드포인트 구성 파일 다운로드

① [클라이언트 구성 다운로드]를 클릭하여 .ovpn형태의 Client config 파일을 다운로드한다.

② 다운로드한 client config 파일을 아래와 같은 형태로 수정한다.

 

다운받은 config 내용
...
reneg-sec 0
<cert>
client1.domain.tld.crt
</cert>
<key>
client1.domain.tld.key
</key>


6. Client VPN 엔드포인트에 연결

① AWS Client VPN download

https://aws.amazon.com/ko/vpn/client-vpn-download/ 에서 다운로드하여 설치한다.

② openVPN을 실행하여 config파일을 import 한다.

  

③ vpn연결

 

728x90
반응형

지난번에 이어 Client VPN 구축 작업을 해보겠습니다.

https://sound-story.tistory.com/22

 

[Client VPN 구축] 1. Client VPN이란, 인증서 및 키 생성

AWS Client VPN은 AWS 리소스 및 온프레미스 네트워크의 리소스에 안전하게 액세스 할 수 있도록 하는 관리형 클라이언트 기반 VPN 서비스이다. Client VPN에서는 OpenVPN 기반 VPN 클라이언트를 사용하여

sound-story.tistory.com

 

2. 클라이언트 VPN 엔드포인트 생성

① Amazon VPC 콘솔에 접속한다.

② [클라이언트 VPN 엔드포인트]를 선택한 다음 [클라이언트 VPN 엔드포인트 생성]을 클릭한다.

Client VPN 엔드포인트의 이름과 설명을 입력하고, 클라이언트 IPv4 CIDR에서 클라이언트 IP 주소를 할당할 IP 주소 범위를 지정한다.

④ 서버 인증서 ARN에 서버에서 사용할 TLS 인증서의 ARN을 지정한다. 클라이언트는 서버 인증서를 사용하여 연결할 Client VPN 엔트포인트를 인증한다.

⑤ VPC와 보안 그룹을 선택한다.

⑥ 태그를 지정하고 [클라이언트 VPN 엔드포인트 생성]을 클릭한다.

⑦ 생성이 되면 목록에 Pending-associate 상태로 조회되고, 나머지 설정이 완료되어야 Available 상태가 된다.

 

728x90
반응형

AWS Client VPN은

  • AWS 리소스 및 온프레미스 네트워크의 리소스에 안전하게 액세스 할 수 있도록 하는 관리형 클라이언트 기반 VPN 서비스이다.
  • Client VPN에서는 OpenVPN 기반 VPN 클라이언트를 사용하여 어떤 위치에서든 리소스에 액세스 할 수 있다.

AWS Client VPN 구성도


Client VPN 시작하기

1. 서버와 클라이언트 인증서 및 키 생성

Client VPN이 인증서를 사용하여 클라이언트와 서버 간의 인증을 수행한다. 서버 인증서를 AWS Certificate Manager(ACM)에 업로드하고 Client VPN 엔트포인트를 생성할 때 지정하기 위해 인증서 및 키를 생성한다.

 

① EasyRSA 다운로드 (https://github.com/OpenVPN/easy-rsa/releases)에서 사용 중인 OS 버전에 해당하는 ZIP 파일을 다운로드한 후 압축을 푼다.

② 명령 프롬프트를 열고 EasyRSA-3.x 폴더가 추출된 위치로 이동한다.

③ 다음 명령으로 EasyRSA3 셸을 연다.

PS D:\EasyRSA-3.0.8> .\EasyRSA-Start.bat

Welcome to the EasyRSA 3 Shell for Windows.
Easy-RSA 3 is available under a GNU GPLv2 license.

Invoke './easyrsa' to call the program. Without commands, help is displayed.

EasyRSA Shell
#
 

④ 새 PKI 환경을 시작한다.

 
# ./easyrsa init-pki
path = D:/EasyRSA-3.0.8/pki/easy-rsa-7056.a47484/tmp.XXXXXX
lpPathBuffer = C:\Users\KIMSOR~1\AppData\Local\Temp\
szTempName = C:\Users\KIMSOR~1\AppData\Local\Temp\tmpED7.tmp
path = C:\Users\KIMSOR~1\AppData\Local\Temp\tmpED7.tmp
fd = 3

init-pki complete; you may now create a CA or requests.
Your newly created PKI dir is: D:/EasyRSA-3.0.8/pki

 

⑤ 아래 명령을 실행하고 Common Name을 지정한다.

 
# ./easyrsa build-ca nopass
Using SSL: openssl OpenSSL 1.1.0j  20 Nov 2018
path = D:/EasyRSA-3.0.8/pki/easy-rsa-17364.a27448/tmp.XXXXXX
lpPathBuffer = C:\Users\KIMSOR~1\AppData\Local\Temp\
szTempName = C:\Users\KIMSOR~1\AppData\Local\Temp\tmp8814.tmp
path = C:\Users\KIMSOR~1\AppData\Local\Temp\tmp8814.tmp
fd = 3
path = D:/EasyRSA-3.0.8/pki/easy-rsa-17364.a27448/tmp.XXXXXX
lpPathBuffer = C:\Users\KIMSOR~1\AppData\Local\Temp\
szTempName = C:\Users\KIMSOR~1\AppData\Local\Temp\tmp8A85.tmp
path = C:\Users\KIMSOR~1\AppData\Local\Temp\tmp8A85.tmp
fd = 3
Generating RSA private key, 2048 bit long modulus
........+++++
...........+++++
e is 65537 (0x010001)
path = D:/EasyRSA-3.0.8/pki/easy-rsa-17364.a27448/tmp.XXXXXX
lpPathBuffer = C:\Users\KIMSOR~1\AppData\Local\Temp\
szTempName = C:\Users\KIMSOR~1\AppData\Local\Temp\tmp8DD1.tmp
path = C:\Users\KIMSOR~1\AppData\Local\Temp\tmp8DD1.tmp
fd = 3
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Common Name (eg: your user, host, or server name) [Easy-RSA CA]:bcheck-vpn

CA creation complete and you may now import and sign cert requests.
Your new CA certificate file for publishing is at:
D:/EasyRSA-3.0.8/pki/ca.crt

 

⑥ 서버 인증서 및 키를 생성한다.

 
# ./easyrsa build-server-full server nopass
Using SSL: openssl OpenSSL 1.1.0j  20 Nov 2018
path = D:/EasyRSA-3.0.8/pki/easy-rsa-27984.a18696/tmp.XXXXXX
lpPathBuffer = C:\Users\KIMSOR~1\AppData\Local\Temp\
szTempName = C:\Users\KIMSOR~1\AppData\Local\Temp\tmp6B85.tmp
path = C:\Users\KIMSOR~1\AppData\Local\Temp\tmp6B85.tmp
fd = 3
path = D:/EasyRSA-3.0.8/pki/easy-rsa-27984.a18696/tmp.XXXXXX
lpPathBuffer = C:\Users\KIMSOR~1\AppData\Local\Temp\
szTempName = C:\Users\KIMSOR~1\AppData\Local\Temp\tmp6E44.tmp
path = C:\Users\KIMSOR~1\AppData\Local\Temp\tmp6E44.tmp
fd = 3
path = D:/EasyRSA-3.0.8/pki/easy-rsa-27984.a18696/tmp.XXXXXX
lpPathBuffer = C:\Users\KIMSOR~1\AppData\Local\Temp\
szTempName = C:\Users\KIMSOR~1\AppData\Local\Temp\tmp70E4.tmp
path = C:\Users\KIMSOR~1\AppData\Local\Temp\tmp70E4.tmp
fd = 3
Generating a RSA private key
..................................................+++++
....+++++
writing new private key to 'D:/EasyRSA-3.0.8/pki/easy-rsa-27984.a18696/tmp.a37600'
-----
path = D:/EasyRSA-3.0.8/pki/easy-rsa-27984.a18696/tmp.XXXXXX
lpPathBuffer = C:\Users\KIMSOR~1\AppData\Local\Temp\
szTempName = C:\Users\KIMSOR~1\AppData\Local\Temp\tmp89BB.tmp
path = C:\Users\KIMSOR~1\AppData\Local\Temp\tmp89BB.tmp
fd = 3
path = D:/EasyRSA-3.0.8/pki/easy-rsa-27984.a18696/tmp.XXXXXX
lpPathBuffer = C:\Users\KIMSOR~1\AppData\Local\Temp\
szTempName = C:\Users\KIMSOR~1\AppData\Local\Temp\tmp991D.tmp
path = C:\Users\KIMSOR~1\AppData\Local\Temp\tmp991D.tmp
fd = 3
path = D:/EasyRSA-3.0.8/pki/easy-rsa-27984.a18696/tmp.XXXXXX
lpPathBuffer = C:\Users\KIMSOR~1\AppData\Local\Temp\
szTempName = C:\Users\KIMSOR~1\AppData\Local\Temp\tmpA0BE.tmp
path = C:\Users\KIMSOR~1\AppData\Local\Temp\tmpA0BE.tmp
fd = 3
path = D:/EasyRSA-3.0.8/pki/easy-rsa-27984.a18696/tmp.XXXXXX
lpPathBuffer = C:\Users\KIMSOR~1\AppData\Local\Temp\
szTempName = C:\Users\KIMSOR~1\AppData\Local\Temp\tmpA3FA.tmp
path = C:\Users\KIMSOR~1\AppData\Local\Temp\tmpA3FA.tmp
fd = 3
Using configuration from D:/EasyRSA-3.0.8/pki/easy-rsa-27984.a18696/tmp.a18692
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
commonName            :ASN.1 12:'server'
Certificate is to be certified until Aug  1 01:07:23 2024 GMT (825 days)

Write out database with 1 new entries
Data Base Updated

 

⑦ 클라이언트 인증서 및 키를 생성한다.

 
# ./easyrsa build-client-full client1.domain.tld nopass
Using SSL: openssl OpenSSL 1.1.0j  20 Nov 2018
path = D:/EasyRSA-3.0.8/pki/easy-rsa-30692.a37232/tmp.XXXXXX
lpPathBuffer = C:\Users\KIMSOR~1\AppData\Local\Temp\
szTempName = C:\Users\KIMSOR~1\AppData\Local\Temp\tmp15E9.tmp
path = C:\Users\KIMSOR~1\AppData\Local\Temp\tmp15E9.tmp
fd = 3
path = D:/EasyRSA-3.0.8/pki/easy-rsa-30692.a37232/tmp.XXXXXX
lpPathBuffer = C:\Users\KIMSOR~1\AppData\Local\Temp\
szTempName = C:\Users\KIMSOR~1\AppData\Local\Temp\tmp18A8.tmp
path = C:\Users\KIMSOR~1\AppData\Local\Temp\tmp18A8.tmp
fd = 3
path = D:/EasyRSA-3.0.8/pki/easy-rsa-30692.a37232/tmp.XXXXXX
lpPathBuffer = C:\Users\KIMSOR~1\AppData\Local\Temp\
szTempName = C:\Users\KIMSOR~1\AppData\Local\Temp\tmp1B39.tmp
path = C:\Users\KIMSOR~1\AppData\Local\Temp\tmp1B39.tmp
fd = 3
Generating a RSA private key
.........................+++++
....................................................................+++++
writing new private key to 'D:/EasyRSA-3.0.8/pki/easy-rsa-30692.a37232/tmp.a14580'
-----
path = D:/EasyRSA-3.0.8/pki/easy-rsa-30692.a37232/tmp.XXXXXX
lpPathBuffer = C:\Users\KIMSOR~1\AppData\Local\Temp\
szTempName = C:\Users\KIMSOR~1\AppData\Local\Temp\tmp3141.tmp
path = C:\Users\KIMSOR~1\AppData\Local\Temp\tmp3141.tmp
fd = 3
path = D:/EasyRSA-3.0.8/pki/easy-rsa-30692.a37232/tmp.XXXXXX
lpPathBuffer = C:\Users\KIMSOR~1\AppData\Local\Temp\
szTempName = C:\Users\KIMSOR~1\AppData\Local\Temp\tmp3AA7.tmp
path = C:\Users\KIMSOR~1\AppData\Local\Temp\tmp3AA7.tmp
fd = 3
path = D:/EasyRSA-3.0.8/pki/easy-rsa-30692.a37232/tmp.XXXXXX
lpPathBuffer = C:\Users\KIMSOR~1\AppData\Local\Temp\
szTempName = C:\Users\KIMSOR~1\AppData\Local\Temp\tmp3D38.tmp
path = C:\Users\KIMSOR~1\AppData\Local\Temp\tmp3D38.tmp
fd = 3
Using configuration from D:/EasyRSA-3.0.8/pki/easy-rsa-30692.a37232/tmp.a20456
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
commonName            :ASN.1 12:'client1.domain.tld'
Certificate is to be certified until Aug  1 01:09:08 2024 GMT (825 days)

Write out database with 1 new entries
Data Base Updated

 

⑧ EasyRSA 셸을 종료한다.

 
# exit

 

⑨ 인증서 및 키 파일 정리

사용할 파일 목록은 아래와 같다.  편의를 위에 C:\bcheck-vpn 폴더를 생성하여 이동시킨다.

pki\ca.crt
pki\issued\server.crt
pki\private\server.key
pki\issued\client1.domain.tld.crt
pki\private\client1.domain.tld.key

 

 
PS D:\EasyRSA-3.0.8> mkdir C:\bcheck-vpn

    Directory: C:\

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d----        2022-04-29 오전 10:21                bcheck-vpn

PS D:\EasyRSA-3.0.8> copy pki\ca.crt C:\bcheck-vpn
PS D:\EasyRSA-3.0.8> copy pki\issued\server.crt C:\bcheck-vpn
PS D:\EasyRSA-3.0.8> copy pki\private\server.key C:\bcheck-vpn
PS D:\EasyRSA-3.0.8> copy pki\issued\client1.domain.tld.crt C:\bcheck-vpn
PS D:\EasyRSA-3.0.8> copy pki\private\client1.domain.tld.key C:\bcheck-vpn
PS D:\EasyRSA-3.0.8> cd C:\bcheck-vpn
PS C:\bcheck-vpn>

 

⑩ 서버와 클라이언트 인증서 및 키를 ACM에 업로드한다. Client VPN 엔드포인트를 생성하려는 리전과 동일한 리전에 업로드해야 한다.

 
PS C:\bcheck-vpn> aws acm import-certificate --certificate fileb://server.crt --private-key fileb://server.key --certificate-chain fileb://ca.crt
{
    "CertificateArn": "arn:aws:acm:ap-northeast-2:160270626841:certificate/aeef8187-ddf6-4f2d-b265-86883eb18409"
}

PS C:\bcheck-vpn> aws acm import-certificate --certificate fileb://client1.domain.tld.crt --private-key fileb://client1.domain.tld.key --certificate-chain fileb://ca.crt
{
    "CertificateArn": "arn:aws:acm:ap-northeast-2:160270626841:certificate/e5d819da-734b-4327-9e9b-1b3512486f02"
}

 

⑪ Amazon ACM 콘솔에서 [인증서 나열]에서 생성한 서버와 클라이언트 인증서를 확인한다.

 

728x90
반응형

aws자원을 이용하면서 어렵게 느껴졌던 부분이 네트워크와 보안이었어요.

오늘은 bastion host를 이용하여 private subnet에 있는 DB server에 접속하는 설정을 해보겠습니다.

 

AWS console 화면에 접속해주세요.

"인스턴스 시작"을 눌러 인스턴스를 생성해 봅니다.

 

업데이트가 빠른 Image 목록이 보이네요. 제일 최신 버전으로 선택해 봅니다.

 

비용에 연연하지 않는 편이지만, 그래도 공짜는 좋으니까요^^ 프리티어로 선택했어요.

 

다음으로 인스턴스 세부 정보를 구성합니다.

네트워크 : 사용할 VPC를 선택하는데요. 새 VPC를 생성해도 되지만 저는 기존에 사용하던 VPC를 선택했어요.

서브넷 : VPC를 선택하면 그와 연결된 서브넷 목록이 보입니다. 그중 퍼블릭 서브넷을 선택해 주면 됩니다.

스토리지는 기본값으로 설정하고 넘어가겠습니다.

 

다음은 태그입니다. aws계정을 여러 명이 사용하다 보면 태그가 중요해요.

누가 어떤 용도로 만들었는지 tag를 달아주는 것이 추후에 관리하기 편리합니다.

 

다음으로 보안 그룹이에요.

기존에 사용 중인 보안 그룹이 없다면 새 보안 그룹을 선택하여 허용할 포트를 설정해 주면 됩니다.

 

 

저는 bastion host용 보안 그룹을 이미 만들어 두어서 그걸로 선택하였습니다.

아래 인바운드 규칙을 보시면 ssh사용을 위한 22번 포트, mongoDB연결을 위한 27017 포트가 허용되어 있어요.

 

새로운 보안 그룹을 생성할 때에도 위의 인바운드 규칙을 참고하셔서 만드시면 됩니다.

 

검토 및 시작을 누르게 되면 7단계 인스턴스 시작 검토 내용이 나오고, 키 페어 선택하는 화면이 나옵니다.

키 페어는 해당 ec2에 연결할 때 사용할 인증서라고 보시면 됩니다.

새 키 페어를 생성하는 경우 키 페어 이름을 입력한 다음 [키 페어 다운로드]를 통하여 보관하면 됩니다.

 

저는 기존에 사용 중인 키 페어를 선택하였어요. 키 페어를 선택하면 

"해당 프라이빗 키 파일에 액세스 할 수 있으며 이 파일이 없으면 내 인스턴스에 로그인할 수 없음을 확인합니다." 이 부분에 동의를 해주고 [인스턴스 시작]을 해주면 됩니다.

인스턴스 시작이 됩니다.

 

728x90
반응형

+ Recent posts