1. AWS 서버 설정하기
linux hostname 설정
- sudo hostnamectl set-hostname [name]
shell prompt 설정
sudo vi ~/.bashrc
USERNAME=BASTION
PS1='[\\e[1;31m$USERNAME\\e[0m][\\e[1;32m\\t\\e[0m][\\e[1;33m\\u\\e[0m@\\e[1;36m\\h\\e[0m \\w] \\n\\$ \\[\\033[00m\\]'
## [\\e[1;31m$USERNAME\\e[0m] - USERNAME 영역
## [\\e[1;32m\\t\\e[0m] - 시간대
## [\\e[1;33m\\u\\e[0m@\\e[1;36m\\h\\e[0m \\w] \\n\\$ \\[\\033[00m\\] - 아마도 그 외
## USERNAME 영역 제외한 쉘 추가 결과
[14:26:13][ubuntu@bastion ~]
$
logger 를 사용하여 감사로그 남기기
- /var/log/messages 의 경우 파일이 없다. 우분투 10버전부터는 생성하지 않는 것이 기본 옵션!
- web 서버 -> bastion 서버로 감사 로그 남기기
- manage 보안 그룹 인바운드 규칙 > UDP 514 포트 public 보안 그룹으로 추가
- bastion 서버 > /etc/rsyslog.conf 포트 주석 해제
- web 서버 > /etc/rsyslog.d/50-default.conf > local0.* @[bastion private IP] 추가
ssh 접속 오류
- 특정 장소에서 접속 허용 IP 추가했는데 안됨 알고보니 SK브로드밴드에서 22를 비롯 다양한 port를 막아둬서..?!
- 참고 : [AWS] EC2, ssh online - timeout, port 22 problem
포트포워딩
- 8080 포트로 실행중인 서버에 대해 80 포트로 포트포워딩
- Ubuntu 20.04 Firewall 설정
- 참고 : AWS- ec2 포트 포워딩(port forwarding)
- 포트포워딩 오류가 났는데 해답은 서버 reboot!
sudo reboot
sudo iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -i eth0 -p tcp --dport 8080 -j ACCEPT
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
sudo iptables -L -n -t nat
도커 mysql 설치
- 권한문제 → docker 계정에 유저를 추가 → 도커 권한문제 해결하기
- 한글 인코딩 문제 → Mac M1 docker mysql 설치 및 실행
- Docker를 사용하여 MySQL 설치하고 접속하기
2. 배포 스크립트
서비스 배포하기
- bash shell 비교 연산자 - Bash Shell - 문자열 비교 연산자
- shell progress bar - [Bash Shell Script] 쉘 스크립트 로딩 바 구현
- crontab - [Linux] crontab 설정 및 로그 확인
- /etc/rsyslog.d/50-default.conf 에서 cron 관련 주석 해제하기
- crontab 로그에서 MTA 관련 로그 → mail 설치 → 환경 선택은 local로
- /etc/crontab과 crontab의 차이
Spring 설정 관련
- ActiveProfiles - 로컬 실행, test 실행, 서버 배포시의 서버 정보를 다르게 하기 위한 어노테이션
서버 시간 재설정하기
- 최초 AWS 구축시 UTC 적용으로 한국 시간과 8시간 차이가 나서 맞춰줌
- 참고 : [AWS EC2] 서버 시간 동기화 및 타임존 설정
- 시간 동기화 타임존 설정은 패스하고 실제 표준시간대 심볼릭 설정만 해줘도 시간이 변경됨
- rm /etc/localtime
- ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime
반응형