Skip to content

๐Ÿ”ง [๊ธฐ๋Šฅ์š”์ฒญ][์„œ๋ฒ„์ด์ „] GCP ๋งŒ๋ฃŒ์— ๋”ฐ๋ฅธ AWS ์„œ๋ฒ„ ์ธ์Šคํ„ด์Šค ์ดˆ๊ธฐ์„ค์ •ย #88

@Chuseok22

Description

@Chuseok22

๐Ÿ“ ํ˜„์žฌ ๋ฌธ์ œ์ 

  • GCP ๋ฌด๋ฃŒ์ด์šฉ ๊ธฐ๊ฐ„์ด ์ข…๋ฃŒ๋จ์— ๋”ฐ๋ผ AWS๋กœ ์„œ๋ฒ„๋ฅผ ์ด์ „ํ•ฉ์‹œ๋‹ค

๐Ÿ› ๏ธ ํ•ด๊ฒฐ ๋ฐฉ์•ˆ / ์ œ์•ˆ ๊ธฐ๋Šฅ

AWS ์ธ์Šคํ„ด์Šค ์„ค์ • (@HyerimH )

์ธ์Šคํ„ด์Šค ์ƒ์„ฑ

  • ํ”„๋ฆฌํ‹ฐ์–ด ๋ฒ”์œ„์— ๋ฒ—์–ด๋‚˜์ง€ ์•Š๊ฒŒ ubuntu ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑ (์Šคํ† ๋ฆฌ์ง€๋Š” 30GB ์ตœ๋Œ€๋กœ ์„ค์ •ํ•ด์ฃผ์„ธ์š”)
  • ์ฒ˜์Œ ์ƒ์„ฑํ•˜๋ฉด pemํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„ ์ ‘์† ๊ฐ€๋Šฅ -> pemํ‚ค๋กœ ์ ‘์†ํ•˜๋Š” ๋ฐฉ์‹ ๊ทธ๋Œ€๋กœ ์œ ์ง€ํ•œ ์ฑ„ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ํ†ตํ•ด์„œ ssh ์ ‘์† ๊ฐ€๋Šฅํ•˜๋„๋ก ์„ค์ •ํ•ด์ฃผ์„ธ์š”
  • ssh ๊ธฐ๋ณธ ํฌํŠธ๋Š” 22๋ฒˆ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค -> ssh ํฌํŠธ 2022 ๋กœ ๋ณ€๊ฒฝํ•ด์ฃผ์„ธ์š”
  • ๊ธฐ๋ณธ ์‚ฌ์šฉ์ž๋Š” ubuntu์ž…๋‹ˆ๋‹ค -> ๊ธฐ๋ณธ ์‚ฌ์šฉ์ž๋Š” ์œ ์ง€ํ•œ ์ฑ„ ์ƒˆ๋กœ์šด admin ์‚ฌ์šฉ์ž ๋งŒ๋“ค์–ด์ฃผ์„ธ์š” (username ์ž์œ )
  • ๊ธฐ๋ณธ admin์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ๋ณด์•ˆ ์ธก๋ฉด์—์„œ ์œ ๋ฆฌํ•ฉ๋‹ˆ๋‹ค -> ์ƒˆ๋กœ์šด ์‚ฌ์šฉ์ž ์ƒ์„ฑ ํ›„ ๊ธฐ๋ณธ ์‚ฌ์šฉ์ž ubuntu๋Š” rootLogin = false๋ฅผ ํ†ตํ•ด ๋น„ํ™œ์„ฑํ™”
  • ์„œ๋ฒ„ ip๋ฅผ ๊ณ ์ •ํ•˜๊ณ , ๋ฐฉํ™”๋ฒฝ ์„ค์ •์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค -> ssh 2022, 5432 postgresql, 27017 mongoDB, redis 6379, http 80, https 443, rds 3389 ๋“ฑ๋“ฑ ํ•„์š”ํ•œ ํฌํŠธ ๋ชจ๋‘ ์—ด์–ด์ฃผ์„ธ์š”
  • aws ํ”„๋ฆฌํ‹ฐ์–ด ์ธ์Šคํ„ด์Šค๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ 1GB๋žจ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค (์ง ๋Œ์ด๋“ค..) 1GB๋žจ์œผ๋กœ ์„œ๋ฒ„ ์˜ฌ๋ฆฌ๋ฉด docker ์ปจํ…Œ์ด๋„ˆ ํ•˜๋‚˜ ์˜ฌ๋ฆฌ์ž๋งˆ์ž ๋ฐ”๋กœ ํŽ‘~ ํ„ฐ์ง€๋‹ˆ๊นŒ ์Šค์™‘๋ฉ”๋ชจ๋ฆฌ ์„ค์ •ํ•ด์ฃผ์„ธ์š” ์Šค์™‘๋ฉ”๋ชจ๋ฆฌ๋Š” 6GB์„ค์ •ํ•ฉ์‹œ๋‹ค
  • ์„œ๋ฒ„ docker ์„ค์น˜
  • docker ์„ค์น˜ ํ›„ portainer ์ปจํ…Œ์ด๋„ˆ ์˜ฌ๋ฆฌ๊ธฐ
  • ๋ชจ๋“  docker ์ปจํ…Œ์ด๋„ˆ๋Š” docker-compose.ymlํŒŒ์ผ์„ ์ƒ์„ฑํ•˜์—ฌ ์˜ฌ๋ฆฝ์‹œ๋‹ค -> ์ถ”ํ›„ ์œ ์ง€๋ณด์ˆ˜ ์šฉ์ด์„ฑ

Docker ๊ฒฝ๋กœ

  • ๊ฐ DB docker ์ด๋ฏธ์ง€ ๋ฒ„์ „์€ ์›ํ•˜๋Š”๋Œ€๋กœ ๋ณ€๊ฒฝํ•ด๋„ ๋ฉ๋‹ˆ๋‹ค
  • ์ตœ์‹  ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์œผ๋ฉด latestํƒœ๊ทธ ์‚ฌ์šฉํ•˜์‹œ๊ตฌ

PostgreSQL

  • ๋ณผ๋ฅจ: docker/postgres
  • yml๊ฒฝ๋กœ: docker/docker-compose/postgres/docker-compose.yml
version: "3.8"

services:
  postgres:
    image: postgres:14
    container_name: postgres
    restart: always
    environment:
      - POSTGRES_USER={username}
      - POSTGRES_PASSWORD={password}
      - POSTGRES_DB=postgres_db
    ports:
      - "5432:5432"
    volumes:
      - /volume1/docker/postgres:/var/lib/postgresql/data {์—ฌ๊ธฐ ์ˆ˜์ • ์ž˜ํ•˜์„ธ์š”}

MongoDB

  • ๋ณผ๋ฅจ: docker/mongo
  • yml๊ฒฝ๋กœ: docker/docker-compose/mongo/docker-compose.yml
version: '3.8'

services:
  mongodb:
    image: mongo:4.4  # 4.4 mongo ์ด๋ฏธ์ง€ ์‚ฌ์šฉ {synology nas ์—์„œ๋Š” 5๋ฒ„์ „ ๋ฏธ๋งŒ๋งŒ ์ง€์›ํ•ด์„œ 4.4๋ฅผ ์‚ฌ์šฉํ–ˆ์–ด์š” aws์ธ์Šคํ„ด์Šค์—์„œ๋Š” ์•Œ์•„์„œ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์€๊ฑฐ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค}
    container_name: mongodb
    restart: always
    environment:
      - MONGO_INITDB_ROOT_USERNAME={username}
      - MONGO_INITDB_ROOT_PASSWORD={password}
    ports:
      - "27017:27017"  # ํ˜ธ์ŠคํŠธ์˜ 27017 ํฌํŠธ๋ฅผ ์ปจํ…Œ์ด๋„ˆ์˜ 27017 ํฌํŠธ๋กœ ๋งคํ•‘
    volumes:
      - /volume1/docker/mongodb:/data/db  # /volume1/docker/mongo ๋งคํ•‘ {๋ณผ๋ฅจ ๋งคํ•‘ ์ˆ˜์ • ํ•„์š”!!!}

Redis

  • ๋ณผ๋ฅจ: docker/redis
  • yml๊ฒฝ๋กœ: docker/docker-compose/redis/docker-compose.yml
version: '3.8'

services:
  redis:
    image: redis:latest
    container_name: redis
    restart: always
    ports:
      - "6379:6379"  # ํ˜ธ์ŠคํŠธ์˜ 6379 ํฌํŠธ๋ฅผ ์ปจํ…Œ์ด๋„ˆ์˜ 6379 ํฌํŠธ๋กœ ๋งคํ•‘
    volumes:
      - /volume1/docker/redis:/data  # Redis ๋ฐ์ดํ„ฐ ๋””๋ ‰ํ† ๋ฆฌ ๋งคํ•‘
    command: redis-server --appendonly yes  # AOF(Append-Only File) ํ™œ์„ฑํ™”๋กœ ๋ฐ์ดํ„ฐ ์˜์†์„ฑ ๋ณด์žฅ

docker ํด๋” ๋‚ด๋ถ€ docker-compose, postgres, mongo, redis

  • ํ•ด๋‹น postgres, mongo, redis๋Š” ๋ณผ๋ฅจ!!! ์ž…๋‹ˆ๋‹ค
    Image

docker/docker-compose ๋‚ด๋ถ€ postgres, mongo, redis

  • ํ•ด๋‹น postgres, mongo, redis๋‚ด๋ถ€์—๋Š” docker-compose.ymlํŒŒ์ผ์ด ์œ„์น˜ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค
    Image

์ปจํ…Œ์ด๋„ˆ

  1. portainer 9000๋ฒˆ ํฌํŠธ
  2. postgresql 5432๋ฒˆ ํฌํŠธ
  3. mongodb 27017๋ฒˆ ํฌํŠธ
  4. redis 3389๋ฒˆ ํฌํŠธ
    ์š”๋ ‡๊ฒŒ 4๊ฐœ ์˜ฌ๋ ค๋†“์œผ๋ฉด ๋ฉ๋‹ˆ๋‹ค ๋‹น์—ฐํžˆ ์—ฐ๊ฒฐ ํ™•์ธ๊นŒ์ง€ ๋๋‚ด์•ผ๋ผ์š” ์ดํ›„ cicd๊ณผ์ •์—์„œ db์—ฐ๊ฒฐ๋•Œ๋ฌธ์— ๋ฌธ์ œ ์ƒ๊ธฐ์ง€ ์•Š๋„๋ก ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค

๐Ÿ™‹โ€โ™‚๏ธ ๋‹ด๋‹น์ž

  • ๋ฐฑ์—”๋“œ: @HyerimH @nayoung04
  • ํ”„๋ก ํŠธ์—”๋“œ: ์ด๋ฆ„
  • ๋””์ž์ธ: ์ด๋ฆ„

Metadata

Metadata

Labels

์ž‘์—…์ค‘์ž‘์—…์ด ์ง„ํ–‰์ค‘์ธ ์ƒํƒœ

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions