• ESXi 네트워크 속도 500MB 대구 vs 왜관

    ESXi 네트워크 속도 500MB 대구 vs 왜관

    ESXi 8.0.0 버전과 ESXi 7.0.3 버전 네트워크 속도를 확인 합니다.

    우선 보통 가정집에 100MB, 500MB, 1000MB (1GB) 이렇게 3가지 회선이 많이 제공되고 있습니다.

    이 중에서 저는 100MB 저속 인터넷과 500MB 고속 인터넷을 사용 중입니다.

    서버급에서 일반적으로 1G 이하는 저속이지만… 가정용 기준으로 했을때 500메가 정도면 빠른 편에 속합니다.

    왜관 사무실과 대구 자택에서 각각 500MB 속도가 차이가 날 수 있으므로 그냥 참고만 해주세요.

    ESXi 8, 7 네트워크 속도 500MB 대구 vs 왜관

    개인서버구축

    1. ESXi 8.0.0 네트워크 속도 500MB 대구

    개인서버구축

    ESXi 8 버전에서 네트워크 속도 500MB 회선의 다운로드 속도 입니다.

    CentOS 4.5GB 정도 되는 용량의 ISO 파일을 받을때 평균 57MB /s 속도로 다운받더군요.

    같은 서버에 ESXi 7 버전 설치했더니 역시 똑같네요.

    개인서버구축

    ESXi 네트워크 속도는 버전 7,8 차이는 없는걸로 결론 내도 될듯싶네요.

    2. ESXi 7.0.0 네트워크 속도 500MB 왜관

    개인서버구축

    ESXi 7 버전에서 네트워크 속도 500MB 회선의 다운로드 속도 입니다.

    위와 동일한 ISO 파일을 다운받았으며 최고 속도를 보면 8.0보다 7.0에서 더 높았습니다.

    ESXi 8에서는 50MB/s 정도의 속도가 평균이었다면 ESXi 7에서는 80MB/s 정도의 평균속도가 나왔습니다.

    위치적 차이일 수 있습니다.

    대구 500MB 속도와 왜관 500MB 속도이며 또 주위 사람들이 많냐 적냐에 따라 회선속도가 다를 수 있습니다.

    사용은 ESXi 7 버전이 더 편합니다.

    개인서버구축

    ESXi 8 버전은 그냥 뭔가 UI 부터 반감이 생기네요

    마치 vCenter 느낌이랄까…

  • OOM Killer mysqld 계속 재실행 문제 리눅스 메모리 부족 네임서버 Bind 에러

    OOM Killer mysqld 계속 재실행 문제 리눅스 메모리 부족 네임서버 Bind 에러

    서버가 많다보니 자주 이곳저곳에서 서버가 재실행 됩니다.

    그중에 자주 보이는 에러문이 있어서 확인해보니 OOM Killer 에 의해서 mysqld 서비스가 재실행 되는 문제였습니다.

    개인서버구축

    일단 메모리가 부족하여 Out of Memory 라는 문구가 떠 있네요.

    1,621,004KB 이정도 메모리면…

    1.6GB 인데….뭔가 잘 못 세팅이 된듯 합니다.

    다른 서버도 확인해보니..

    지금 리눅스 맨이 동작하고 있는 서버 입니다.

    개인서버구축

    이 서버에서도 메모리 부족으로 인해서 mysqld 서비스를 재실행 한 흔적이 보이네요.

    total-vm: 2,698,096kB

    2.7GB 인데… 이정도면 충분히 여유있는 메모리임에도 불구하고 재실행이 되었습니다.

    요즘 갑자기 서버가 자주 다운되고 멈추는 현상이 발생되고 있는데… 아직 해결이 안된 부분이라 OOM 킬러 부분과 연결지어서 로그를 분석하고 있습니다.

    개인서버구축

    그런데 이상하게도 이렇게 간혈적으로 끊기는 서버가 있는 반면…

    또 어떤 서버는 전혀 끊김없이 잘 동작하고 있습니다.

    개인서버구축

    이 두개 서버의 차이점은…

    메모리 전체용량 차이랑 CPU 갯수 차이인데…

    SSD 용량도 조금 나긴하지만 일단 여유는 모두 있는 상태입니다.

    그렇다면…CPU 성능 차이밖에 없는데…

    일단 CPU를 업그레이드 해보겠습니다.

    현재 듀얼 CPU를 사용하고 있는데 쿼드정도 올려놓고 지켜봐야겠네요.

    CPU를 모두 v4CPU로 업그레이드 하였고 Respond Page를 46,534byte 에서 1byte로 줄였습니다.

    0바이트로 만들수도 있지만 그렇게 되면 실제 페이지를 다운받았는지 여부를 알기 어려워서 그냥 숫자 1 넣었습니다.

    개인서버구축

    그리고 DNS 서버의 메모리를 2배로 늘렸습니다.

    서버 자체 하드웨어를 업그레이드 하고나서 조금 현상이 줄어들었습니다.

    그리고 AWS EC2 인스턴스에서 동작하고 있는 DNS서버의 메모리를 2배 늘린 후로 다운되었다는 메시지는 나타나지 않고 있습니다. 오히려 그동안 다운되고 있던 사이트들이 다시 동작한다고 안내문이 날라오고 있네요.

    한가지 의심되는 부분도 있긴하지만… 누군가가 API 서버에 초단위로 핑 치듯 계속 URL을 날리고 있는데….

    딱히 빠른 속도도 아니고해서 그냥 무시하고 있습니다.

    일단 이렇게 지켜보고 문제가 없길 바라고 있습니다.

    이 글 뒤에 따로 업데이트 내용이 없으면 위의 3가지 방법으로 해결이 된 것입니다.

    가장 큰 역할은 아무래도 DNS 서버의 메모리 증설이 아닐까 싶네요.

    사실 전체 메모리 대비 사용량이 80%가 조금 넘었거든요.

    역시 OOM 킬러가 강제로 DNS를 죽인게 아닐까 싶긴하지만 로그가 없으니 알길이 없습니다.

    Bind 서비스가 왠지 문제였지 않을까싶네요..

    한동안 아무 이상이 없길 바랄뿐입니다.

    사이트 제작도 해야하는데 지금 서버쪽 급한 불부터 끄기바빠 진행도 딜레이 되고 있네요.

    밤새서라도 마감일 안에 다 되도록 해야합니다.

    끝!

  • 파이썬 서버 체크 requests try catch timeout

    파이썬 서버 체크 requests try catch timeout

    개인서버구축

    파이썬 서버 체크

    파이썬을 이용하여 운영중인 웹서버 도메인을 쉽게 확인 할 수 있습니다.

    timeout = 3 초 되어있는데 자신의 서버에 맞게 세팅하세요.

    5초~10초 정도 해도 적당합니다.

    타임아웃으로 나오는 경우는 단순 서버가 느리게 반응하는것입니다.

    그러니 여유있게 잡아주시고요.

    BAD 나올 경우랑 Connection Error 나올 경우에는 필히 서버를 체크해주세요

    _______def_url_list 파일에는 url_list 배열이 들어 있습니다.

    개인서버구축

    파이썬 서버 체크 결과화면

    개인서버구축
    개인서버구축

    웹서버가 많을 수록 이 소스는 자주 사용됩니다.

    잘 사용하세요.

    나중에 문제 있는 서버가 있으면 SMS로 알려주는 기능 추가해봐야겠네요.

    돌아다니면서 문자 오면 서버 이상 증상 바로 확인 되도록요.

    혹시 기능 필요하신 분들 계시면 연락주세요.

    연락은 스마트폰에서 접속해서 아래를 클릭하면 문자보낼수 있습니다.

    필요하신분들 클릭!!

    끝!~

  • .htaccess Redirect RewriteEngine 리다이렉트

    .htaccess Redirect RewriteEngine 리다이렉트

    이 문서는 매우 중요한 문서이며 공개 될 경우 개발자들 사이에서 많이 사용하게 됩니다.

    오늘 이 정보는 너무 중요해서 가리겠습니다.

    부자들은 아래 코드를 사용해야합니다

    [coupang]

    .htaccess Redirect

    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^(domain\.com|www\.domain\.kr)
    RewriteRule (.*) https://RedirectDomain.com [L]
    
    #예시
    RewriteRule (.*) https://vlog.tion.co.kr/smartphone/?referer=refererUrl&r=refereValue [L]

    도메인을 이용하여 전체 URL에 대해서 특정 URL로 강제 리다이렉트 시킬 수 있습니다.

    이때 주의 할 점은 301 Redirect 를 사용하면 안됩니다.

    [coupang_end]

    301을 사용하게 될 경우 크롬브라우저에서 처음을 인지하지 않고 마지막을 기억하여 캐시로 바로 마지막 주소에 도달하게 됩니다. 결국 앞에 레퍼값이 모두 사라지게 되므로 원하는 그림을 만들기가 어렵게 됩니다.

    307 또는 308 리다이렉트를 사용해야하며 딜레이는 딱히 주지 않아도 됩니다.

    개인서버구축

    0초를 주던 1초를 주던 상대 도착지점에서는 레퍼값이 이전 값을 알수 없게됩니다.

    같은 정보라도 보는 사람에 따라 어떻게 활용하냐에 달려있는 거 같습니다.

    보물 지도를 보고도 그게 보물인지 모르죠.

    마치 지금 이 글처럼요..

    실제 어떻게 활용되고 응용되는지 눈응로 보여주면 ‘아~~~’ 하겠지만…

    그전까지는 그저 .haccess 301 Redirect 스크립트에 불과하죠.

    끝!

  • AWS Route 53 도메인 20개 제한 해제

    AWS Route 53 도메인 20개 제한 해제

    도메인 기관이전을 열심히 하고 있었습니다.

    KSDOM -> AWS Route 53 이렇게 옮기는데 도메인 20개째부터 더이상 이전신청이 되지 않아 알아보니 AWS Route 53에서 제공하는 갯수가 20개더군요.

    그래서 오늘로써 그 제한을 해제신청했습니다. 여태 모르고 있었네요.

    https://us-east-1.console.aws.amazon.com/servicequotas/home?region=us-east-1#!/services/route53/quotas

    개인서버구축

    1000개로 늘려놓아야겠네요.

    개인서버구축

    여태 도메인 갯수 20개 제한 있는것도 모르고 있었는걸 보면 제가 그동안 얼마나 게을리 있었는지 알 수 있습니다.

    개인서버구축

    한국에 사이트 몇개 운영 하지 않을때에도 도메인이 100개 넘었는데 글로벌하게 확장하려면 최소 1000개 이상은 구입해야겠죠.

    그런 의미에서 매일마다 웹사이트 하나씩 만들어보도록 하겠습니다.

    AWS Route 53 도메인 20개 제한 해제 끝!

  • AWS Route 53 도메인 이전 갯수 제한 20개 늘리기

    AWS Route 53 도메인 이전 갯수 제한 20개 늘리기

    이번에 AWS Route 53 쪽으로 도메인을 이전을 많이 하게 되었습니다.

    처음에는 한개씩 이전하다보니 몰랐었는데.. Route 53 서비스도 도메인 이전 제한이 있더군요.

    그런데 다시 알아보니 AWS Route 53 도메인 한계치가 20개더군요. 즉 20개째까지 기관이전이 가능했고 21개부터 신청이 안된거였습니다.

    2개가 이미 이전상태로 대기중이라면 3번째 도메인은 대기상태가 아닌 아예 신청이 안됩니다.

    	
    죄송하지만 일부 도메인에 대한 도메인 이전 요청을 제출할 때 다음과 같은 오류가 발생했습니다.
    royalkeyword.net
    최대 허용 도메인 수에 도달했습니다. Route 53 대시보드에서 제한 증가를 요청할 수 있습니다.
    
    개인서버구축

    이렇게 진행 자체가 되지 않습니다.

    예전에 EC2 인스턴스도 5개 이상 구입할경우 탄력적 IP (고정아이피)를 6개째부터 사용할 수 없었죠.

    그때도 제한을 풀어서 20개까지 사용했었습니다.

    그 후로 라이트세일도 제한이 걸려있었고 이번에 또 Route 53 서비스에서 이전진행할때 2개까지만 되는군요.

    개인서버구축

    위처럼 2개를 10개로 아니면 그 이상으로 열어달라고 요청했습니다.

    지금은 2개가 진행중인 상태입니다.

    개인서버구축

    일단 제한이 늘어나기전에 2개 진행부터 되면 또 신청 할 수 있으니 진행은 빠르게 버튼 눌러가면서 진행하고 있습니다.

    개인서버구축

    .com 도메인과 .net 도메인은 국제도메인이라서 AWS Route 53 에서 관리할 수 있으며 각각 13달러 11달러라서 한국 업체에서 구입하는거랑 큰 차이도 없어서 그냥 AWS 에서 관리하기로 했습니다.

    도메인 이전이 완료되면 바로 DNS 서버 연결이 될 수 있도록 네임서버 세팅도 마무리 했습니다.

    개인서버구축

    IT 전문가는 암기 그리고 아는것이 중요한게 아니라 실전에 실제로 적용시키면서 시스템을 만들어 낼 수 있어야 합니다.

    도메인 20개 할당 제한 요청

    https://us-east-1.console.aws.amazon.com/servicequotas/home?region=us-east-1#!/services/route53/quotas

    오늘도 끝!

  • SSD 500기가 충분 가성비 따진다면 한창코퍼레이션 CLOUD SSD

    SSD 500기가 충분 가성비 따진다면 한창코퍼레이션 CLOUD SSD

    서버를 많이 만들고 구축하다보니 CPU, RAM, SSD, POWER, MAIN BOARDER 이렇게 부품을 수시로 구입합니다.

    RAM 메모리는 중국에서 대부분을 구입하고 있고 SSD도 중국에서 구입을 해 보니 한국보다는 1~2만원 정도 더 저렴하더군요.

    그런데!! SSD는 한국과 다른 부분이 있습니다.

    일단 중국에서 제조하는것은 국내 유통이랑 별반 차이가 없는데… 서비스 즉 AS가 안된다는 점에서는 한국에서 구입하는게 좋더군요. 중국은 일단 고장나면 알리라던지 아마존을 통해서만 AS를 받아야 하는데… 고장 났다는 증명을 하는 것이 너무 어렵습니다. 게다가 배송이 우편이라보니 내가 직접 반품처리하기 위해서 지정된 장소까지 가져가야 하는 수고로움이 생기더군요.

    물론 메모리도 고장나면 비슷한 경우가 되겠지만 이상하게 아직까지 메모리는 고장이 단 1건도 없습니다.

    SSD는 특히 M.2(Nvme) 모델은 수시로 고장이 나더군요. 아직 2.5인치 SATA 모델에서는 고장이 없습니다.

    알리에서는 아래 모델은 구입하면 대략 2.5만원 선에 512GB를 구입할 수 있지만 AS에 대한 보장은 기대하지 않아야 합니다.

    개인서버구축

    AS는 당연히 1년~ 3년 이렇게 해 준다고 적혀있지만 실제로 AS받기란 하늘의 별따기 수준으로 어렵습니다.

    고장에 대한 확실한 증빙 동영상을 제출하고 또 고가의 제품이라면 반송까지 해야 하므로 한국스타일은 아니죠.

    그에 비해서 8천원 정도 더 돈을 지불하면 AS도 완벽하고 고장에 대한 부담을 3년동안 하지 않아도 되는 모델이 있죠.

    개인서버구축
    개인서버구축

    그때 개당 3만원 넘게 구입을 했는데.. 지금 512GB 가격이 3만원 조금 넘더군요. 이런… ㅎㅎ

    그래서 512GB 한창코퍼레이션 CLOUD SSD 모델을 추가로 5개 더 주문했습니다.

    저처럼 쿠팡에서 할인할 때 구입하시면 조금 더 저렴하게 구입하실 수 있을겁니다.

    [a]500gbssd[/a]

    굳이 1TB SSD를 구입하지 않는 이유는… 곧 SSD 가격 하락이 있기때문입니다.

    개인서버구축

    1TB 가격이 곧 3만원대로 떨어지게되므로 그냥 512GB 3만원주고 구입해서 사용하다가 내년쯤 3만원 더 주고 1TB 하나 더 구입하면 됩니다. 혹시 모르죠 2TB SSD 금액이 3만원대가 될지를…. 요즘 14TB HDD 용량이 20만원도 안하고 게다가 QLC 모델로 대용량이 저렴하게 풀리다보니 2TB SSD를 5만원에 구입하는 날은 머지 않은듯합니다.

    7년전에 삼성 2TB SSD 구입할때 80만원 조금 더 지불했던 기억이 있네요.

    요즘 2TB SSD 해봐야 10만원~20만원 정도면 구입합니다.

    7년전에 대용량을 구입해서 사용하긴 했지만 지금와서 생각해보면 그냥 512GB 20만원짜리 구입해서 버티다가 지금 2TB 구입했다면 60만원을 아낄 수 있었는데 라는 생각도 들더군요.

    지금은 가성비 가장 좋은 512GB SSD 구입해서사용하다가 1년 후쯤에 같은 3만원 내고 1TB 혹은 2TB SSD 구입하면 됩니다.

    바로 지르죠~ GoGo!

  • MYSQL DB 데이터베이스 용량 줄이기

    MYSQL DB 데이터베이스 용량 줄이기

    매월 늘어나는 빅데이터로 인해서 MySQL DB 용량은 점점 늘어나고 있습니다.

    7년전에 이미 예상했던 부분이기에 크게 놀랍지는 않습니다.

    그 당시 월단위로 20GB씩 늘어났었으며 1년에 240GB를 사용할 경우 10년에 2400GB를 확보하면 된다는 마인드로 2TB SSD를 구입하여 사용해왔습니다.

    2TB SSD를 이용할 경우 대략 10년 정도 버틸 수 있다 생각했었죠.

    실제로 용량은 그보다 더 많이 늘어났습니다.

    이미 쌓인 DB를 바탕으로 더 많은 수집 정보로 인해서 용량은 거대해지게 되었죠.

    안되겠다 싶어서 MySQL OPTIMIZE 등등 다 해보았지만 근본적으로 물리용량까지 줄일 수는 없었습니다.

    지금은 아래 테이블을 보시다싶이 1개월 단위로 용량이 눈에 띄일 정도로 많이 줄어든 상태입니다.

    개인서버구축

    제가 사용한 방법은 INDEX를 없애버린겁니다.

    인덱스가 사라지니깐 속도는 느리지만 더 많은 용량을 확보하여 하드웨어 비용적인 부분에서 절약이 많이 되었습니다.

    20GB -> 2GB로 확 줄어버리니 10년의 기간이 100년으로 늘어나게 된거죠.

    대신 어떤 데이터를 찾을 때 매우 느리다는것만 감안한다면 뭐 그리 큰 문제는 아니였습니다.

    용량을 줄여놓고보니 이번에는 가상화 VM 구조로 운영을 할 수 있게 되었습니다.

    그래서 200GB정도면 10년치를 확보 할 수 있겠다 싶어 잘 운영하고 있었죠.

    그런데 이미 7년이 넘어가는 시점에 도달하였고 역시 200GB 용량으로는 한계점이 오게되어 물리적인 용량을 늘려야 하는 시기가 또 다다르게 된것입니다.

    이번에는 조금 다른 생각을 하게되었습니다.

    기존에는 INDEX 컬럼을 삭제했다면 이번에는 물리적으로 ROW를 줄여보자는 마음이 생기더군요.

    처음부터 약속을 하는거죠.

    기준치에 미치지 못하는 경우에 대해서는 그냥 일괄 수집을 하지 않는 방법입니다.

    이 알고리즘은 아니 알고리즘이라고 말하기도 힘들죠. 그냥 방법론인거죠.

    처음에 몇가지 상태를 지정해놓고 그 상태를 바탕으로 기준에 미치지 못하면 ROW를 넣지 않고 기준에 부합할 경우에만 INSERT 시키는 방법입니다.

    이렇게 할 경우 제가 기준을 얼마나 높이냐에 따라 수집되는 데이터는 줄어들게되죠.

    대신 정확도는 점점 떨어지게됩니다.

    높은 수치를 지정해놓게되면 그 이하 수치는 모두 수집을 하지 않게 되니 정확도가 그만큼 떨어지게되죠.

    하지만 정확도와 무관하게 숫자가 0부터 1만까지가 있을 경우 0과 1은 큰차이가 생기지 않기에 0과 1을 제거 할 경우

    ROW갯수는 엄청나게 차이가 나게됩니다.

    개인서버구축

    크기 2.3GB 용량의 테이블 크기가 463.3MB 만큼 확보를 할 수 있게 되었습니다.

    바로 1에 대한 부분을 0과 퉁 쳐버린거죠.

    이제부터 0과 1은 같다 생각하고 1로 수집하는 모든 경우의 수를 배제해버리게 되죠.

    1개월에 0.5GB 정도의 용량을 확보 할 수 있다면 1년에 5기가를 확보하게 되는것입니다.

    10년이면 50기가가 되는거죠.

    MYSQL 테이블 데이터베이스 용량 줄이기

    1. 필요없는 INDEX를 삭제한다.

    인덱스 삭제는 신중해야합니다. DB속도를 좌지우지 하기 때문이죠.

    속도에 큰 문제가 없다 생각되면 삭제 하셔도 됩니다. 이때에는 ROW갯수가 100만개가 안 넘을 때 가능하죠.

    ROW갯수가 100만개가 넘어간다면 INDEX 설정은 어찌보면 필수일수 있습니다.

    테이블 갯수를 더 쪼개고 인덱스를 지우는 방법도 한번 생각해보세요.

    2. 필요없는 ROW를 삭제한다.

    저는 이미 인덱스는 삭제한 상태이며 이제는 ROW 갯수를 줄여가는 중입니다.

    지금은 1을 수집하지 않고 있지만 앞으로는 10이하를 수집 하지 않을 수도 있습니다.

    그렇게 되면 용량이 더 많이 확보되겠죠.

    10이하를 삭제할 경우 만약2GB용량이 200MB 정도의 용량이 된다면 과감하게 삭제 할 지도 모르겠습니다.

    한번 10이하를 몽땅 삭제 해보아야겠네요.

    Query OK, 22289399 rows affected (15 min 9.646 sec)

    개인서버구축

    1을 삭제 했더니 22,289,399개의 ROW가 삭제되었네요.

    총 갯수가 7천만개 정도 였으니… 대략 30%가 삭제된듯 합니다.

    1,2,3,4,5 총 5개의 항목이니 5이하를 삭제할 경우 대략 처음대비 70%정도의 용량이 늘어날 것으로 예상됨니다.

    명령어 입력을 잘 못하여 counter < 5 이렇게 넣었네요.

    이미 1항목이 삭제된 상태였고 5미만 처리 해서 5가 포함되지 않아 2,3,4 이렇게 3항목이 추가로 삭제 되었습니다.

    Query OK, 16883723 rows affected (10 min 33.614 sec)

    16,883,723건의 ROW가 삭제되었습니다.

    개인서버구축
    개인서버구축

    이번에는 아예 10 이하로 지정했습니다.

    1,2,3,4까지 삭제된 상태가 31,608,565개라면 10 이하를 삭제 할 경우 5,6,7,8,9,10 이렇게 총 6개 항목의 ROW가 삭제됩니다.

    Query OK, 9852316 rows affected (6 min 51.217 sec)

    생각한 수치만큼 많이 삭제되지는 않았네요.

    9,852,316건의 ROW가 삭제되었습니다.

    만약 ROW를 삭제 할 수 없는 상태라면 이렇게 고민을 해보시기 바랍니다.

    MAX 수치 또는 MIN 수치 값이 분명 존재할겁니다.

    혹은 가장 많은 수치를 반복적으로 수집되는 ROW가 많이 있다면 그 ROW만 제거하는 겁니다.

    그리고 제거된 날짜, INDEX 마다 체크하여 그 값이 존재한다고 가정하고 결과물을 만들어내는거죠.

    그 하나의 통일된 ROW만 제거 되더라도 용량 확보가 엄청 많이 됩니다.

  • AWS Route 53 도메인 이전 KSDOM(iTEASY) 가져오기

    AWS Route 53 도메인 이전 KSDOM(iTEASY) 가져오기

    개인서버구축

    AWS Route 53 쪽으로 도메인을 모으고 있습니다.

    개인서버구축

    이유는 간단합니다.

    관리가 편하거든요.

    사실 ITEASY (구. KSDOM) 업체를 이용했던 이유는 한가지였습니다.

    한국 도메인 (co.kr 과 kr)이 저렴하다는 정도였고 부가적인 요소를 굳이 찾으라 한다면 웹 DNS 를 도메인별로 50개 정도 제공한다는 점이 매력적이었죠. 사실 도메인마다 50개 다 채우려면 제 메인 tion.kr , tion.co.kr 이런 도메인들 아니고서는 힘들죠.

    개인서버구축

    관리 차원에서 tion.kr 도메인은 50개를 넘어서 tion.co.kr 도메인쪽에 DNS를 넘겨서 사용해야 했던 불편한 사항은 있긴했습니다.

    다른 업체 ( 후이즈, 가비아, 카페24, 닷네엠코리아, 도레지 등등 ) 왠만한 도메인 대행 업체를 사용해보았으며 가격면에서 KSDOM 만한 곳이 없었죠.

    개인서버구축

    하지만 최근에 와서 제가 위에 보여드린것처럼 AWS Route 53 쪽으로 도메인을 모으고 있습니다.

    특히 .com 도메인의 경우 13달러 (한화 대략 15000~16000원) 정도이며 여러가지 부가적인 세금이 붙으면 17000원 정도 하는데

    KSDOM과 가격차이가 거의 없더군요.

    게다가 제가 요즘 확보하는 도메인들은 글로벌화 하게 .com .net .link .click .es 등등 이러한 글로벌화에 맞춘 도메인들이라서 굳이 .co.kr 과 .kr 을 고집할 필요가 없더군요.

    개인서버구축

    그래서 만기 돌아오는 co.kr 도메인과 .kr 도메인은 필요하지 않다 싶으면 그냥 낙장으로 버리고 있고요.

    사용중인 도메인은 그냥 ksdom에 놔두고 사용중입니다.

    대신 .com 도메인과 .net 도메인들은 AWS Route 53 쪽으로 기관 이전을 신청하여 하나씩 옮기고 있습니다.

    옮기면서 더 좋아진 점이라면….음…. 자동결제? ㅎㅎ

    한국에도 자동결제 되는 업체가 있겠지만 그리고 10년 장기 결제 해놓으면 딱히 이런 부분들을 생각하지 않겠지만…

    1년단위로 결제를 해야하는 도메인도 사실 있습니다. 그리고 매해 결제를 늦지 않고 해야하죠.

    그런 도메인들이 자동으로 결제가 된다면 굿데디나 이런 서비스를 사용해도 괜찮죠.

    암튼… AWS Route 53 에 도메인을 올려놓으면 제가 편하고 좋습니다.

    DNS 서버도 아마존에서 EC2 인스턴스로 2개 운영하고 있으니 그냥 도메인관련해서는 아마존에게 다 맡긴 샘이죠.

    제 개인적으로 운영중이던 munhoyoung.com 도메인이 만료일이 다 되어서 낙장 대기 명단에 올라와있더군요.

    이를 KSDOM 업체에서 AWS Route 53 쪽으로 기관 이전을 진행합니다.

    개인서버구축

    위에 보시면 [ 기존 도메인을 이전 ] 합니다 라고 적혀있거든요. 이부분을 클릭하면 됩니다.

    개인서버구축

    확인 버튼을 클릭하면 이전이 가능한지 여부를 확인하고 바로 장바구니 넣어서 진행할 수 있습니다.

    개인서버구축

    이까지 딱히 어려운 부분은 없습니다.

    개인서버구축

    1. 권한 부여 코드 및 이름 서버

    이 부분은 영어가 아닌 한글로 번역되다보니 재미있는 단어가 나온거 같습니다.

    인증코드랑 네임서버 이렇게 두가지를 입력해야합니다.

    개인서버구축

    인증코드는 KSDOM 업체로 요청하면 도메인에 등록된 메일로 코드가 발급됩니다.

    개인서버구축

    이 코드를 아마존 Route 53 인증코드 항목에 입력하면 되고요.

    네임서버 항목에 뭘 넣으셔야 할지 모르는 분들이 상당히 많이 있습니다.

    일단은 이전하실때에는 이전전에 등록된 NameServer 리스트 그대로 유지하시는게 좋습니다.

    개인서버구축

    저처럼 네임서버를 따로 운영하고 관리를 해야한다면 새로 등록하면 되지만 ….

    저는 이전하기 이전에 KSDOM 업체에서 이미 네임서버를 변경한 상태입니다.

    개인서버구축

    개인정보관련해서 입력하시면 됩니다.

    저는 도메인을 이미 많이 등록한 상태라서 기존 등록된 기본 주소랑 정보가 입력되었네요.

    개인서버구축

    이 부분은 제가 중요하게 여기는 부분입니다. ㅎ

    도메인을 자동 갱신하시겠습니까? Yes!!

    이렇게 해서 신청했습니다.

    카드랑 세팅을 해야하지만 저는 이미 EC2 인스턴스랑 지불되는 항목들이 많다보니 도메인은 자동으로 결제되네요.

    개인서버구축

    6일 이내에 제 메일로 확인 메일이 한통 오게됩니다.

    KSDOM측에서 마지막 통보 확인 메일을 보내는거죠.

    여전히 이전 권한을 부여해야 합니다.
    이메일 주소를 변경했는지 여부에 따라 한 개 또는 세 개의 이메일을 보냅니다.
    
    중요
    6일 이내에 각 이메일의 링크를 클릭해야 합니다. 그렇지 않으면 이전이 취소됩니다.
    이전 권한 부여: AWS에서는 항상 현재 등록 연락처의 이메일 주소로 이메일을 보냅니다.
    이메일 주소에 대한 변경 권한 부여: 등록 연락처의 이메일 주소를 변경한 경우 일부 TLD 등록 레지스트리에는 사용자의 권한 부여가 필요합니다.
    이메일 한 통이 이전 이메일 주소로 전송됩니다.
    다른 이메일 한 통이 새 주소로 전송됩니다.
    변경 권한을 부여하려면 두 이메일에서 모두 링크를 클릭해야 합니다.
    다음 단계
    이전 권한 및 필요한 경우 이메일 주소 변경 권한을 부여한 후 도메인 이전이 시작됩니다. 이 작업에는 최대 11일이 소요될 수 있습니다. 이 기간 중 대부분은 현재 등록자가 이전을 승인하기를 기다리는 것입니다.
    
    다음은 귀하가 이전을 요청한 1개 도메인입니다.
    
    munhoyoung.com

    진짜로 이전하는게 맞냐? 라고 메일이 오게됩니다.

    각 업체에 맞게끔 맞다는 항목의 버튼을 클릭하면 이후 도메인은 AWS Route 53으로 이전이 완료되게됩니다.

    이전이 되면 실제 DNS A레코드와 CNAME 레코드가 정상적으로 동작하는지부터 확인해야합니다.

    개인서버구축

    끝! 쉽죠~?

    메일 도착했네요..

    개인서버구축

    한 10분 걸렸나? 그럴겁니다.

    개인서버구축

    개인서버구축

    이제 제가 할 부분은 다 했습니다.

    기다리면 도메인이 하나 늘어나있습니다.

    금방도착했네요.

    서버랑 프로그래밍 작업을 하고 있는데 확인해보니 이전되어져있네요.

    개인서버구축

    홈페이지도 잘 뜨고 있습니다.

    개인서버구축

    멋지네요.

    저 말고요 ㅎㅎ AWS Route 53 이요~

  • 워드프레스 젯팩 사이트가속기 사용하면 안되는 이유

    워드프레스 젯팩 사이트가속기 사용하면 안되는 이유

    왠만해선 젯팩을 유용하게 사용하고 있습니다.

    또 초보자 입장에서 젯팩 플러그인은 매우 유용하죠.

    하지만 오늘 다루는 내용은 젯팩에서 제공하는 사이트 가속기 플러그인입니다.

    개인서버구축

    간단하게 설명하면..

    젯팩에서 이미지를 자신의 서버로 들고 가서 더 가볍게 만들어서 자신의 서버로 보여주는 개념입니다.

    또 정적인 파일 (JS, STYLE) 파일을 압축하거나 가볍게 만들어서 CDN처럼 만들어주는 개념입니다.

    얼핏 들어보면 매우 좋아보이죠.

    내 사이트를 조금이라도 가볍게 만들어주고 더 빠르게 만들어주니깐요.

    하지만 매우 큰 단점이 한가지가 있습니다.

    바로 내 사이트에서 동작하지 않는다는 점입니다.

    시간이 흘러흘러 먼 미래에 젯팩은 엄청나게 규모가 커져 있을겁니다.

    제 워드프레가 젯팩 플러그인을 몽땅 활용하고 또 무거운 이미지를 젯팩 서버쪽에 맡기고 있을테니깐요.

    결국 내 자산이 늘어나고 브랜딩이 확장되는 개념이 아니라 젯팩의 브랜드를 나를 통해서 높여주고 있는것이죠.

    뭐 잘되는 업체 잘되게 하는것은 괜찮습니다.

    하지만 제가 우려하는것들은 젯팩의 오류라던지 서버와의 연동으로 인해서 워드프레스 이미지가 원할하게 나오지 않을때

    바로 끄때 뒤늦게 깨닫게되죠.

    개인서버구축

    그때 플러그인을 빼는 순간 여러분들의 HTML URL주소는 갑자기 바뀌게되므로 웹사이트 SEO에도 영향을 줄 수 있습니다.

    예전에 APM 달고 캐시 달면 사이트 빨라진다는 얄팍한 속임수에 속아서 캐시 플러그인과 APM 플러그인을 자주 활용했죠.

    애드센스 수익이 떨어지는것뿐만 아니라 제가 운영하는 워드프레스가 확장이되지 않는다는것을 깨닫고

    그날 이후로 모든 캐시관련 플러그인은 삭제했습니다.

    웹사이트 SEO 최적화를 위해서는 내가 만든 기능이 아니라면 가급적이면 피하는게 좋다는걸 알게되었죠.

    개인서버구축

    캐시 플러그인 남의 손에 맡기다간 어느순간 내수익이 상대방에게 가고 있다는 사실을 잊지마세요.

    지금 이 블로그랑 제가 운영하고 있는 모든 워드프레스 블로그에서는 캐시 플러그인과 AMP 플러그인을 사용하지 않고 있습니다. 덕분에 그 날 이후로 방문자가 무럭무럭 늘어나는 워드프레스도 생겨나고 있죠. 기대가 많이 되고 있습니다.

    오늘은 조금 중요한 내용인것같아서 메모해놓았습니다.

    보시는분들 캐시 플러그인 때문에 고민하고 있다면 잘 생각하고 돌리시기 바랍니다.

  • phpMyAdmin error deprecation notice in . vendor twig twig src loader filesystemloader.php#40

    phpMyAdmin error deprecation notice in . vendor twig twig src loader filesystemloader.php#40

    phpMyAdmin Errors

    phpMyAdmin Install

    phpMyAdmin install
    #Solution Script - linux
    
    rm -rf phpMyAdmin-5.2.1-all-languages.zip
    
    mkdir /var/www/backup
    
    cd /var/www/backup
    wget https://vlog.tion.co.kr/app/phpMyAdmin/phpMyAdmin-5.2.1-all-languages.zip
    unzip phpMyAdmin-5.2.1-all-languages.zip
    rm -rf phpMyAdmin-5.2.1-all-languages.zip
    
    rm -rf /var/www/phpMyAdmin
    mv phpMyAdmin-5.2.1-all-languages/ /var/www/phpMyAdmin
    
    
    cd /var/www/phpMyAdmin
    rm -rf config.inc.php
    rm -rf config.sample.inc.php
    wget -O config.inc.php https://vlog.tion.co.kr/html/phpmyadmin/config.inc.php?isDownload=1
    ll
    
    
    

    phpMyAdmin error

    phpMyAdmin deprecation notice in . vendor twig twig src loader filesystemloader.php#40

    개인서버구축
    개인서버구축
    개인서버구축

    The solution is to reinstall phpMyAdmin 5.2.x or later.

    DOWNLOAD

    개인서버구축
    Deprecation Notice in ./vendor/twig/twig/src/Loader/FilesystemLoader.php#40
     realpath(): Passing null to parameter #1 ($path) of type string is deprecated
    
    Backtrace
    
    ./vendor/twig/twig/src/Loader/FilesystemLoader.php#40: realpath(NULL)
    ./libraries/classes/Template.php#59: Twig\Loader\FilesystemLoader->__construct(string '/var/www/phpMyAdmin//templates/')
    ./libraries/classes/Theme.php#103: PhpMyAdmin\Template->__construct()
    ./libraries/classes/Theme.php#174: PhpMyAdmin\Theme->__construct()
    ./libraries/classes/ThemeManager.php#306: PhpMyAdmin\Theme::load(
    string './themes/metro',
    string '/var/www/phpMyAdmin/./themes/metro/',
    )
    ./libraries/classes/ThemeManager.php#89: PhpMyAdmin\ThemeManager->loadThemes()
    ./libraries/classes/ThemeManager.php#129: PhpMyAdmin\ThemeManager->__construct()
    ./libraries/classes/ThemeManager.php#397: PhpMyAdmin\ThemeManager::getInstance()
    ./libraries/common.inc.php#315: PhpMyAdmin\ThemeManager::initializeTheme()
    ./index.php#23: require_once(./libraries/common.inc.php)
    Deprecation Notice in ./vendor/twig/twig/src/Node/Node.php#161
     Return type of Twig\Node\Node::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice
    
    Backtrace
    
    ./vendor/composer/ClassLoader.php#444: include(./vendor/twig/twig/src/Node/Node.php)
    ./vendor/composer/ClassLoader.php#322: Composer\Autoload\includeFile(string '/var/www/phpMyAdmin/vendor/composer/../twig/twig/src/Node/Node.php')
    Composer\Autoload\ClassLoader->loadClass(string 'Twig\\Node\\Node')
    ./vendor/twig/twig/src/TwigFilter.php#150: class_exists(string 'Twig\\Node\\Node')
    ./vendor/composer/ClassLoader.php#444: include(./vendor/twig/twig/src/TwigFilter.php)
    ./vendor/composer/ClassLoader.php#322: Composer\Autoload\includeFile(string '/var/www/phpMyAdmin/vendor/composer/../twig/twig/src/TwigFilter.php')
    ./vendor/twig/twig/src/Extension/CoreExtension.php#214: Composer\Autoload\ClassLoader->loadClass(string 'Twig\\TwigFilter')
    ./vendor/twig/twig/src/ExtensionSet.php#433: Twig\Extension\CoreExtension->getFilters()
    ./vendor/twig/twig/src/ExtensionSet.php#423: Twig\ExtensionSet->initExtension()
    ./vendor/twig/twig/src/ExtensionSet.php#397: Twig\ExtensionSet->initExtensions()
    ./vendor/twig/twig/src/Environment.php#966: Twig\ExtensionSet->getUnaryOperators()
    ./vendor/twig/twig/src/Lexer.php#459: Twig\Environment->getUnaryOperators()
    ./vendor/twig/twig/src/Lexer.php#110: Twig\Lexer->getOperatorRegex()
    ./vendor/twig/twig/src/Environment.php#539: Twig\Lexer->__construct()
    ./vendor/twig/twig/src/Environment.php#595: Twig\Environment->tokenize()
    ./vendor/twig/twig/src/Environment.php#408: Twig\Environment->compileSource()
    ./vendor/twig/twig/src/Environment.php#381: Twig\Environment->loadClass(
    string '__TwigTemplate_5e4a7429ac6200a1f609bf802387b12eb0ea958b9f1bd4f816fec01d6b87b66a',
    string 'login/header.twig',
    NULL,
    )
    ./vendor/twig/twig/src/Environment.php#359: Twig\Environment->loadTemplate(string 'login/header.twig')
    ./libraries/classes/Template.php#100: Twig\Environment->load(string 'login/header.twig')
    ./libraries/classes/Template.php#134: PhpMyAdmin\Template->load(string 'login/header')
    ./libraries/classes/Plugins/Auth/AuthenticationCookie.php#144: PhpMyAdmin\Template->render(
    string 'login/header',
    array,
    )
    ./libraries/classes/Plugins/AuthenticationPlugin.php#268: PhpMyAdmin\Plugins\Auth\AuthenticationCookie->showLoginForm()
    ./libraries/common.inc.php#365: PhpMyAdmin\Plugins\AuthenticationPlugin->authenticate()
    ./index.php#23: require_once(./libraries/common.inc.php)
    Deprecation Notice in ./vendor/twig/twig/src/Node/Node.php#166
     Return type of Twig\Node\Node::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice
    
    Backtrace
    
    ./vendor/composer/ClassLoader.php#444: include(./vendor/twig/twig/src/Node/Node.php)
    ./vendor/composer/ClassLoader.php#322: Composer\Autoload\includeFile(string '/var/www/phpMyAdmin/vendor/composer/../twig/twig/src/Node/Node.php')
    Composer\Autoload\ClassLoader->loadClass(string 'Twig\\Node\\Node')
    ./vendor/twig/twig/src/TwigFilter.php#150: class_exists(string 'Twig\\Node\\Node')
    ./vendor/composer/ClassLoader.php#444: include(./vendor/twig/twig/src/TwigFilter.php)
    ./vendor/composer/ClassLoader.php#322: Composer\Autoload\includeFile(string '/var/www/phpMyAdmin/vendor/composer/../twig/twig/src/TwigFilter.php')
    ./vendor/twig/twig/src/Extension/CoreExtension.php#214: Composer\Autoload\ClassLoader->loadClass(string 'Twig\\TwigFilter')
    ./vendor/twig/twig/src/ExtensionSet.php#433: Twig\Extension\CoreExtension->getFilters()
    ./vendor/twig/twig/src/ExtensionSet.php#423: Twig\ExtensionSet->initExtension()
    ./vendor/twig/twig/src/ExtensionSet.php#397: Twig\ExtensionSet->initExtensions()
    ./vendor/twig/twig/src/Environment.php#966: Twig\ExtensionSet->getUnaryOperators()
    ./vendor/twig/twig/src/Lexer.php#459: Twig\Environment->getUnaryOperators()
    ./vendor/twig/twig/src/Lexer.php#110: Twig\Lexer->getOperatorRegex()
    ./vendor/twig/twig/src/Environment.php#539: Twig\Lexer->__construct()
    ./vendor/twig/twig/src/Environment.php#595: Twig\Environment->tokenize()
    ./vendor/twig/twig/src/Environment.php#408: Twig\Environment->compileSource()
    ./vendor/twig/twig/src/Environment.php#381: Twig\Environment->loadClass(
    string '__TwigTemplate_5e4a7429ac6200a1f609bf802387b12eb0ea958b9f1bd4f816fec01d6b87b66a',
    string 'login/header.twig',
    NULL,
    )
    ./vendor/twig/twig/src/Environment.php#359: Twig\Environment->loadTemplate(string 'login/header.twig')
    ./libraries/classes/Template.php#100: Twig\Environment->load(string 'login/header.twig')
    ./libraries/classes/Template.php#134: PhpMyAdmin\Template->load(string 'login/header')
    ./libraries/classes/Plugins/Auth/AuthenticationCookie.php#144: PhpMyAdmin\Template->render(
    string 'login/header',
    array,
    )
    ./libraries/classes/Plugins/AuthenticationPlugin.php#268: PhpMyAdmin\Plugins\Auth\AuthenticationCookie->showLoginForm()
    ./libraries/common.inc.php#365: PhpMyAdmin\Plugins\AuthenticationPlugin->authenticate()
    ./index.php#23: require_once(./libraries/common.inc.php)

    개인서버구축
  • ESXi 7.0 자동 로그아웃 끄기

    ESXi 7.0 자동 로그아웃 끄기

    ESXi 7 사용중일때 자동으로 로그아웃 되버리면 VM 업로드 도중에 끊기거나 처음부터 다시 해야하는 경우가 생깁니다.

    이때 이 기능을 끌수 있는데 이부분에 대해서 정리합니다.

    개인서버구축

    매번 이렇게 종료되어 도메인 호스팅이 없을 시에는 아이디와 암호를 매번 입력해야합니다. 불편하죠

    ESXi 8, 7, 6 자동 로그아웃 해제

    개인서버구축

    관리 > 시스템 > 고급설정 > UserVars.HostClientSessionTimeout 값을 0 으로 변경

    UserVars.HostClientSessionTimeout = 0
    개인서버구축

    이제 로그아웃이 안됩니다.