๊ด€๋ฆฌ ๋ฉ”๋‰ด

๐‘†๐‘ข๐‘›๐‘ โ„Ž๐‘–๐‘›๐‘’ ๐‘Ž๐‘“๐‘ก๐‘’๐‘Ÿ ๐‘Ÿ๐‘Ž๐‘–๐‘›โœง

[AWS] Private Subnet ๋‚ด๋ถ€ EC2 ์— MySQL ๋งŒ๋“ค๊ณ  SSH ํ„ฐ๋„๋ง์„ ํ†ตํ•ด ๋กœ์ปฌ์—์„œ MySQL ์ ‘์†ํ•˜๊ธฐ ๋ณธ๋ฌธ

๐—ฃ๐—ฟ๐—ผ๐—ด๐—ฟ๐—ฎ๐—บ๐—บ๐—ถ๐—ป๐—ด๐Ÿ’ป/๐€๐–๐’

[AWS] Private Subnet ๋‚ด๋ถ€ EC2 ์— MySQL ๋งŒ๋“ค๊ณ  SSH ํ„ฐ๋„๋ง์„ ํ†ตํ•ด ๋กœ์ปฌ์—์„œ MySQL ์ ‘์†ํ•˜๊ธฐ

๐ŸคRyusun๐Ÿค 2024. 3. 6. 02:30

ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ๋„์ปค๋กœ ๋„์šด MySQL๋ฅผ EC2 MySQL๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค.

์ฒ˜์Œ์—๋Š” MySQL WorkBench์—์„œ ssh ์ ‘์†์„ ์‚ฌ์šฉํ•˜๋Š” Standard TCP/IP over SSH ์œผ๋กœ ์—ฐ๊ฒฐ์„ ์„ฑ๊ณตํ•˜์˜€๋‹ค. ํ•˜์ง€๋งŒ ์Šคํ”„๋ง๋ถ€ํŠธ application.yml ํŒŒ์ผ์—์„œ ์›๊ฒฉ DB ์„ค์ •์— ์‹คํŒจํ–ˆ๋‹ค..ใ… ใ… 

๋‹น์—ฐํ•œ๊ฒŒ ์Šคํ”„๋ง๋ถ€ํŠธ(๋กœ์ปฌ)์—์„œ ssh์„ค์ •์ด ์—†์œผ๋ฉด ์—ฐ๊ฒฐ์ด ๋ถˆ๊ฐ€๋Šฅํ–ˆ๋‹ค... ์Šคํ”„๋ง๋ถ€ํŠธ์— ssh ์„ค์ •์„ ์‹œ๋„ํ•ด๋ดค์ง€๋งŒ ์ฒ˜์ฐธํžˆ ์‹คํŒจํ–ˆ๋‹คใ…Ž

๊ทธ๋ž˜์„œ ํ•„์ž๋Š” SSH ํ„ฐ๋„์„ ์ƒ์„ฑํ•˜์—ฌ Local Port Forwarding ์œผ๋กœ Private Subnet์•ˆ์˜ EC2 MySQL์— ์ ‘์†ํ•˜์˜€๊ณ  ๋ฐฉ๋ฒ•์„ ๊ณต์œ ํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค.

 

ํ˜„์žฌ ์„œ๋ฒ„ ํ™˜๊ฒฝ

ํ˜„์žฌ ํ”„๋กœ์ ํŠธ ์„œ๋ฒ„ ํ™˜๊ฒฝ์€ ๋‘๊ฐœ์˜ ๊ฐ€์šฉ์˜์—ญ(ap-northeast-2a, ap-northeast-2c)์ด ์žˆ๊ณ ,  public subnet-02์—๋Š” Nat Instance๊ฐ€ ์กด์žฌํ•˜๊ณ  ์žˆ๋‹ค. ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ”๋กœ Public Subent์— ์ ‘์† ์‹œ Private Subnet์— ์ ‘์†์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜์˜€๋‹ค.

