AWS EC2 인스턴스 생성, 접속, MySQL 설치, Apache, PHP 연동 [한 번에 끝내기]
AWS EC2 인스턴스를 생성한 뒤에, 거기에 접속해서 MySQL, Apache, PHP를 설치하여 연동하는 방법에 대해서 소개하겠습니다.
AWS EC2 인스턴스 생성
1. AWS EC2 관리 페이지로 이동합니다.
EC2 관리 페이지: https://ap-northeast-2.console.aws.amazon.com/ec2/v2/home

2. [인스턴스 시작] 버튼을 눌러 [Ubuntu Server 18.04 LTS (HVM), SSD Volume Type]로 인스턴스를 생성합니다.

3. 무료 유형인 [t2.micro] 인스턴스 유형을 선택한 뒤 [검토 및 시작] 버튼을 누릅니다. 이후에 인스턴스를 시작할 수 있도록 하면 됩니다.

4. 키 페어를 생성해 저장한 뒤에 [인스턴스 시작] 버튼을 누릅니다.

인스턴스 접속
1. 아까 EC2 접속 목적의 키 페어 파일을 준비합니다.

2. 키 페어에 적절한 권한을 줍니다.
1) 리눅스: 다음의 명령어로 권한을 설정합니다.
chmod 400 {키 페어 파일 이름.pem}
2) 윈도우: 키 페어를 우클릭 한 뒤에 [속성] - [보안] - [고급] - [상속 사용 안 함] - [명시적 사용] - [관리자 제외하고 모든 그룹 삭제]를 진행합니다. 이후에 관리자 권한으로 CMD를 실행합니다.

3. SSH 명령어로 서버에 접속합니다. 서버 접속 주소는 [Connect] 버튼을 누르면 나옵니다.
ssh -i "{키 페어 파일 이름.pem}" ubuntu@{AWS EC2 서버 URL}

저는 다음과 같은 명령어를 확인할 수 있습니다.

이제 다음과 같이 SSH로 AWS EC2 서버에 접속해보겠습니다.

MySQL 서버 설치 및 환경설정
1. AWS EC2 서버에 접속합니다.
2. MySQL를 설치하고 접속합니다.
sudo apt update # MySQL 설치를 위해 업데이트
sudo apt install mysql-server # MySQL 서버 설치
sudo mysql -u root -p # MySQL 접속

3. MySQL 접속 이후에 비밀번호를 설정합니다.
use mysql;
CREATE USER '{생성할 사용자 이름}'@'%' IDENTIFIED BY '{비밀번호}'; # 생성할 사용자 비밀번호 설정
GRANT ALL PRIVILEGES ON *.* TO '{사용자 이름}'@'%'; # 외부 접속이 가능하도록 설정
FLUSH PRIVILEGES;
exit;

4. MySQL 설정 파일을 수정합니다.
cd /etc/mysql/mysql.conf.d;
sudo vi mysqld.cnf;
(이 때 만약 vi가 설치되어 있지 않다면 다음과 같이 vim을 설치합니다.)

5. mysqld.cnf를 수정하여 MySQL의 외부 접속을 허용합니다.
bind-address = 0.0.0.0
6. 수정 이후에 Mysql를 재시작 합니다.
sudo service mysql restart
MySQL 외부 접속 테스트
1. AWS EC2 보안 그룹 페이지로 이동합니다.
2. 보안 그룹 설정을 진행합니다. [인바운드] - [편집] - [규칙 추가] - [MySQL/Aurora] - 허용 IP로 [0.0.0.0/0]를 설정합니다.

3. MySQL Workbench와 같은 MySQL 관리 도구를 이용하여 접속합니다.
Hostname: {AWS EC2의 공인 IP 주소}
Username: {생성한 사용자 이름}
Password: {비밀번호}

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
12. 공인 IP로 접속하여 웹 서버가 정상적으로 구동하는지 확인합니다.

PHP 웹 서버 설치 및 Apache 연동
1. 간단히 옛날 버전의 PHP 5.6를 설치해보겠습니다.
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install -y php5.6
(이 때 만약 add-apt-repository가 설치되어 있지 않다면 다음과 같이 설치합니다.)

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

