본문 바로가기

AWS

AWS EC2 인스턴스 생성, apm 연동 //단어 정리 및 해설 주석

https://ndb796.tistory.com/314

 

AWS EC2 인스턴스 생성, 접속, MySQL 설치, Apache, PHP 연동 [한 번에 끝내기]

AWS EC2 인스턴스를 생성한 뒤에, 거기에 접속해서 MySQL, Apache, PHP를 설치하여 연동하는 방법에 대해서 소개하겠습니다. AWS EC2 인스턴스 생성 1. AWS EC2 관리 페이지로 이동합니다. EC2 관리 페이지: ht

ndb796.tistory.com

 

솔직히 단어들 모르고 넘어간게 많아 

정리하고 넘어가보자 정리해보았습니다 

단어 정리 해설 및 주석을 달았습니다 개인적 기록인데 잘 하고 있는건지는 모르겠네요 


 

AWS EC2 인스턴스 생성 무슨 말일까?

-aws에서 제공하는 클라우드 컴퓨팅 서비스 중 하나다 이 서비스를 사용하면 사용자는 가상의 컴퓨터를 구축하고 실행할 수있다  Amazon Machine Image(AMI)와 함께 제공되며 가상 머신 이미지 라고 한다

아마존 리눅스 맥 os 우분투 윈동수 레드헷 이런게 AMI이라고 한다

 

 

Ubuntu Server 18.04 LTS (HVM)

-필자는 Ubuntu Server 18.04 LTS (HVM) 버전이 없어서 Ubuntu Server 20.04 LTS (HVM) 버전을 채택했다 

 

t2.micro

-프리티어로 공짜로 할 수 있는 건가 보다 무조건 공짜는 아니다 주의 정도만 하면 과금은 안 나가는 듯하다 

 

키페어 

chmod 400 {키 페어 파일 이름.pem}

- 키페어는 키 페어는 공개 키와 개인 키의 두 가지로 이루어진 한 쌍을 뜻하며 공개키와 비밀키가 있다 

- chmod 는 리눅스에서 파일권한을 변경하는 커맨드이다 파일 권한을 변경하는 명령어인듯 하다

 

 

ssh -i "{키 페어 파일 이름.pem}" ubuntu@{AWS EC2 서버 URL}

- ssh는 간단하게 안전하게 통신을 하기 위해 사용하는 프로토콜이다 컴퓨터와 컴퓨터의 안전한 연결이다 

 

2. MySQL를 설치하고 접속합니다.

sudo apt update # MySQL 설치를 위해 업데이트 

sudo apt install mysql-server # MySQL 서버 설치 

sudo mysql -u root -p # MySQL 접속

-sudo Super User DO의 뜻으로 강한 권한을 갖는듯하다 

-su는 switch user의 약자입니다. 계정을 전환하는 명령어이다 보통 sudo su라고 쓴다

-apt는 Advanced Package Tool의 약자로 Debian시스템에 포함된 핵심 도구들의 집합체이다 

 

3. MySQL 접속 이후에 비밀번호를 설정합니다.

use mysql; 

CREATE USER '{생성할 사용자 이름}'@'%' IDENTIFIED BY '{비밀번호}'; # 생성할 사용자 비밀번호 설정

GRANT ALL PRIVILEGES ON *.* TO '{사용자 이름}'@'%'; # 외부 접속이 가능하도록 설정

FLUSH PRIVILEGES; #MySql의 캐시를 지우고 새로운 설정을 적용하기 위해서 사용되는 명령어

exit; #나가기

 

 

4. MySQL 설정 파일을 수정합니다. 

cd /etc/mysql/mysql.conf.d; 

sudo vi mysqld.cnf;

-vi는 한 화면을 편집하는 비주얼 에디터(visual editor)라고 한다 편집기이다 

 

5. mysqld.cnf를 수정하여 MySQL의 외부 접속을 허용합니다. 

bind-address = 0.0.0.0

-bind-address = 0.0.0.0는 네트워크 전체 대역, 즉 모든 트래픽에 대해서 요청을 허용한다는 뜻이란다

 

6. 수정 이후에 Mysql를 재시작 합니다. 

sudo service mysql restart -Mysql #재시작 명령어

 

MySQL 외부 접속 테스트 

1. AWS EC2 보안 그룹 페이지로 이동합니다. 