ap-northeast-2c ๊ฐ€์šฉ์˜์—ญ ๋‚ด์— 2๊ฐœ์˜ private Subnet์„ ๋งŒ๋“ค์—ˆ์œผ๋ฉฐ, private subent-02์—๋Š” ํ•„์ž์˜ ํ”„๋กœ์ ํŠธ EC2๊ฐ€ ์กด์žฌํ•œ๋‹ค. ํ”„๋กœ์ ํŠธ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์„œ๋ฒ„ ํ†ต์‹ ์ด ์ž์ฃผ ์ผ์–ด๋‚˜๋ฏ€๋กœ ํ†ต์‹  ๋น„์šฉ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๊ฒŒ ๊ฐ™์€ ๊ฐ€์šฉ์˜์—ญ๋‚ด์— ์žˆ๋Š” private-subnet-04์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค EC2๋ฅผ ์„ค์น˜ํ•  ์˜ˆ์ •์ด๋‹ค.

ํ•ด๋‹น ์„œ๋ธŒ๋„ท์— EC2๋ฅผ ๊ตฌ์ถ•ํ•ด์„œ MySQL๋ฅผ ์„ค์น˜ํ•ด๋ณด์ž.

 

ํ˜„์žฌ ์„œ๋ฒ„์˜ ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ”

 

1. ์ƒˆ db ec2 ์ƒ์„ฑ

์šฐ์„  db๋ฅผ ์œ„ํ•œ EC2๊ฐ€ ์—†๋‹ค๋ฉด ํ•˜๋‚˜ ์ƒ์„ฑํ•˜์ž. ํ•„์ž๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ์„ธํŒ… ํ™˜๊ฒฝ์œผ๋กœ ์ƒ์„ฑํ–ˆ๋‹ค.

 

  • ์†Œํ”„ํŠธ์›จ์–ด ์ด๋ฏธ์ง€(AMI)
    • Canonical, Ubuntu, 22.04 LTS, amd64 jammy image build on 2024-02-07
  • ๊ฐ€์ƒ ์„œ๋ฒ„ ์œ ํ˜•(์ธ์Šคํ„ด์Šค ์œ ํ˜•)
    • t2.small
  • ๋ฐฉํ™”๋ฒฝ(๋ณด์•ˆ ๊ทธ๋ฃน)
    • db
  • ์Šคํ† ๋ฆฌ์ง€(๋ณผ๋ฅจ)
    • 1๊ฐœ์˜ ๋ณผ๋ฅจ – 30GiB

 

์„œ๋ฒ„ ๋‹ค์šด์„ ์˜ˆ๋ฐฉํ•˜๊ธฐ ์œ„ํ•ด t2.small, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ† ๋ฆฌ์ง€๋ฅผ ์œ„ํ•ด 30 GiB๋กœ ์ƒ์„ฑํ•˜์˜€๋‹ค.

์ถ”๊ฐ€๋กœ ํ•ด๋‹น ์„œ๋ฒ„๋Š” private subnet์— ์„ค์น˜๋ ๊ฑฐ๊ธฐ๋•Œ๋ฌธ์— ํผ๋ธ”๋ฆญ IP ํ• ๋‹น์€ ๋น„ํ™œ์„ฑํ™”ํ•˜๊ณ , ํƒ„๋ ฅ์  ip๋ฅผ ์ƒ์„ฑํ•œ ํ›„ ์—ฐ๊ฒฐํ•ด์•ผ ํ•œ๋‹ค.

(์—ฐ์Šต์šฉ์œผ๋กœ ์ž‘์—…ํ•˜์‹œ๋Š” ๋ถ„๋“ค์€ ํƒ„๋ ฅ์  ip ์ƒ์„ฑ ํ›„ ๊ผญ ์‚ญ์ œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค!!! ๊ณผ๊ธˆ ์ฃผ์˜!!!)

 

 

2. ๋ณด์•ˆ๊ทธ๋ฃน ์ƒ์„ฑ

ํ˜„์žฌ mysql ec2 ์„œ๋ฒ„๋Š” private subnet์— ์žˆ๊ธฐ ๋•Œ๋ฌธ์— http, https ๋“ฑ ๋‹ค๋ฅธ ํฌํŠธ๋Š”  ์—ฐ๊ฒฐ ์•ˆ ํ•ด์ค˜๋„ ๋œ๋‹ค. ๋ณด์•ˆ์„ ์œ„ํ•ด 22, 3306 ํฌํŠธ๋งŒ ์—ด์–ด๋‘์ž. ๊ทธ๋ฆฌ๊ณ  33306 ํฌํŠธ๋„ ์—ด์–ด๋‘์ž. ์ด ํฌํŠธ๋Š” ์ถ”ํ›„์— ํฌํŠธํฌ์›Œ๋”ฉ์— ์‚ฌ์šฉ๋  ํฌํŠธ์ด๋‹ค.