3. Apache와 PHP 연동 테스트
sudo vi /home/project/index.php
4. PHP 소개 페이지를 작성합니다.
<?php phpinfo();?>
5. 공인 IP의 /index.php로 접속하여 PHP 연동이 제대로 됐는지 확인합니다.
(index.html 파일을 지워야 할 수 있습니다.)

PHP와 MySQL 연동
1. MySQL 연동 라이브러리를 설치합니다.
sudo apt install php5.6-mysql
sudo service mysql restart
sudo apachectl restart
2. 설치된 패키지를 확인합니다.
dpkg -l | grep php

3. 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()"]);
?>

4. 접속 결과를 확인합니다.

정상적으로 MySQL, PHP, Apache가 설치되어 연동이 모두 완료되었습니다.
'AWS' 카테고리의 다른 글
| Serverless 프레임워크(Framework)의 기본적인 사용법 (0) | 2019.06.04 |
|---|---|
| AWS API Gateway와 Lambda를 활용해 REST API 구축하기 ③ (2) | 2019.05.28 |
| AWS API Gateway와 Lambda를 활용해 REST API 구축하기 ② (0) | 2019.05.21 |
| AWS API Gateway와 Lambda를 활용해 REST API 구축하기 ① (0) | 2019.04.24 |
| AWS Lambda(Node.js)와 AWS DynamoDB 연동 예제 (2) | 2019.04.24 |
인터넷으로 사업자 폐지 하는 방법 (홈택스 이용)
사업자 폐지를 하고 싶을 때는 일반적인 경우 홈택스를 이용해, 인터넷으로 손쉽게 사업자 폐지를 할 수 있습니다. 사업자 폐지를 인터넷으로 하고자 한다면 다음과 같이 홈택스에 방문하면 됩니다.
▶ 홈택스(Hometax): https://www.hometax.go.kr
방문 이후에는 가장 먼저 로그인을 해주세요.

로그인 이후에는 다음과 같이 [신청/제출] 탭으로 이동합니다.

이후에 [휴폐업신고] 탭으로 이동하여 폐업 신고를 진행하면 됩니다.

폐업 신고를 위해서는 먼저 [공인인증서 인증]을 해야 합니다.

인증 이후에는 바로 [폐업신고서]에 체크를 하여 폐업 신고를 진행할 수 있습니다.

결과적으로 저는 다음과 같이 작성하여 제출했습니다.

※ 폐업 신고 이후에 해야 할 일 ※
폐업 신고를 한 뒤에, 폐업일이 속하는 과세기간의 개시일로부터 폐업일까지의 사업실적에 대해 신고(부가가치세)해야 합니다. 이 때 폐업일이 속한 달의 말일로부터 25일 이내에 신고를 해야 한다고 하니 꼭 기억해두세요!
저는 최근 과세기간 동안에 사업 실적이 없기 때문에, 다음과 같이 [부가가치세 신고]에서 무실적 신고를 하게 되었습니다.

[무실적 신고] 같은 경우는 신고서를 작성하기가 매우 간편합니다. 사실 실적이 없는 지는 꽤 되었는데, 귀찮아서 사업자 폐지를 안 하고 있었거든요.

그냥 그대로 [신고서 입력완료] 버튼을 누르면 신고가 끝납니다.

'기타' 카테고리의 다른 글
| 하드웨어 정보를 알려주는 프로그램 (HWiNFO, HWMONITOR) (0) | 2019.07.13 |
|---|---|
| 컴퓨터공학과 석사 대학원생의 일기 (0) | 2019.07.06 |
| PHP에서 Facebook Login Access Token으로 이메일(Email) 정보 받아오기 [소스코드] (1) | 2019.06.03 |
| 구글 인 앱 결제(IAP) 서버 검증은 어떻게 하는가? [정리 요약] (1) | 2019.06.03 |
| 이사 갈 때 주소 변경과 관련한 Tip [정리 요약] (0) | 2019.06.03 |