일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- RDS
- 로그분석
- 클라우드 자격증
- 클라우드보안
- Burp Suite
- 인스턴스
- metasploit
- 개인정보보호법
- ISMS-P
- 보안컨설팅
- 와이어샤크
- 로드밸런서
- AWS
- mysql
- 클라우드자격증
- AWS SAA
- 공개키
- isms
- 취약점
- Iam
- 클라우드서비스
- 네이버클라우드
- ncp
- 클라우드
- 파일시그니처
- azure
- 정보보호
- AWS SSA
- EC2
- 정보보안
- Today
- Total
처음 만나는 클라우드 보안
[AWS]아마존리눅스-RDS를 활용한 웹서버 구축: 쉘스크립트오류+그누보드오류 해결 본문
연결 구상도: 아마존 리눅스(web)-RDS(DB)
1. DB 생성
RDS에서 Private네트워크로 생성, 퍼블릭 액세스 '아니요' 선택
- EC2를 통한 DB 연결
: 엔드포인트를 통한 워크벤치 접속 불가(보안 그룹을 Anywhere로 해도 불가) 하기 때문에 EC2로 접속해야 함
$ sudo yum update
$ sudo yum install mysql // mysql클라이언트 기능 사용 가능
$ sudo mysql -h경로 -u계정 -p
$ sudo mysql -h(엔드포인트) -u(yngmin) -p
Enter password: RDS생성 시 지정한 비밀번호
create database gnuboard;
이하 입력 불필요 (gnuboard에서 세팅)
create user board@'%' identified by 'info12#$';
grant all privileges on gnuboard.* to board@'%';\
2. 웹서버 생성
EC2 아마존 리눅스 인스턴스 생성, 쉘 스크립트로 자동화
Shell Script 작성
반복되는 Shell 명령어들은 스크립트 형태로 간편하게 작성 가능
- 선언문 상단에는 항상 #!/bin/bash
- 작성본은. sh 포맷으로 저장 후 S3에 업로드
- wget으로 웹서버로 다운로드 및 실행
#!/bin/bash
yum update -y
amazon-linux-extras install -y lamp-mariadb10.2-php7.4 php7.4
yum install -y httpd mariadb-server
systemctl start httpd
systemctl enable httpd
usermod -a -G apache ec2-user
chown -R ec2-user:apache /var/www
chmod 2775 /var/www
find /var/www -type -d -exec chmod 2775 {} \;
find /var/www -type -f -exec chmod 0664 {} \;
echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php
yum install git
cd /var/www/html
git clone https://github.com/gnuboard/gnuboard5
cd gnuboard5
mkdir data
chmod 777 data
yum install php php-mariadb php-common php-gd php-fpm php-xml php-json php-curl
systemctl restart httpd
3. 스크립트 다운 후 실행
$ sudo yum update
$ sudo wget 'https://yngmin.s3.ap-northeast-2.amazonaws.com/test5.sh'
$ sudo chmod 700 amazn1.sh // 초기 다운 파일은 권한이 낮음
$ sudo sh amzn1.sh // 셸 스크립트 시작 httpd설정 + 웹 툴 + gnu보드 설치
■ 트러블슈팅
▶쉘 스크립트의 개행 문자로 인한 실행오류
위와 같이 작성된 쉘 스크립트를 실행했지만, 계속해서 설치에 실패했다. 스크립트는 지정된 경로를 찾지 못했고 끝부분에? 가 붙은 오류 파일들만 생겨났다. 찾아보니 이러한 오류는 쉘 스크립트의 '(CR:Carriage Return) \r'로 발생한 것이었고, 일반적인 에디터가 아닌 리눅스 vi -b 스크립트 파일명을 이용해 확인할 수 있다.
해결 방법: vi -b 커맨드 모드에서 개행 문자들을 모두 공백으로 치환해준다.
:%s/^M/ /g ----(참고) ^M은 ctrl+v와 crtl+m으로 입력 가능
▶아마존 우분투의 php7.4 버전업 이슈
최종적으로 웹서버에 설치된 그누보드의 설정을 통해 데이터베이스 접속을 완성 짓는 단계에서 공란의 에러 창이 발생했다. 커멘드 창의 오류를 통해 아마존 리눅스 사용에는 php7.4 번전이 필요로 함을 알 수 있다.
해결방법: sudo amazon-linux-extras install php7.4 // 아마존 리눅스의 php 버전 7.4에 대한 의존성 해결
참고자료
'클라우드 기초 > Amazon AWS' 카테고리의 다른 글
[AWS]오토스케일링이란: 그룹생성방법 & 조정정책설정 (0) | 2022.06.15 |
---|---|
[AWS]우분투 커맨드라인으로 AWS이용하기 (0) | 2022.06.14 |
[AWS] RDS를 이용한 웹서버 구축: 온프레미스+클라우드 (0) | 2022.06.14 |
[AWS]클라우드 관계형 데이터 베이스(RDS) 생성 & 워크벤치 연결 (0) | 2022.06.14 |
[AWS]아마존 윈도우 서버 원격 데스크톱 연결방법 (0) | 2022.06.13 |