๋˜ํ•œ ๋‹ค๋ฅธ ์„œ๋ธŒ๋„ท์— ์žˆ๋Š” ์„œ๋ฒ„ ec2์™€ ์—ฐ๊ฒฐ๋๋Š”์ง€ ๋ณด๊ธฐ ์œ„ํ•ด ๋ชจ๋“  ICMP - IPv4 ์œ ํ˜•์œผ๋กœ ICMP ํฌํŠธ๋ฅผ ์—ด์–ด๋‘์–ด์•ผ ํ•œ๋‹ค. ํ•ด๋‹น ์œ ํ˜•๊ณผ ํฌํŠธ๋Š” ์„œ๋ฒ„ ec2 ๋ณด์•ˆ๊ทธ๋ฃน์—๋„ ๋˜‘๊ฐ™์ด ์ถ”๊ฐ€ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.

 

์ธ๋ฐ”์šด๋“œ ๊ทœ์น™
์•„์›ƒ๋ฐ”์šด๋“œ ๊ทœ์น™

 

ICMP (Internet Control Message Protocol)์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ์„ค๋ช…ํ•˜์ž๋ฉด ๋„คํŠธ์›Œํฌ ์žฅ์น˜ ๊ฐ„์— ๋ฉ”์‹œ์ง€๋ฅผ ๊ตํ™˜ํ•˜๊ณ  ๋„คํŠธ์›Œํฌ ๋ฌธ์ œ๋ฅผ ๊ฐ์ง€ํ•˜๊ณ  ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค. ping ์ด๋ž‘ ๋น„์Šทํ•œ ์—ญํ• ์ด๋‹ค. ์ด ํฌํŠธ๋ฅผ ์—ด์–ด์ฃผ๋ฉด ์„œ๋กœ ec2 ๊ฐ„์— ์—ฐ๊ฒฐ์ด ๋˜์—ˆ๋Š”์ง€ ํ™•์ธ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๋งŒ์•ฝ ์—ฐ๊ฒฐ์ด ์•ˆ ๋˜์—ˆ๋‹ค๋ฉด ํ•ด๋‹น ํฌํŠธ๋ฅผ ๋ณด์•ˆ ๊ทธ๋ฃน ๋˜๋Š” ๋„คํŠธ์›Œํฌ ACL ๊ทœ์น™์„ ํ†ตํ•ด ์—ด์–ด์ค˜์•ผํ•œ๋‹ค.

 

EC2 ์—ฐ๊ฒฐ๋ฐฉ๋ฒ•์€ ์•„๋ž˜ ๋ธ”๋กœ๊ทธ๋ฅผ ๋“ค์–ด๊ฐ€์‹œ๋ฉด ๋”์šฑ ์ž์„ธํ•˜๊ฒŒ ๋ฐฐ์šธ ์ˆ˜ ์žˆ๋‹ค!

https://jojoldu.tistory.com/430

 

์„œ๋กœ ๋‹ค๋ฅธ EC2 ์ธ์Šคํ„ด์Šค๊ฐ„์— ์—ฐ๊ฒฐํ•˜๊ธฐ (feat. Ping)

์„œ๋กœ ๋‹ค๋ฅธ EC2 ์ธ์Šคํ„ด์Šค๊ฐ„์— ํ†ต์‹ ์ด ํ•„์š”ํ• ๋•Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์•ค์„œ๋ธ”์„ ํ†ตํ•œ ์ „์ฒด ๋ช…๋ น์–ด ์ˆ˜ํ–‰ ์‰˜ ์Šคํฌ๋ฆฝํŠธ ํ˜น์€ ์  ํ‚จ์Šค๋ฅผ ํ†ตํ•œ ๋ช…๋ น์–ด ์ˆ˜ํ–‰ ๋“ฑ๋“ฑ ์™ธ๋ถ€์—์„œ ssh ํ˜น์€ scp ๋ช…๋ น์–ด ์ˆ˜ํ–‰ ๋“ฑ์ด ํ•„์š”ํ•œ ์ƒ

jojoldu.tistory.com

 

Private subnet์— ์žˆ๋Š” EC2 ๋ผ๋ฆฌ ์—ฐ๊ฒฐ์ด ์ž˜๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ด ๋ณด์ž

ping [private_ip_์ฃผ์†Œ]

ping private_ip_์ฃผ์†Œ๋ฅผ ์“ฐ๋ฉด ์—ฐ๊ฒฐ๋œ ๊ฑธ ํ™•์ธํ•  ์ˆ˜๊ฐ€ ์žˆ๋‹ค.

 

3. EC2์— MySQL ์ƒ์„ฑ

 

์ž˜ ์—ฐ๊ฒฐ๋˜์—ˆ์œผ๋‹ˆ ์ด์ œ ์ƒ์„ฑํ•œ EC2์— MySQL๋ฅผ ์„ค์น˜ํ•œ๋‹ค.

ํ•„์ž๋Š” ์•„๋ž˜ ๋ธ”๋กœ๊ทธ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ์ƒ์„ฑํ–ˆ๋‹ค.

 

https://blogshine.tistory.com/322

 

[AWS] EC2์— MySQL ์„ค์น˜ํ•˜๊ธฐ

๋‹ค๋ฅธ ์—ฌํƒ€ ์–ด๋Š ๋ธ”๋กœ๊ทธ์˜ ๊ธ€ ๋ณด๋‹ค ์ž์„ธํ•˜๊ฒŒ ์„ค๋ช… ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋„์›€์ด ๋  ์ˆ˜ ์žˆ๊ธธ!!! ์ด 3๊ฐœ์˜ ๊ธ€ ์‹œ๋ฆฌ์ฆˆ๋กœ ์ž‘์„ฑํ•  ๊ฒƒ ์ž…๋‹ˆ๋‹ค!! 1. EC2 ์ธ์Šคํ„ด์Šค ๋งŒ๋“ค๊ธฐ (์ด์ „ ๊ธ€) 2. AWS์˜ EC2์— MySQL์„ ์„ค์น˜ํ•˜๊ณ , Sequal A

blogshine.tistory.com

 

๋ณด์•ˆ์ƒ root ๊ณ„์ •์— ๋ชจ๋“  ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋Š” ๊ฒƒ์€ ํ”ผํ•˜๋Š” ๊ฒŒ ์ข‹๋‹ค.

// ๋ชจ๋“  ip ํ—ˆ์šฉ
create user '์•„์ด๋””'@'%' IDENTIFIED by '๋น„๋ฐ€๋ฒˆํ˜ธ'
grant all privileges on ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ช….* to '์œ ์ €๋ช…'@'ํ˜ธ์ŠคํŠธ๋ช…';
exit

exit ์ฝ”๋“œ๋กœ mysql๋ฅผ ๋‚˜์™€์„œ EC2๋‚ด ์žˆ๋Š” mysq.conf.d ํŒŒ์ผ์„ ๋ณ€๊ฒฝํ•ด ์ฃผ์ž.

 

3-1 mysqld.cnf ํŒŒ์ผ ๋ณ€๊ฒฝ

 

Private EC2 DB์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” db ์„ค์ • ํŒŒ์ผ์„ ๋ณ€๊ฒฝํ•ด์ค˜์•ผ ํ•œ๋‹ค. MySQL๋ฅผ ์„ค์น˜ํ•œ Private EC2๋กœ ๊ฐ€์„œ DB ์„ค์ •ํŒŒ์ผ๋กœ ์ด๋™ํ•œ๋‹ค.

cd /etc/mysql
sudo vi mysql.conf.d
---------- ๋ณ€๊ฒฝ ์ „ -----------
#bind-address = 127.0.0.1
#mysqlx-bind-address = 127.0.0.1
---------- ๋ณ€๊ฒฝ ํ›„ -----------
bind-address = 0.0.0.0
mysqlx-bind-address = 0.0.0.0

 

bind-address๋ž€ MySQL ์„ค์ • ํŒŒ์ผ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์˜ต์…˜์œผ๋กœ, MySQL ์„œ๋ฒ„๊ฐ€ ํŠน์ • IP ์ฃผ์†Œ์— ๋ฐ”์ธ๋”ฉ๋˜๋„๋ก ์ง€์ •ํ•œ๋‹ค. ์ฆ‰, MySQL ์„œ๋ฒ„๊ฐ€ ์–ด๋–ค ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค ๋˜๋Š” IP ์ฃผ์†Œ์—์„œ ๋“ค์–ด์˜ค๋Š” ์—ฐ๊ฒฐ์„ ์ˆ˜๋ฝํ•  ๊ฒƒ์ธ์ง€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๊ฒƒ์ด๋‹ค

mysqlx-bind-address๋ฅผ ์„ค์ •ํ•˜๋ฉด ํŠน์ • IP ์ฃผ์†Œ์—์„œ๋งŒ MySQL X ํ”„๋กœํ† ์ฝœ์„ ์ˆ˜์‹ ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๋‘˜ ๋‹ค 0.0.0.0์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ ๋˜๋Š” ์ฃผ์„์ฒ˜๋ฆฌํ•ด๋„ ๊ดœ์ฐฎ๋‹ค.

mysql ๋ฒ„์ „์— ๋”ฐ๋ผ mysqlx-bind-address ๊ฐ€ ์—†์„ ์ˆ˜๋„ ์žˆ๋‹ค.

 

์„ค์ •ํŒŒ์ผ์„ ๋ณ€๊ฒฝํ•ด ์ฃผ์—ˆ์œผ๋‹ˆ mysql๋ฅผ ์žฌ์‹คํ–‰ํ•˜์ž

service mysql restart

 

4. SSH ํ„ฐ๋„๋ง ์—ฐ๊ฒฐ

Private Subnet์˜ EC2๋Š” ๋ณด์•ˆ๊ทธ๋ฃน ๋•Œ๋ฌธ์— ์ธํ„ฐ๋„ท์„ ํ†ตํ•ด ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋‹ค. ๋”ฐ๋ผ์„œ ํ•„์ž์˜ ๊ฒฝ์šฐ Public Subnet์— ์žˆ๋Š” NAT Instance๋ฅผ ํ†ตํ•ด์„œ ๊ฑฐ์ณ์„œ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. SSH ํ„ฐ๋„๋ง์€ SSH ํ”„๋กœํ† ์ฝœ์„ ์ด์šฉํ•˜์—ฌ ํ„ฐ๋„๋ง ๊ธฐ์ˆ ์„ ํ†ตํ•ด ์‚ฌ๋‚ด ๋‚ด๋ถ€๋ง์— ์ ‘์†ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค. ๋กœ์ปฌ์—์„œ Private EC2๋กœ ์š”์ฒญ์„ ๋ณด๋‚ด๋ฉด, ํ•ด๋‹น ์š”์ฒญ์ด Public EC2๋กœ ์ „์†ก๋œ ๋’ค ํฌํŠธ ํฌ์›Œ๋”ฉ๋˜์–ด Private EC2๋กœ ์ ‘๊ทผํ•œ๋‹ค.

SSH ํ„ฐ๋„๋ง์€ ํฌ๊ฒŒ ์„ธ ๊ฐ€์ง€ ์œ ํ˜•์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.

 

  • ๋กœ์ปฌ ํฌํŠธ ํฌ์›Œ๋”ฉ(Local Port Forwarding)
    ๋กœ์ปฌ ๋จธ์‹ ์—์„œ ์›๊ฒฉ ์„œ๋ฒ„๋กœ ํŠน์ • ํฌํŠธ๋ฅผ ํ†ตํ•ด ๋กœ์ปฌ ๋จธ์‹ ์—์„œ ์›๊ฒฉ ์„œ๋ฒ„๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ์ „๋‹ฌ๋˜๊ณ , SSH ์—ฐ๊ฒฐ์„ ํ†ตํ•ด ์•”ํ˜ธํ™”๋˜์–ด ์ „์†ก๋œ๋‹ค. ๋กœ์ปฌ ๋จธ์‹ ์—์„œ ํŠน์ • ํฌํŠธ๋กœ ์ ‘์†ํ•˜๋ฉด ์‹ค์ œ๋กœ๋Š” ์›๊ฒฉ ์„œ๋ฒ„์˜ ํŠน์ • ํฌํŠธ์™€ ํ†ต์‹ ํ•˜๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.
  • ์›๊ฒฉ ํฌํŠธ ํฌ์›Œ๋”ฉ(Remote Port Forwarding)
    ์›๊ฒฉ ์„œ๋ฒ„์—์„œ ๋กœ์ปฌ ๋จธ์‹ ์œผ๋กœ ํŠน์ • ํฌํŠธ๋ฅผ ํ†ตํ•ด ์›๊ฒฉ ์„œ๋ฒ„์—์„œ ์‹œ์ž‘๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋กœ์ปฌ ๋จธ์‹ ์œผ๋กœ ์ „๋‹ฌ๋˜๊ณ , SSH ์—ฐ๊ฒฐ์„ ํ†ตํ•ด ์•”ํ˜ธํ™”๋˜์–ด ์ „์†ก๋œ๋‹ค. ์›๊ฒฉ ์„œ๋ฒ„์—์„œ ํŠน์ • ํฌํŠธ๋กœ ์ ‘์†ํ•˜๋ฉด ์‹ค์ œ๋กœ๋Š” ๋กœ์ปฌ ๋จธ์‹ ์˜ ํŠน์ • ํฌํŠธ์™€ ํ†ต์‹ ํ•˜๊ฒŒ ๋œ๋‹ค.
  • ๋™์  ํฌํŠธ ํฌ์›Œ๋”ฉ (Dynamic Port Forwarding)
    ๋กœ์ปฌ ๋จธ์‹ ์—์„œ ์›๊ฒฉ ์„œ๋ฒ„๋ฅผ ๊ฒฝ์œ ํ•˜์—ฌ ์ธํ„ฐ๋„ท์— ์ ‘์†ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. ๋กœ์ปฌ ๋จธ์‹ ์—์„œ ํŠน์ • ํฌํŠธ๋ฅผ ์—ด์–ด๋‘๊ณ , ์ด๋ฅผ ํ†ตํ•ด ๋ชจ๋“  ํŠธ๋ž˜ํ”ฝ์„ SSH ํ„ฐ๋„์„ ํ†ตํ•ด ์›๊ฒฉ ์„œ๋ฒ„๋กœ ์ „๋‹ฌํ•œ๋‹ค.

 

ํ•„์ž๋Š” ์ฒซ ๋ฒˆ์งธ ์œ ํ˜•์ธ ๋กœ์ปฌ ํฌํŠธ ํฌ์›Œ๋”ฉ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ„ฐ๋„๋ง์„ ์ƒ์„ฑํ•ด ๋ณผ ๊ฒƒ์ด๋‹ค.

์•„๋ž˜ ๋ธ”๋กœ๊ทธ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ์ƒ์„ฑํ•˜์˜€๋Š”๋ฐ ๋„์›€์ด ๋งŽ์ด ๋˜์—ˆ๋‹ค.

์ฐธ๊ณ ํ•˜์‹œ๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค.

 

https://velog.io/@fcfargo/AWS-Private-Database-๊ตฌ์ถ•ํ•˜๊ธฐ3-SSH-Tunneling-์œผ๋กœ-Private-DB-์ ‘์†ํ•˜๊ธฐ-Mac

 

AWS - Private Database ๊ตฌ์ถ•ํ•˜๊ธฐ(3) - SSH Tunneling ์œผ๋กœ Private DB ์ ‘์†ํ•˜๊ธฐ(Mac)

# SSH Tunneling์˜ ํ•„์š”์„ฑ ์ด์ „ ๊ธ€์—์„œ ๋‹ค๋ค˜๋“ฏ์ด, Private Database๋Š” ์™ธ๋ถ€์—์„œ ์ธํ„ฐ๋„ท์„ ํ†ตํ•ด ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋‹ค. public IP๊ฐ€ ํ• ๋‹น๋˜์ง€ ์•Š์•˜๊ณ , Internet Gateway์„ subnet์˜ ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ”์— ์ถ”๊ฐ€ํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ

velog.io

 

 

