-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
좋았던 것(Liked)
- 없음
배운 것(Learned)
1. fly.io 배포 및 실습
※ nGrinder 설치
가이드: https://github.com/naver/ngrinder/wiki/Installation-Guide
설치경로: https://github.com/naver/ngrinder/releases
설치 방법

ⓐ 위의 폴더 구조를 만들기
$ mkdir app
$ cd app
$ mkdir ng
$ cd ng
$ mkdir controller
$ cd controller
ⓑ nGrinder 실행
$ java -jar ngrinder-controller-3.5.8.war --port=[PORT_NUMBER]
ⓒ Agent 다운로드
i) 홈페이지 접속
localhost:포트번호

id: admin
pw: admin
iii) 위의 폴더 구조 생성
$ cd app/ng/
$ mkdir ngrinder-agen
$ # 위의 하위 폴더에 tar 받기
$ cd ngrinder-agent
$ tar -xvf ngrinder-agent-3.5.8-localhost.tar
iv) 실행하기
./run_agent.sh
※ 사전 준비 hub에 docker hompage 배포 된걸 확인하기

① docker_compose 준비하기
version: '2'
services:
nginx-proxy:
image: nginxproxy/nginx-proxy
ports:
- "80:80"
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
##################
##### fly.io #####
##################
felicette1963:
image: [docker hub에 배포된 이미지명]
# build: . [현재 도커 파일이 가리키는 이미지명]
expose:
- "80"
environment:
- VIRTUAL_HOST=Felicette.flyio.com
- VIRTUAL_PORT=80
deploy:
mode: replicated
replicas: 1 # https://docs.docker.com/compose/compose-file/deploy/#replicas
resources: # https://docs.docker.com/compose/compose-file/compose-file-v3/#resources
limits:
cpus: '0.05'
memory: 50M
reservations:
cpus: '0.01'
memory: 6M
※ deploy 모드 설명
참조사이트: https://docs.docker.com/compose/compose-file/deploy/#replicas
| 명령어 | 설명 |
|---|---|
| mode | 플랫폼에서 서비스를 실행하는 데 사용되는 복제 모델을 정의 global: 물리적 노드당 컨테이너 하나를 제공 replicated: 지정된 개수의 컨테이너를 복제하여 제공 |
| resources | 리소스는 컨테이너가 플랫폼에서 실행되도록 물리적 리소스 제약 조건을 구성하는 명령어 |
| limits | 서버 제한 설정으로 홈페이지 이용자의 메모리 / CPU 제공량을 제한하는 명령어 cpus: cpu 사용량 memory: 메모리 사용량 |
| reservations | 플랫폼은 컨테이너의 최소치 보장하는 명령어 |
- hosts 설정
############
# fly.io
############
127.0.0.1 Felicette.flyio.com
#################
# github.io blog
#################
- compose 하기
$ docker compose up -d
[+] Building 0.4s (7/7) FINISHED docker:default
=> [felicette1963 internal] load .dockerignore 0.1s
=> => transferring context: 2B 0.0s
=> [felicette1963 internal] load build definition from Dockerfile 0.1s
=> => transferring dockerfile: 86B 0.0s
=> [felicette1963 internal] load metadata for docker.io/library/httpd:2.4 0.0s
=> [felicette1963 internal] load build context 0.1s
=> => transferring context: 4.78MB 0.1s
=> CACHED [felicette1963 1/2] FROM docker.io/library/httpd:2.4 0.0s
=> [felicette1963 2/2] COPY . /usr/local/apache2/htdocs/ 0.1s
=> [felicette1963] exporting to image 0.1s
=> => exporting layers 0.1s
=> => writing image sha256:d78f5e6f85f3349829eee6f4e4087db864fb70acfe8b8e26ed53d9d850084f95 0.0s
=> => naming to docker.io/library/felicette1963githubio-felicette1963 0.0s
[+] Running 2/2
✔ Container felicette1963githubio-nginx-proxy-1 Started 0.1s
✔ Container felicette1963githubio-felicette1963-1 Started 0.1s
※ docker 추가 설정
//Container 전체 정지시키기
$ docker stop $(docker ps -a -q)
//Container 전체 삭제하기
$ docker rm $(docker ps -a -q)
② 로드 테스트 실행
※ 하지만 위의 조건에서 평균 TPS가 50에도 못미친다. 메일의 요구 사항 조건인 평균 TPS 150을 요구하기 때문에 설정을 바꿔 줘야 한다.
③ Test Report 작성
Result
github: https://github.com/Felicette1963/Felicette1963.github.io/tree/1.0.2/compose.flyio.com
code
deploy:
mode: replicated
replicas: 2 # https://docs.docker.com/compose/compose-file/deploy/#replicas
resources: # https://docs.docker.com/compose/compose-file/compose-file-v3/#resources
limits:
cpus: '0.06'
memory: 60M
reservations:
cpus: '0.02'
memory: 20M
update_config:
parallelism: 2
delay: 10s
order: stop-first
④ 재배포하기
i) docker 로그인하기
$ docker login
Authenticating with existing credentials...
Login Succeeded
ii) docker에 현재까지의 내용 build하기
$ docker build -t felicette1963/felicette1963.github.io .
[+] Building 0.2s (7/7) FINISHED docker:default
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 86B 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [internal] load metadata for docker.io/library/httpd:2.4 0.0s
=> CACHED [1/2] FROM docker.io/library/httpd:2.4 0.0s
=> [internal] load build context 0.0s
=> => transferring context: 17.08kB 0.0s
=> [2/2] COPY . /usr/local/apache2/htdocs/ 0.1s
=> exporting to image 0.1s
=> => exporting layers 0.0s
=> => writing image sha256:c7acea040b0f56605ed90e26cf8f50a9ff35921f14bb0adfbb11592805c4783a 0.0s
=> => naming to docker.io/felicette1963/felicette1963.github.io 0.0s
What's Next?
View a summary of image vulnerabilities and recommendations → docker scout quickview
③ docker push로 build된 docker 등록하기
$ docker push felicette1963/felicette1963.github.io
Using default tag: latest
The push refers to repository [docker.io/felicette1963/felicette1963.github.io]
4e399f8328cf: Pushed
b7094d4685d5: Layer already exists
87ca57c6f4e9: Layer already exists
1343ea427053: Layer already exists
8db3e477577e: Layer already exists
cb4596cc1454: Layer already exists
latest: digest: sha256:8f1f440213a97b0eca0fc9b4d5fb78732dc5303702ddd0ba1f64004c3cdab043 size: 1577
④ 웹사이트 확인
https://felicette1963.fly.dev/

⑤ 답장하기
부족했던 것(Lacked)
- 없음
바라는 것(Longed for)
- 없음
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels









