๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐ŸŽ‹ AWS

[ AWS ] Docker + AWS EC2 Aphache/ MySQL ๊ฐœ๋ฐœํ™˜๊ฒฝ ๊ตฌ์ถ•ํ•˜๊ธฐ

by MuGeon Kim 2023. 4. 21.
๋ฐ˜์‘ํ˜•

 

1. ๊ธ€์„ ์ž‘์„ฑํ•˜๋Š” ์ด์œ 


AWS EC2๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ RDS๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋„ˆ๋ฌด ๋งŽ์€ ๋น„์šฉ์ด ๋“ค์–ด EC2์— MySQL์„ ์—ฐ๊ฒฐ ๋ฐ Apache ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•˜๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์ง€๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ์กด์˜ ๋‚ด์šฉ๊ณผ ์ค‘๋ณต๋˜๋Š” ๋‚ด์šฉ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด์ „์— ์ž‘์„ฑํ•œ ๋ธ”๋กœ๊ทธ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ํ•˜์‹œ๋ฉด ์ข‹๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. 

 

2. Aphache ์„œ๋ฒ„ ๊ตฌ์ถ•ํ•˜๊ธฐ


Dockerfile ์ž‘์„ฑํ•˜๊ธฐ

ubuntu@ip-172-31-32-99:~$ mkdir example
ubuntu@ip-172-31-32-99:~$ cd example/
ubuntu@ip-172-31-32-99:~/example$ sudo vi Dockerfile
ubuntu@ip-172-31-32-99:~/example$ cat Dockerfile
FROM ubuntu:20.04
MAINTAINER Kimmugeon <xxxx@email.com>

# Avoding user interaction with tzdata
ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update
RUN apt-get install -y apache2 #install Apache web server (Only 'yes')
RUN apt-get install -y software-properties-common
RUN add-apt-repository ppa:ondrej/php # For Installing PHP 5.6
RUN apt-get update
RUN apt-get install -y php5.6

EXPOSE 80

CMD ["apachectl", "-D", "FOREGROUND"]
FROM : ๋ฒ ์ด์Šค ์ด๋ฏธ์ง€ ์ง€์ •/ ๋‚ด๊ฐ€ ๋งŒ๋“  ์ด๋ฏธ์ง€๋„ ๊ฐ€๋Šฅ
MAINTAINER : ๊ฐœ๋ฐœ์ž ์ •๋ณด๋ฅผ ๋‚˜ํƒ€๋ƒ„, ๋ณดํ†ต ๊ฐœ๋ฐœ์ž ์ด๋ฉ”์ผ์„ ์ ์Œ.
RUN : ๋ช…๋ น์–ด ์‹คํ–‰. -y : ๊ผญ ๋„ฃ์–ด์ฃผ๊ธฐ
EXPOSE : ์ปจํ…Œ์ด๋„ˆ๋กœ ์‹คํ–‰ ์‹œ ๋…ธ์ถœ์‹œํ‚ฌ ํฌํŠธ. ๋‹จ์ˆœํžˆ ํ•ด๋‹น ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ๊ฒƒ์„ ๋ช…์‹œํ•˜๋Š” ๊ฒƒ. ์ด๋ฅผ ์‚ฌ์šฉํ•ด๋„ run ๋ช…๋ น์–ด(๋„์ปค ์‹คํ–‰)์—์„œ -P ์˜ต์…˜๋„ ํ•„์š”
CMD : ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹œ์ž‘๋  ๋•Œ๋งˆ๋‹ค ์‹คํ–‰ํ•  ๋ช…๋ น์–ด๋ฅผ ์„ค์ •. Dockerfile์—์„œ ํ•œ ๋ฒˆ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ.

์ด๋ ‡๊ฒŒ ์„ค์ •ํ•˜๊ณ  ๋นŒ๋“œํ•˜๋ฉด ์•„ํŒŒ์น˜2 + PHP ์„œ๋ฒ„๋ฅผ ๊ตฌ์ถ•ํ•œ๋‹ค.

ENV DEBIAN_FRONTEND=noninteractive

์œ„์— ๋ช…๋ น์–ด๋ฅผ ์„ค์ •ํ•˜๋Š” ์ด์œ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์„ค์ •์„ ์‚ฌ๋ผ์ง€๊ฒŒ ํ•˜๊ณ  ์„ค์น˜๋ฅผ ํ•˜๊ฒŒ ํ•ด ์ค€๋‹ค.

Please select the geographic area in which you live. Subsequent configuration
questions will narrow this down by presenting a list of cities, representing
the time zones in which they are located.

  1. Africa      4. Australia  7. Atlantic  10. Pacific  13. Etc
  2. America     5. Arctic     8. Europe    11. SystemV
  3. Antarctica  6. Asia       9. Indian    12. US
Geographic area:

์ดํ›„ Apache ์„œ๋ฒ„ ํŽ˜์ด์ง€๋ฅผ ์‹คํ–‰์„ ์‹œํ‚ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๋œ๋‹ค.

docker run -p 80:80 -v /home/ubuntu/example/html:/var/www/html example

ubuntu@ip-172-31-32-99:~/example/html$ sudo vi index.php

# php ๊ธฐ๋ณธ์ •๋ณด ์ถœ๋ ฅํ•œ๋‹ค๋Š” ๋œป
<?php phpinfo(); ?>

ํ•ด๋‹น ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ํ•ด๋‹น php info ํŽ˜์ด์ง€๋ฅผ ๋ธŒ๋ผ์šฐ์ €์—์„œ ํ™•์ธ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

3. MySQL ์„œ๋ฒ„ ๋งŒ๋“ค๊ธฐ


๋ณดํ†ต AWS EC2๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ณด์•ˆ์ ์ธ ์ธก๋ฉด ๋•Œ๋ฌธ์— RDS๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ ๋น„์šฉ์ ์ธ ์ธก๋ฉด์ด ์ทจ์ค€์ƒ์œผ๋กœ ๋ถ€๋‹ด์ด ๋˜์–ด EC2์— MySQL์— ์ง์ ‘ ์„ค์น˜ํ•˜๋Š” ๋ฐฉ์‹์„ ํ•™์Šต์„ ํ–ˆ์Šต๋‹ˆ๋‹ค.

 

Docker๋ฅผ ํ†ตํ•œ MySQL ์„ค์น˜ํ•˜๊ธฐ. · ๊ธฐ์–ตํ•˜๊ธฐ ์œ„ํ•œ ๊ฐœ๋ฐœ๋…ธํŠธ

Docker๋ฅผ ํ†ตํ•œ MySQL ์„ค์น˜ํ•˜๊ธฐ. 30 Jul 2019 | Docker docker MySQL ๋„์ปค Mysql Docker ํ•œ๊ธ€๋ฌธ์ œ 2020-02-26 ์— ํ•œ๊ธ€๊นจ์ง ๊ด€๋ จ ๋‚ด์šฉ ์ถ”๊ฐ€ ํ•จ. ์ด ๊ธ€์—์„  docker์—์„œ MySQL์„ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ docker๋ฅผ ํ†ตํ•ด ์„ค์น˜ํ•œ MySQL์— ์ ‘

jmlim.github.io

Docker์— ์žˆ๋Š” MySQL์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ”๋กœ ์‹คํ–‰์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

์ผ๋‹จ MySQL.8.0 ์œˆ๋„์šฐ ๊ธฐ์ค€์œผ๋กœ ์‹คํ–‰์„ ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

docker run \
  --name mysql_8.0 \
  -d \
  --restart unless-stopped \
  -e MYSQL_ROOT_PASSWORD=1234 \
  -e TZ=Asia/Seoul \
  -p 9898:3306 \
  -v //mysql//conf.d://etc//mysql//conf.d \
  mysql:8.0.22 \
  --character-set-server=utf8mb4 \
  --collation-server=utf8mb4_unicode_ci

ํฌํŠธ ๊ฒฝ์šฐ์—๋Š” ๊ธฐ์กด์— 3306์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ธ๋ฐ”์šด๋“œ ๊ทœ์น™์„ ์ƒˆ๋กญ๊ฒŒ ๋งŒ๋“ค์—ˆ๋‹ค. ์ผ๋‹จ ๊ธฐ๋ณธ์ ์œผ๋กœ 9898๋กœ ์„ค์ •์„ ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ดํ›„ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ์‹คํ–‰์„ ํ™•์ธํ–ˆ๋‹ค.

docker ps

// ์‹คํ–‰ํ•˜๊ธฐ
docker exec -it [์ปจํ…Œ์ด๋„ˆ ID] bin/bash

 

MySQL์„ ์‹คํ–‰์„ ์‹œ์ผœ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

mysql -u root -p [password]

# mysql -u [user] -p -h [host์ฃผ์†Œ]
# mysql -h [host์ฃผ์†Œ] -u [user] -p
mysql> CREATE DATABASE TEST;
mysql> SHOW DATABASES;

mysql> USE [database];

์ดํ›„ EC2์— ์„ค์น˜ํ•œ MySQL ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์„ค์น˜๋ฅผ ํ•ด์•ผ์ง€ ์ ‘์†์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

sudo apt install mysql-client-core-8.0
 

Download HeidiSQL

Ads were blocked - no problem. But keep in mind that developing HeidiSQL, user support and hosting takes time and money. You may want to send a donation instead. Download HeidiSQL 12.4, released on 26 Feb 2023 Please disable your adblocker and reload the p

www.heidisql.com

์„ค์น˜๋ฅผ ํ•˜๊ณ  EC2์˜ ํƒ„๋ ฅ์  IP๋ฅผ ์„ค์ •ํ•˜๊ณ  ํฌํŠธ๋ฅผ 9898์„ ์ž…๋ ฅ์„ ํ•œ๋‹ค.

 

4. MySQL DB ๊ถŒํ•œ ์„ค์ •ํ•˜๊ธฐ


CREATE USER 'kimmugeon'@'%' IDENTIFIED BY '1234'

GRANT ALL PRIVILEGES ON *.* TO 'kimmugeon'@'%';

FLUSH PRIVILEGES;

QUIT

EXIT

 

 

5. ์ฐธ๊ณ 


 

 

Docker + AWS EC2 APM or MySQL ๊ฐœ๋ฐœํ™˜๊ฒฝ ๊ตฌ์ถ•ํ•˜๊ธฐ

AWS EC2 ์ธ์Šคํ„ด์Šค (Ubuntu 20.04)๋ฅผ ๋งŒ๋“ค๊ณ ์—ฌ๊ธฐ์— Docker๋ฅผ ์„ค์น˜ํ•œ๋‹ค.ํ•„์š”๋„๊ตฌ :AWS EC2, ssh ์›๊ฒฉ์ ‘์† ํ”„๋กœ๊ทธ๋žจ(MobaXerm)์šฐ๋ถ„ํˆฌ ๋ฒ„์ „์— Docker ์„ค์น˜๋Š” Docker ์„ค์น˜๊ฐ€์ด๋“œ๋ฅผ ์ฐธ์กฐํ•˜์ž.https://docs.docker.

velog.io

 

 

Docker๋ฅผ ํ†ตํ•œ MySQL ์„ค์น˜ํ•˜๊ธฐ. · ๊ธฐ์–ตํ•˜๊ธฐ ์œ„ํ•œ ๊ฐœ๋ฐœ๋…ธํŠธ

Docker๋ฅผ ํ†ตํ•œ MySQL ์„ค์น˜ํ•˜๊ธฐ. 30 Jul 2019 | Docker docker MySQL ๋„์ปค Mysql Docker ํ•œ๊ธ€๋ฌธ์ œ 2020-02-26 ์— ํ•œ๊ธ€๊นจ์ง ๊ด€๋ จ ๋‚ด์šฉ ์ถ”๊ฐ€ ํ•จ. ์ด ๊ธ€์—์„  docker์—์„œ MySQL์„ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ docker๋ฅผ ํ†ตํ•ด ์„ค์น˜ํ•œ MySQL์— ์ ‘

jmlim.github.io

 

๋ฐ˜์‘ํ˜•