4-1. ์šฐ์„  Public EC2์— ์ ‘์†ํ•ด์„œ SSH ํ„ฐ๋„์„ ์ƒ์„ฑํ•ด ์ค€๋‹ค.

 # ๋ช…๋ น์–ด ํ˜•์‹
 ssh -i [pemํ‚ค ๊ฒฝ๋กœ] -CNf -L [local port]:[database host]:[remote port] [username]@[remote host]
 
 # ์˜ˆ์‹œ
 ssh -i [pemํ‚ค ๊ฒฝ๋กœ] -CNf -L 3307:127.0.0.1:3306 ubuntu@[EC2 ํ”„๋ผ์ด๋น— IPv4 ์ฃผ์†Œ or ํ˜ธ์ŠคํŠธ ์ด๋ฆ„]

 

 

  • [local port] :Private DB์™€ ์—ฐ๊ฒฐํ•  Public EC2์˜ ํฌํŠธ ๋ฒˆํ˜ธ. ํ•„์ž์˜ ๊ฒฝ์šฐ Public EC2 ๋‚ด๋ถ€์— ์„ค์น˜๋œ MariaDB๊ฐ€ 3306๋ฒˆ์„ ์‚ฌ์šฉ ์ค‘์ด์—ˆ๊ธฐ ๋•Œ๋ฌธ์—, ์ž„์˜์˜ ๋ฒˆํ˜ธ์ธ 33306๋ฒˆ์„ ์ง€์ •ํ–ˆ๋‹ค.
  • [database host]: Private DB์˜ IP ์ฃผ์†Œ๋‚˜ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์„ ์ ์–ด์ฃผ๋ฉด ๋œ๋‹ค. Private DB๊ฐ€ Private EC2 ์•ˆ์—์„œ localhost๋กœ ์กด์žฌํ•œ๋‹ค๋ฉด 127.0.0.1์„ ์ž…๋ ฅํ•œ๋‹ค.
  • [remote port]: Private DB๊ฐ€ ์‚ฌ์šฉ ์ค‘์ธ ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•œ๋‹ค.
  • [username]: remote host์˜ username
  • [remote host]: tunnel์„ ์—ฐ๊ฒฐํ•  Private Instance(EC2)์˜ ํ”„๋ผ์ด๋น— IPv4 ์ฃผ์†Œ๋‚˜ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์„ ์ž…๋ ฅํ•œ๋‹ค. ํ•„์ž์˜ ๊ฒฝ์šฐ ํ”„๋ผ์ด๋น— IPv4 ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ–ˆ๋‹ค.
  • N : ์„œ๋ฒ„์— ๋Œ€ํ•œ ํฌํŠธ ํฌ์›Œ๋”ฉ ์ ‘์†์„ ์œ ์ง€
  • F : background์— ssh ํ„ฐ๋„์„ ๋“ฑ๋ก. ์ฃผ๊ธฐ์ ์œผ๋กœ ํ„ฐ๋„๋ง ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•  ํ•„์š”๊ฐ€ ์—†์–ด์ง„๋‹ค.
  • L: Private EC2๋กœ ์ ‘์†ํ•œ ํ›„, 127.0.0.1 ์„œ๋ฒ„์˜ 3306์— ์ ‘์†ํ•˜๋Š” ํ„ฐ๋„์„ 33306 ํฌํŠธ์— ๋“ฑ๋ก
  • C: ์ด์— ๋Œ€ํ•œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ์••์ถ•ํ•˜์—ฌ ๋ช…๋ น์„ ์š”์ฒญ

ํ•ด๋‹น ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅํ•ด์„œ ํ„ฐ๋„๋ง์„ ์ƒ์„ฑํ•œ๋‹ค.

 

ํ„ฐ๋„์ด ์ž˜ ์ƒ์„ฑ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ด ๋ณด์ž.

 # ํ„ฐ๋„ ์ƒ์„ฑ ํ™•์ธ
 lsof -i :[local port]
 
 # ์˜ˆ์‹œ
 lsof -i :33306 

 

 

 

 

4-2.๋กœ์ปฌ(local)๊ณผ Private DB ์‚ฌ์ด์— ํ„ฐ๋„(Tunnel) ์ƒ์„ฑ

 

ํ„ฐ๋„์ด ์ž˜ ์ƒ์„ฑ๋˜์—ˆ์œผ๋ฉด ๋กœ์ปฌ์—์„œ ๋กœ์ปฌ๊ณผ Private EC2 ์‚ฌ์ด ํ„ฐ๋„์„ ์ƒ์„ฑํ•  ๊ฒƒ์ด๋‹ค. 

 # ๋ช…๋ น์–ด ํ˜•์‹
 ssh -f -N -L [local port]:[Private EC2 host name]:[remote port] -i [pemํ‚ค ๊ฒฝ๋กœ] [username]@[Public EC2 host name OR public IP]
 
 # ์˜ˆ์‹œ
 ssh -f -N -L 33306:ip-172-xx-xx-xxx.ap-northeast-2.compute.internal:3306 -i  xxx-xxxxxxx-xxxx.pem ubuntu@52.xx.xx.xxx

 

 

