일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 머신러닝
- 딥러닝
- 생활코딩
- AndroidStudio를활용한안드로이드프로그래밍
- 소스설치
- 밑바닥부터시작하는딥러닝2
- word2vec
- CBOW
- Apache
- deeplearning
- 가비아
- Crawling
- 비지도학습
- 논문리뷰
- attention
- 셀레니움
- 밑바닥부터시작하는딥러닝
- aws
- Selenium
- MySQL
- 크롤링
- image
- 한빛아카데미
- Lamp
- 한빛미디어
- jupyter
- 수동설치
- 예제중심HTML&자바스크립트&CSS
- 프로그램새내기를위한자바언어프로그래밍
- 컴파일설치
- Today
- Total
안녕, 세상!
WSL 사용 경험 본문
웹은 Nginx, BL은 Spring-boot, RDS는 mysql을 이용하여
AWS EC2를 프리티어로 웹서버를 이용하고 RDS를 따로 만들어 데이터베이스를 구축하였습니다.
데이터베이스에 여러 데이터들이 있었고 해당 데이터들을 쿼리를 통해 Rest-api를 만드는 실습을 학습하고 있었습니다.
EC2에 접속은 winscp를 이용하여 SSH 접속으로 해당 서버를 제어한 상태이었으며,
spring-boot는 AWS EC2에서 백그라운드로 실행시켜주고 있었습니다.
그래서 spring-boot의 java코드를 수정하고 업로드 후 빌드 과정에서 중단 현상이 자주 발생했습니다.
이는 AWS의 프리티어가 코어 1개에 램 1G라서 성능이 좋지 않았기 때문이었습니다.
중단 현상이 자주 발생했을 때 Ctrl+c로 실행을 중단시키려고 해도 중단이 되지 않아서
Winscp의 SSH의 세션을 강제로 종료하는 방법밖에 없었습니다.
중단된 상태에서 강제로 세션을 종료하다 보니까 SSH 접속 호스트 인식이 계속 지연되며 접속이 되지 않았습니다.
그래서 EC2를 재부팅시켜주고 다시 접속하려고 해도 몇 십분 동안은 접속이 지연되어서 시간 낭비가 심하게 발생하였습니다.
이를 해결하고자 빌드 과정을 로컬 컴퓨터에서 진행하기로 했습니다.
그러기 위해서 로컬 컴퓨터에 ubuntu 운영체제가 돌아가야 하며, 이후에 nginx를 설치해야 하는데
로컬 컴퓨터는 윈도여서 윈도우 운영체제로는 로컬 컴퓨터가 EC2를 대신할 수 없었습니다.
그래서 이때 WSL을 사용하였습니다.
WSL 2는 Linux용 Windows 하위 시스템 아키텍처의 새로운 버전으로, Linux용 Windows 하위 시스템이 Windows에서 ELF64 Linux 이진 파일을 실행할 수 있게 해 줍니다. WSL 2의 주 목표는 파일 시스템 성능을 높이고 전체 시스템 호출 호환성을 추가하는 것입니다.
간단하게 말하자면 윈도우 운영체제를 리눅스처럼 쓸 수 있다는 것입니다.
그래서 저는 다음 블로그를 참조해서 WSL 2를 설치하고 구현하였습니다.
www.44bits.io/ko/post/wsl2-install-and-basic-usage
WSL 2를 직접 사용해보니 정말 ubuntu처럼 동작이 잘 되고 EC2 대신 로컬 컴퓨터를 개발용으로 Restful api의 response를 확인하기 위한 용도로 사용 가능했습니다.
(RDS에 접근하기 위해서 localhost의 공인 ip에 대해서 mysql 포트를 인바운드 규칙으로 열어줘야 하고,
nginx의 설정파일인 default 파일도 설정해줘야 하며,
wsl을 처음 설치하고 나서 apt update, apt upgrade를 꼭 해준후 필요한 패키지를 설치하는 것이 좋습니다.)
또 Systemctl 명령어로 restart, start, stop이 안돼서 Service 명령어로 restart, start, stop을 해줘야 했습니다.
이렇게 AWS EC2의 성능이 좋지 않을 때 WSL을 이용하여 벡엔드 언어를 개발할 때 유용하게 사용될 수 있습니다.
근데 또 해보니까 api폴더 안의 java코드를 수정하고 그것을 적용시키려면
결국 호스트 컴퓨터의 윈도우 파일 시스템안에서 해결해야합니다.
그래서 그냥 c드라이브안에 새로 파일 만들어서 거기서 리눅스 명령어 실행시켜줘서
빌드랑 java-spring 실행시켰습니다.
또한 nginx는 ubuntu 디렉터리 /etc/nginx로 자동으로 설정되고
비록 /mnt 디렉터리 외부에 있긴하지만 잘 작동이 되었습니다.
참고자료 : docs.microsoft.com/ko-kr/windows/wsl/about
'It공부 > Server' 카테고리의 다른 글
5. 카카오톡 access token 받아오기 (0) | 2021.03.05 |
---|---|
3. AWS RDS 구축 (MySQL) (0) | 2021.02.08 |
2-7 Ubuntu Nginx 서브 도메인 및 Domain Redirection 적용 (0) | 2021.02.03 |
2-6 AWS에 Let's Encrypt로 HTTPS 적용하기 (0) | 2021.02.02 |
2-5 도메인 구입 및 설정 (0) | 2021.02.02 |