월요일 화요일에 고난의 사고력 연습을 하다가 수요일에는 머리를 조금 덜(?) 쓰는 수업을 하니 좋았다. ㅎㅎ 오늘은 컴퓨터공학의 개론을 간단하게 훑고, 리눅스 환경을 구현해서 명령어를 연습해보고, aws로 컴퓨터를 대여(?)해서 부여받은 ip주소로 가면 내가 만들어놓은 화면을 띄울 수 있도록 하는 것까지 해봤다. aws부터는 완전 처음 보는 거라서 신기하고 재밌었는데, 다음에 혼자도 할 수 있게 정리!!! 참고로 지금 나는 맥북(인텔)을 쓰고 있어서 맥 기준으로 설명을 정리한다.
1. AWS EC2 설치(가상 서버 서비스)
서버를 인스턴스라고 부르는 것 같은데, 인스턴스 시작을 눌러서 우분투로 설정하고 키 페어를 생성한다. 인스턴스의 보안 그룹에서 SSH(포트 22)에 대한 인바운드 규칙을 설정한다.(인스턴스에 대한 SSH 접근을 허용하는 설정)
2. 커맨드 앱 Warp 설치
이건 강의 중에 다른 수강생분께서 맥 쓰면 이게 좋다고 추천해주셔서 깔았다. 아직 뭐가 뭔지 모르겠지만 일단 좋은 것 같다!
3. Warp에서 AWS에서 만든 서버에 접속하기
이 부분이 첨에 좀 어려웠는데, 커맨드창에 ssh 명령어를 사용해서 EC2 인스턴스에 접속해야 한다.
(색깔은 내가 임의로 칠한 것임)
ssh -i /path/to/your-key-pair.pem ec2-user@your-ec2-public-ip
여기서 몇 번의 오류가 나온 끝에 알게된 사실.
path/to/your-key-pair.pem -> 내 키 페어가 들어있는 위치 경로
ec2-user는 대부분의 Amazon Linux AMI 인스턴스의 기본 사용자 이름이라고. 내 경우에는 우분투. (챗지피티의 도움을 받음)
- Amazon Linux: ec2-user
- Ubuntu: ubuntu
- CentOS: centos
- RHEL: ec2-user 또는 root
- Debian: admin 또는 root
- SUSE: ec2-user 또는 root
your-ec2-public-ip는 EC2 인스턴스의 퍼블릭 IP를 의미한다. 인스턴스의 세부정보의 퍼블릭 IPv4 주소 안에서 확인할 수 있다.
모두 잘 넣고 명령어를 쳤는데 오류가 떴다.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/Users/alookso/Downloads/ailab-aws-key.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "/Users/alookso/Downloads/ailab-aws-key.pem": bad permissions
ubuntu@43.202.67.12: Permission denied (publickey).
챗지피티한테 물어보니, SSH 키 파일의 권한이 너무 넓게 설정되어 있어 보안에 문제가 있다는 경고라고. (SSH 키 파일은 보안을 위해 다른 사용자에게 읽기 권한을 주지 않아야 합니다. 이 문제를 해결하려면 SSH 키 파일의 권한을 적절하게 설정해야 합니다. 일반적으로 SSH 키 파일의 권한을 400으로 설정합니다. 이는 파일 소유자만 읽기 권한을 가지게 합니다.)
chmod 400 /Users/alookso/Downloads/ailab-aws-key.pem
다행히 이후부터 warp에서 우분투가 아주 잘 실행됐다. 리눅스 명령어 몇 가지를 연습하고, apt update를 했다.
sudo apt update
apt update에 대한 챗지피티의 간략한 설명
언제 사용하는가?
- 새로 설치한 시스템에서:
- 새로운 우분투 시스템을 설치한 직후, 시스템이 최신 패키지 정보를 가지고 있지 않을 수 있습니다. apt update를 실행하여 최신 패키지 목록을 가져옵니다.
- 패키지를 설치하기 전에:
- 새로운 소프트웨어 패키지를 설치하기 전에, 패키지 목록을 업데이트하여 최신 버전의 소프트웨어를 설치할 수 있도록 합니다.
- 예: sudo apt update를 실행한 후 sudo apt install package-name으로 패키지를 설치합니다.
- 패키지를 업그레이드하기 전에:
- 시스템에 설치된 패키지들을 업그레이드하기 전에, apt update를 실행하여 최신 패키지 목록을 가져옵니다. 그 후 apt upgrade나 apt dist-upgrade 명령어를 실행합니다.
- 예: sudo apt update를 실행한 후 sudo apt upgrade 또는 sudo apt full-upgrade로 업그레이드합니다.
- 저장소 추가 또는 변경 후:
- 새로운 PPA(Personal Package Archive) 또는 저장소를 추가하거나 기존 저장소를 변경한 후, apt update를 실행하여 새로운 저장소의 패키지 목록을 가져옵니다.
- 예: sudo add-apt-repository ppa:example/ppa를 실행한 후 sudo apt update로 패키지 목록을 업데이트합니다.
tomcat 패키지를 검색했는데, 선생님은 tomcat9이 나왔는데 나는 10이 나왔다. 10을 깔았다.
sudo apt-cache search tomcat
sudo apt install -y tomcat10
centreon-plugins - Collection of Nagios plugins to monitor OS, services and network devices
libapache-mod-jk-doc - Documentation of libapache2-mod-jk package
libapache2-mod-jk - Apache 2 connector for the Tomcat Java servlet engine
libjnlp-servlet-java - simple and convenient packaging format for JNLP applications
liblogback-java - flexible logging library for Java
liblogback-java-doc - flexible logging library for Java - documentation
libnetty-tcnative-java - Tomcat native fork for Netty
libnetty-tcnative-jni - Tomcat native fork for Netty (JNI library)
libspring-instrument-java - modular Java/J2EE application framework - Instrumentation
libtcnative-1 - Tomcat native library using the Apache Portable Runtime
libtomcat10-embed-java - Apache Tomcat 10 - Servlet and JSP engine -- embed libraries
libtomcat10-java - Apache Tomcat 10 - Servlet and JSP engine -- core libraries
libtomcat9-java - Apache Tomcat 9 - Servlet and JSP engine -- core libraries
libtomcatjss-java - JSSE implementation using JSS for Tomcat
monitoring-plugins-contrib - Plugins for nagios compatible monitoring systems
python3-ajpy - Python module to craft AJP requests
resource-agents-extra - Cluster Resource Agents
tomcat-jakartaee-migration - Apache Tomcat migration tool for Jakarta EE
tomcat10 - Apache Tomcat 10 - Servlet and JSP engine
tomcat10-admin - Apache Tomcat 10 - Servlet and JSP engine -- admin web applications
tomcat10-common - Apache Tomcat 10 - Servlet and JSP engine -- common files
tomcat10-docs - Apache Tomcat 10 - Servlet and JSP engine -- documentation
tomcat10-examples - Apache Tomcat 10 - Servlet and JSP engine -- example web applications
tomcat10-user - Apache Tomcat 10 - Servlet and JSP engine -- tools to create user instances
yasat - simple stupid audit tool
그 다음에 네트워크 관련 유틸리티 모음, 네트워크 설정과 진단에 쓰는 net-tool을 설치.
sudo apt install net-tools
네트워크 연결 상태를 확인했다.
netstat -nlpt
그 결과 두둥!
http://43.202.67.12:8080/
8080포트로 들어가면 페이지가 열리지 않는다. 인스턴스의 보안 규칙 편집에 들어가 포트범위를 8080을 열어주면 된다.
cd /var/lib/tomcat10/webapps/ROOT
cat index.html
sudo vi index.html
커맨드 창 안에서 html을 편집할 수도 있다; 불편하지만. 어쨌든 html을 만들어서 저기 넣어놓고 아이피 주소와 8080포트로 들어가면 html 페이지가 그대로 열린다. 후후 엄청 신기했다. 여기까지 하고 수업은 끝!!
'공부방 > Upstage AI Lab 4기' 카테고리의 다른 글
부트캠프 현직자, 수료생 특강 (0) | 2024.07.26 |
---|---|
7/25 학습일지 | 시스템 프로그래밍 대충 큰크림과 개념 정리 (0) | 2024.07.25 |
7/23 학습일지 | 논리적 사고력 기르기, 알고리즘 (10) | 2024.07.25 |
7/22 학습일지 | 알고리즘을 위한 논리적인 사고력 기르기 실습 (1) | 2024.07.22 |
[에디터 노트] AI 공부를 시작하면서 느끼는 것들 (0) | 2024.07.20 |