ํ„ฐ๋„์ด ์ž˜ ์ƒ์„ฑ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ด ๋ณด์ž.

 # ํ„ฐ๋„ ์ƒ์„ฑ ํ™•์ธ
 lsof -i :[local port]
 
 # ์˜ˆ์‹œ
 lsof -i :33306 

 

 

 

์ด์ œ MySQL WorkBench๋ฅผ ์—ด์–ด 33306 ํฌํŠธ๋กœ Private EC2 DB์™€ ์—ฐ๊ฒฐํ•ด ๋ณด์ž

 

์—ฐ๊ฒฐ ์„ฑ๊ณต!!!!!

์ธํ…”๋ฆฌ์ œ์ด์—์„œ๋„ DB url๋ฅผ ์•Œ๋งž๊ฒŒ ๋ณ€๊ฒฝํ•˜๋ฉด ์Šคํ”„๋ง๋ถ€ํŠธ์™€๋„ ์ž˜ ์—ฐ๊ฒฐ์ด ๋œ๋‹ค!

 

๋!

 

 

 

 

 

 

 

 

 

 

 

์ฐธ๊ณ ํ•ด๋ณด๋ฉด ์ข‹์„ ์ž๋ฃŒ

 

https://nice-engineer.tistory.com/entry/SSH-ProxyTunneling-๊ฐœ๋…-๋ฐ-์ข…๋ฅ˜

 

SSH Proxy/Tunneling ๊ฐœ๋… ๋ฐ ์ข…๋ฅ˜

โœ”๏ธŽ SSH proxy/tunneling ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ์‚ฌ์ด์— ์—ฐ๊ฒฐ์ด ์ด๋ฃจ์–ด์ง€๋ฉด ์ด๋ฅผ ํ„ฐ๋„๋ง์ด๋ผ๊ณ  ํ•œ๋‹ค. SSH tunneling์ด๋ž€ ํ„ฐ๋„๋ง์„ SSH ํ”„๋กœํ† ์ฝœ์„ ์ด์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด๋ฉฐ proxy์™€ ๋น„์Šทํ•œ ์—ญํ• ์„ ํ•œ๋‹ค. ์‚ฌ๋‚ด

nice-engineer.tistory.com

 

https://deep-jin.tistory.com/entry/SSH-๋กœ์ปฌ-ํฌํŠธ-ํฌ์›Œ๋”ฉ-SSH-ํ„ฐ๋„๋ง

 

SSH ๋กœ์ปฌ ํฌํŠธ ํฌ์›Œ๋”ฉ (SSH ํ„ฐ๋„๋ง)

SSH ๋กœ์ปฌ ํฌํŠธ ํฌ์›Œ๋”ฉ (SSH ํ„ฐ๋„๋ง) ํฌํŠธ ํฌ์›Œ๋”ฉ ๋ฐฉ์‹์—๋Š” 3๊ฐ€์ง€๊ฐ€ ์žˆ๋Š”๋ฐ(Local, Remote, Dynamic), ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ํšŒ์‚ฌ์—์„œ ์ฃผ๋กœ ์“ฐ๊ณ  ์žˆ๋Š” Local Port Forwarding๋งŒ ๋‹ค๋ฃฐ ๊ฒƒ์ด๋‹ค. ๋กœ์ปฌ ํฌํŠธ ํฌ์›Œ๋”ฉ์„ ์ดํ•ด

deep-jin.tistory.com

 

https://neverfadeaway.tistory.com/42

 

ssh ํฌํŠธํฌ์›Œ๋”ฉ(ํ„ฐ๋„๋ง) ๋šซ๊ธฐ (feat. ๋กœ์ปฌ์—์„œ AWS VPC๋‚ด RDS ์ ‘์†ํ•˜๊ธฐ)

SSH ๋ž€ ๋ฌด์—‡์ผ๊นŒ? Secure Sell์˜ ์•ฝ์ž๋กœ ์›๊ฒฉ์ง€์— ์žˆ๋Š” ์ปดํ“จํ„ฐ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋กœํ† ์ฝœ ๋˜๋Š” ์ด ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ๋“ค์„ ์˜๋ฏธํ•œ๋‹ค. ์‚ฌ์šฉ์ž ์ธ์ฆ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ ์ „์†ก๊นŒ์ง€ ๋ชจ๋“  ๊ณผ

neverfadeaway.tistory.com