본문 바로가기

서버 개발 (AWS, Linux, DevOps)31

Docker : mysqldump를 이용하여 백업 및 마이그레이션 docker의 mysql 컨테이너 docker를 사용하다 보면 mysql, mongodb와 같은 데이터베이스 컨테이너를 활용하여 쉽게 DB 서버를 구축할 때가 많습니다. 저는 mysql 컨테이너를 이용하여 간단한 프로젝트에서 DB를 구축해서 테스트 및 배포를 진행하여 보았습니다. docker를 통한 mysql 설치는 아래 링크를 참고해주세요. ** 저는 docker image로 mysql 5.7 버전을 사용하였습니다 ** http://jmlim.github.io/docker/2019/07/30/docker-mysql-setup/ Docker를 통한 MySQL 설치하기. · 기억하기 위한 개발노트 Docker를 통한 MySQL 설치하기. 30 Jul 2019 | Docker docker MySQL 도커 M.. 2021. 9. 28.
AWS : Auto-Scaling과 예약 인스턴스(RI) 사용시 비용 산정 (동시 사용) 예약 인스턴스(RI)와 Auto-Scaling이란? AWS를 사용할 때 오래 사용할 인스턴스는 예약 인스턴스를 사용하여 이용합니다. 예약 인스턴스는 약정 기간을 정해놓고 미리 지불하여 사용하는 인스턴스를 말합니다. (꼭 미리 결제할 필요는 없지만 선결제가 할인율이 가장 큽니다.) 예약 인스턴스에 대한 내용은 아래 블로그에 잘 정리되어 있습니다. https://wooono.tistory.com/121 Auto-Scaling 이란 트래픽에 따라 서버의 수를 늘리고 줄이는 자동 조정을 하는 AWS 기술입니다. 예를 들어 하나의 인스턴스의 CPU 사용률이 5분 동안 80% 이상을 넘어서면 Auto Scaling 그룹에서는 똑같은 인스턴스를 하다 더 생성합니다. 이후 하나 더 생성된 인스턴스를 통해 분산처리가 되.. 2021. 7. 1.
AWS : Route 53 요금 및 비용 산정 Route 53 사용 시 요금 발생 문제 AWS에서 Free Tier 요금을 사용하던 중에 Route53을 사용할 일이 생겼습니다. 분명히 Free Tier로 사용하고 있는데 Route53에서 비용이 청구되는 것을 확인하여서, Route53 요금에 대해서 궁금증을 가지게 되었습니다. 요금 발생 내용은 아래와 같습니다. Route53 요금 발생 상황 요금이 발생한 상황을 분석해보니 제가 구매한 도메인을 Route 53에 연결했기 때문에 비용이 발생한 것이었습니다. Route53에 도메인 연결만 해두어도 돈이 나가는 것은 몰라서 이번에 알게 된 것 같습니다. Route53 과금 방식 좀 더 살펴보니 Route 53은 호스팅 영역을 등록 할때마다 과금을 하는 방식이었습니다. 여기서 호스팅영역이란 쉽게 말해서 .. 2021. 4. 6.
Docker : 리눅스에 도커 설치하기 (Ubuntu 18.04) 개발을 하다가 EC2 (Ubuntu 18.04) 에 도커를 설치할 일이 생겼습니다. 다음에 또 설치해야될때 알수 있도록 간단하게 정리해두었습니다. 도커 설치하기 sudo apt-get update sudo apt install docker.io sudo systemctl start docker sudo systemctl enable docker 만약 기존에 도커가 설치되어있다면 sudo apt-get remove docker docker-engine docker.io 위와 같이 apt-get install docker.io 이전에 위의 명령어로 도커를 지운 다음 설치해주시면 됩니다. Tips 위와 같이 설치하면 항상 sudo docker [명령어] 형식으로 사용해야 한다는 불편한 점이 있습니다. sudo.. 2021. 3. 26.
AWS : HTTP에서 HTTPS로 redirection 설정하기 (http_x_forwarded_proto + EC2 +ELB) redirection 문제 회사에서 데모를 위한 웹서버를 띄우기 위해 AWS 인프라를 구축할 일이 생겼습니다. 기본적으로 AWS의 ELB와 EC2 그리고 Nginx만을 이용한 간단한 웹 서버를 구축하였는데, 이때 HTTPS 인증서를 로드벨런서(ELB)에 붙이고, 타겟그룹을 만들어서 EC2 Nginx로 전달하였습니다. 이때 아래와 같은 문제가 발생하였습니다. https://example.com/ => HTTPS로 동작 http://example.com/ => HTTP로 동작 https://example.com/folder => HTTP로 동작 (http://example.com/folder/ 으로 이동) 저는 HTTP로 접속이 되더라도 HTTPS로 동작하는 웹서버를 구축해야 했습니다. 저희 회사 SDK를 .. 2021. 3. 19.
리눅스 : 용량 부족할때, 커널 삭제로 용량 확보하기 Linux를 사용하다보면 가끔 용량이 부족할 때가 있습니다. No space left on device (28) ... 용량이 없어서 오류가 날때는 보통 위와 같은 에러를 같이 보여줍니다. 이럴때 하드디스크나 SSD 볼륨 용량을 확장하거나, 필요없는 파일을 지우는 방법이 있지만 그전에 리눅스의 오래된 커널이 남아있을 수 있기때문에 용량부족의 원인일 수 있기 때문에 한번 확인해보시는 것이 좋습니다. 저의경우에 EC2리눅스를 쓰다가 용량이 부족해서 서버로 파일 업로드가 되지 않는 문제가 발생하였습니다. 그런데 해당 서버에는 볼륨의 용량을 다 쓸정도로 큰 파일이 없기 때문에 다른 이유를 찾던 도중 오래된 커널의 용량이 문제라는것을 확인할 수 있었습니다. 커널의 용량 확인 보통 커널들을 저장해놓는 경로는 /us.. 2021. 3. 15.
리눅스 : 메모리 확인 / 캐시 삭제 리눅스의 캐시와 메모리 리눅스에서 free 명령어를 사용하다 보면 buffer/cache라는 것이 존재합니다. 이 부분은 직접 사용하고 있는 메모리가 아닌 버퍼와 캐시에 사용된 메모리를 말합니다. 버퍼와 캐시에 저장된 메모리 말고 Swap 메모리도 있는데 해당 메모리는 메모리의 사용량이 늘어남에 따라서 디스크의 일부를 Ram처럼 사용할 수 있게 해주는 영영을 의미합니다. (커널에서 실제 메모리에 올라와 있지 않는 블록중 쓰이지 않는 것을 디스크에 저장하여 사용 가능한 메모리 영역을 늘림) 여기서는 버퍼와, 캐시에 사용된 메모리를 해제하는 법에 대해 알아보겠습니다. 버퍼와 캐시에 사용된 메모리를 지워줘야 하는 이유 일반적으로 캐시는 느린 장치의 데이터를 빠른 장치에 임시로 보관해두고 사용하여 성능을 올리는.. 2021. 2. 21.
AWS - EC2 Backup 방법 (snapshot) AWS에서 EC2 인스턴스를 백업하는 방법에 대해 조사해보았습니다. EC2 인스턴스를 실무에서는 따로 백업할 일은 지금까지는 없었지만 혹시 나중을 위해서 알아놓는 것이 좋을 것 같다고 생각이 들어서 한번 알아보겠습니다. AWS EC2의 백업 EC2의 인스턴스는 사용하지 않더라고 계속 켜놓으면 요금이 발생합니다. 따라서 이때 사용하지 않는 인스턴스는 중지하고 제거하면 되는데요, 하지만 언제 다시 사용할지 모르거나, 데이터가 많이 쌓여있는 DB인스턴스의 경우에는 백업을 해두는 것이 좋습니다. EC2는 대부분 root볼륨을 가지고 있고 추가로 EBS볼륨을 인스턴스에 붙이는 구조인데 create image를 통해 AMI를 생성하고 각각의 EBS볼륨에 대해서도 스냅샷을 떠야 합니다. AMI, EBS AMI란 Am.. 2021. 2. 12.
Jenkins : Jenkens를 활용한 실무 강좌 정리 (1강) - CI/CD, Jenkins Pipeline 등 SKplanet Tacademy 유튜브 채널에서 토크온 세미나로 Jenkins에 대한 내용을 설명해서 쭉 정주행을 해보았다. 평소 CI/CD에 대해서 많이 들어봤지만 무엇인지 제대로 알지 못하고, 개념이 잡혀있지 않아서 많은 도움이 된 세미나 였던 것 같다. 추후 Jenkins에 대한 파이프라인을 직접 회사에서 구축해보고 공부할 수 있는 기회가 생기면 좋을 것 같다는 생각을 하였다. 아래는 SKPlanet 토크온 세미나 영상 주소이다. www.youtube.com/watch?v=JPDKLgX5bRg JenKens와 CICD / Jenkins를 활용한 실무 CICD (1강) 1. 강의 목표 CI/CD 파이프라인의 기본 개념의 이해 기본적인 운영환경(DEV, QA, PROD)이 어떻게 구성되고 운영되는지 이.. 2021. 1. 17.
도커 : docker logs의 --tail을 이용하여 컨테이너 로그 확인하기 도커의 컨테이너에서 발생하는 로그들을 확인해야할 때가 종종있다. 이럴때 docker exec로 들어가서 로그를 확인하는것도 방법일 수 있지만 host os에서 간단히 컨테이너의 로그를 확인할 수 있는 방법도 있다 (하하) 아래 명령어를 이용하면 host os에서 명령어 한줄로 쉽게 컨테이너에서 발생하는 로그를 확인 할 수 있다. sudo docker logs --tail 10 -f 6fef3c2e0f4b 위 명령어는 발생한 로그중에 아래 10줄을 보여주는 명령어이다. -f 옵션을 주면 터미널에서 foregrond로 (터미널의 프로세스로) 동작하기 때문에 실시간으로 들어오는 로그들을 눈으로 확인할 수 있다. 2020. 6. 16.