클래식과 VPC
- AWS는 클래식 환경이 사라졌다.
클래식 환경에 여러 단점이 있어서 사라진 것.
- NCP에서도 클래식 환경에서 만들었다가 VPC를 만들었다.
아마 따라서 없앨 거라는 예상.
- 실제 네트워크 환경과 유사하려면, VPC 환경에서 작업을 하는 것이 좋다.
- 하지만 초창기 클래식 환경에서 실습을 진행했던 것은 네트워크에 대한 지식이 없는 경우 클래식 환경이 더 편할 수 있기 때문.
- VPC를 사용하는 이유는, 외부와 논리적으로 차단된 네트워크 환경을 구축할 수 있기 때문.
클래식의 경우 그것이 불가능하기 때문에 방화벽이나 ACG를 사용한다.
포트포워딩
- 포트포워딩 : 네트워크 기술 중 하나.
1주차 과제에 VM의 ssh에 접속하려고 사용했던 기술.
포트포워딩이 되어있다면 공인 IP를 할당받을 필요 없다.
대신 포트가 고정되어 있기 때문에 다른 포트로 사용하는 것이 불가능하다.
거의 쓸 일이 없다.
마리아DB / MySQL
엔진이 똑같다. 때문에 MySQL의 데이터 형식이 마리아DB에서도 잘 구동된다.
거의 호환된다.
- 별도의, 내가 원하는 버전의 프로그램을 설치하기 위해 repository를 조작하거나, 만들 필요가 있다.
- NCP의 공공 클라우드에는 MariaDB가 없다.
개인/기업 클라우드에는 있다.
- 사업의 타겟을 하고 있는 곳에 따라 사용할 제품이 다르다.
민간에서는 가능한 것이 공공에서 안되는 경우, 그리고 그 반대의 경우가 꽤나 존재한다.
- 이런 경우를 알아두는 것이 중요하다.
포트와 IP 설정
- 443, 80포트는 전체 0.0.0.0/0으로 열어도 된다. 대중에게 공개되어야 하는 포트이기 때문.
22 포트는 아주 위험할 수 있다.
8080의 경우는 웹 서버의 IP로 제한되어야한다.
DB는 WAS 서버의 IP로 제한되어야한다.
- ACG하나에 많은 IP 접근사항이 들어가는 것은 좋지 않다.
ACG를 여러개로 분리시키는 것도 좋은 방법.
- DB에 접근해야하는 주체 = WAS.
DB의 접근 IP는 WAS의 IP로 제한되어야한다. 모두가 DB에 접근할 수 있다는 것은 아주아주아주아ㅜ자우자우ㅏㅈ우ㅏ주ㅏ주아주 위험하다.
DB 서버의 경우 공인 IP를 사용하지 않는다. 아니, 그러면 안된다.
버전
- open jdk가 버전이 다양하고, 라이브러리의 사용성이 다르다. 다른 언어도 마찬가지일 것.
이 버전 파악이 개발자로서의 첫 걸음이라고 할 수 있다.
- 버전이 높은 것이 항상 좋은 것은 아니다. 호환성이 중요하기 때문!
호환이 되는 버전을 사용하는 것이 중요하다.
- 상용 jdk가 더 좋은듯? 현업에서는 openJDK보다는 상용 JDK를 사용하는 경우가 더 많은 것 같다.
WAS의 계정
- WAS를 root 사용자로 구동하는 것은 바람직하지 못하다.
root로 WAS를 사용하게되면, 클라이언트가 접속하면 root 사용자가 생기게 된다.
악의적인 사용자가 웹 해킹을 성공하고 WAS에 들어오게 된다면, root 사용자가 되게 된다. 리눅스의 모든 명령어를 사용할 수 있고 모든 정보를 볼 수 있게 된다.
역시 아주앚우ㅏ주앚우ㅏ주아주아주 위험.
절대/상대경로
- 절대 경로로 실행하는 것은 그리 좋지 않다.
상대 경로로 실행하는 것이 더 좋다!
절대 경로로 실행하는 것의 장점 : 실행 파일의 위치가 어디있는지 정확히 알 수 있음.
- 절대경로 : 절대 경로의 시작은
/
(루트)로 실행된다.
/
로 실행하는 모든 것을 절대경로라고 한다.
- 상대경로 : 해당 위치에 왔을 때 실행시키는 것. 같은 위치에 있는 실행 파일 등은 실행 가능하지만, 그렇지 않은 경우 실행할 수 없다.
.
= 폴더 자신. ..
= 상위 폴더.
현재 위치에 있는 실행파일을 실행시키고 싶을 때 .
를 사용한다.
./httpd
- 상대/절대 경로 개념은 중요하니 공부하자!
WAS와 DB의 IP
- 공인 IP로 하면 안된다! 속도와 보안 측면에서 불리함.
HTTP 응답 상태 코드.
성공 : 200번대 응답코드
경로 이동 : 300번대
사용자 실수 : 400번대
서버/DB에러 : 500번대
- 에러를 보고 문제를 파악할 수 있는 능력을 길러야한다.
소켓 프로그램
- 여러가지 브라우저 등.
- 톰캣을 실행시키기 위해서는 소켓을 생성해야함.
- IP를 바인드해야 함. IP와 포트가 묶이는 것이 바인드.
- 바인드 후에는 리슨.
리슨을 하면 클라이언트에게 요구를 받을 준비가 된 것. 연결 대기라고 할 수 있다.
- 리슨 이후에는 클라이언트의 요구가 있어야 상태가 변경된다. 억셉트/센드/리시브 등..
netstat
명령어로 조회해 볼 수 있다.
- 127.0.0.1 = 자기 자신. 도메인으로는
localhost
- domain : 사람이 읽기 편하도록 IP와 연관해놓은 것.
- 바인딩 설정을 바꿔줘야 다른 사람이 사용할 수 있다.
자격증 준비
- AWS Solutino Architect.
- NCP 자격증도 있음.
NACL
- 해결 안되면 개짜증남. 너무 어려우니까 안 하는게 나음..
NATgateway
- 외부 통신을 위해서만 쓰는 것은 아니다.
- 클래식 환경에서는 비용효율을 위해 NATgateway를 사용하는 것보다 공인 IP를 터주는 것이 더 나을 수 있다.
VPC환경에서는 어쩔 수 없음.
ssh로 private IP로 들어가는 것은 최선일까?
- 서버에 접속하는 사람은 특정인만!
- ssh를 위한 22번 포트를 모두(0.0.0.0/0)으로 틔워놓는 것은 위험할 수 있다.
- SSL을 설정하는 것이 좋다.
같은 망이면 통신이 가능하지만, 아니면 그렇지 않다. 보안 강화에 도움이 된다!
ping의 함정
- ping은 참고 자료여야지 100% 확신해서는 안된다.
ICMP 기반. ACG에서 막을 수 있기 때문에, ping 명령어 자체가 통하지 않을 수 있다.
운영체제에서 ICMP에 반응하지 않도록 설정할 수 있다.
- ssh가 되는 서버라면 아예 접속해보는 것이 더 확실하다.
핑은 막을 수 있지만, ssh 접속은 가능하므로.
인증서 관련 오류
- 암호화를 할 수 있도록 도와주는 것이 인증서.
wget
curl
등을 https
에 연결하면 안된다. 인증서가 없기 때문.
인증서를 무시할 수 있도록 설정해주어야 한다.
- zabbix
세션구성, 대시보드 꾸미기. 대시보드 응용하기.
텔레그램 연동. 알람 발생.
zabbix에서 발생시킨 알람이 핸드폰의 메신저로 들어오게 연동하기.
교육을 어떻게 맞게 되었는가?
- 수석님과 이사님. 교육을 맞게 되었다.
근데 바빠! 너무 바빠!
그래서 교육 제의를 받았음. 하루 전날.
근데 교육하는 것을 좋아하신다.
아주아주 좋은 기회라고 생각하신다. 우연이지만, 굉장히 큰 축복이자 행운이다.