2. 보안 그룹 설정을 진행합니다. [인바운드] - [편집] - [규칙 추가] - [MySQL/Aurora] - 허용 IP로 [0.0.0.0/0]를 설정합니다.

- 허용 IP로 [0.0.0.0/0]로 해야 mysql에서 접속할 수 있게 하는 듯하다 

그냥 이거대로 하면 끝이다

3. MySQL Workbench와 같은 MySQL 관리 도구를 이용하여 접속합니다. 

Hostname: {AWS EC2의 공인 IP 주소} 

Username: {생성한 사용자 이름} 

Password: {비밀번호}

Hostname: {AWS EC2의 공인 IP 주소}
Username: {생성한 사용자 이름}

 

4. MySQL에 접속하여 간단한 쿼리를 날립니다. 

select now();

 

 

Apache 웹 서버 설치 및 환경설정 

1. Apache 웹 서버를 설치합니다. 

sudo apt-get install apache2

 

 

2. AWS EC2 보안 그룹 페이지로 이동합니다. 

3. 보안 그룹 설정을 진행합니다. [인바운드] - [편집] - [규칙 추가] - [HTTP] - 허용 IP로 [0.0.0.0/0]를 설정합니다.

-위에 보안 그룹대로 했다면 할 필요 없다 

 

4. 공인 IP로 접속하여 웹 서버가 정상적으로 구동하는지 확인합니다.

 

여기에 들어가보면 된다

5. apache2.conf 설정 파일을 엽니다. 

sudo vi /etc/apache2/apache2.conf 

 

6. 루트 디렉토리를 [/home/project]로 변경합니.

<Directory /home/project/>

Options Indexes

FollowSymLinks

AllowOverride None Require all granted

</Directory>

 

 

7. default.conf 설정 파일 열기 

sudo vi /etc/apache2/sites-available/000-default.conf 

 

8. 루트 디렉토리를 [/home/project]로 변경합니다. 

DocumentRoot /home/project

 

9. /home/project 폴더 생성 및 index.html 파일을 생성합니다.

sudo mkdir /home/project sudo vi /home/project/index.html

 

10. index.html 파일을 작성합니다.

Hello World!

 

11. Apache 웹 서버 재시작

sudo apachectl restart

 

 

PHP 웹 서버 설치 및 Apache 연동 

1. 간단히 옛날 버전의 PHP 5.6를 설치해보겠습니다. 

sudo add-apt-repository ppa:ondrej/php 

sudo apt-get update 

sudo apt-get install -y php5.6

PHP 5.6 대신에 아래 링크보고 따라해보자 php 7.4 다운

https://blog.uncletom.co.kr/10

 

[Linux]Ubuntu 20.04 웹 서버 구축(3) - PHP 7.4 설치

[Linux]Ubuntu 20.04 웹 서버 구축(3) - PHP 7.4 설치 [Linux] Ubuntu 20.04 Web Server Construction - PHP 7.4 Installation PHP 개요 PHP를 소개하기 전에 웹 페이지 프로그래밍 언어에 대하여 설명을 드립니다. 웹 개발용 언

blog.uncletom.co.kr

 

2. 설치된 PHP 버전을 확인합니다. 

php -version

 

 

3. Apache와 PHP 연동 테스트 

sudo vi /home/project/test.php 

 

4. PHP 소개 페이지를 작성합니다. 

<?php phpinfo();?> 

 

5. 공인 IP의 /test.php로 접속하여 PHP 연동이 제대로 됐는지 확인합니다. 

(index.html 파일을 지워야 할 수 있습니다.)

 

 

 

1. 설치된 패키지를 확인합니다. 

dpkg -l | grep php

 

2. index.php 소스코드를 작성합니다

데이터 베이스를 안 만들었다면 만들어야 한다 

<?php
$conn = mysqli_connect(
  '{데이터베이스 IP}',
  '{사용자 이름}',
  '{비밀번호}',
  '{데이터베이스 이름}',
  '3306');
if (mysqli_connect_errno())
{
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql = "SELECT VERSION()";
$result = mysqli_query($conn, $sql);
$row = mysqli_fetch_array($result);
print_r($row["VERSION()"]);
?>

 

 

 

'AWS' 카테고리의 다른 글

액세스가 거부되었습니다.  (0) 2023.09.13
AWS EC2 인스턴스 종료 삭제 하기  (0) 2023.09.13