• [Solved] Your page is not mobile friendly google

    [Solved] Your page is not mobile friendly google

    워드프레스

    워드프레스

     

    [ English ] 

    I solved this problem very easily.

    Others told me to modify the CSS, but in my case, I fixed the AMP setting.

    Follow the method below to modify the AMP setting.

    And check the final result on the Google Mobile Optimization Test page.

     

    [ 한국어 ]

    저는 이번 문제를 매우 쉽게 해결했습니다.

    다른 분들은 CSS 수정하라고 하였지만 제 경우에는 AMP의 세팅을 수정해서 해결했습니다.

    아래 방법을 따라 AMP 세팅을 수정하세요.

    그리고 구글 모바일 최적화 테스트 페이지에서 최종 결과를 확인하세요.

     

    모바일 친화적이지 않다 라는 문구가 나오지 않도록 해결방법

    1. AMP 세팅을 위자드를 통해 ( 수동으로 해도 됩니다) 쉽게 단계별로 진행합니다.

    워드프레스

    워드프레스

    워드프레스

     

     

    2. 구글 모바일 친화적 테스트를 통해 결과를 확인합니다.

    워드프레스

    아래 주소를 클릭하면 구글 모바일 테스트 페이지로 확인 할 수 있습니다.

    https://search.google.com/test/mobile-friendly?source=mrvirk.com

     

    워드프레스

     

     

    If you follow the instructions above, but can’t solve it,

    It is resolved by adding a WordPress default theme and applying AMP settings as the default theme.

     

    만약 위의 방법대로 하였지만 모바일 친화 테스트에 통화하지 못한다면

    AMP 세팅 할때 워드프레스 기본 테마를 추가하셔서 AMP 세팅을 기본 Twenty Twenty-One 테마로 지정하면 해결됩니다.

     

    워드프레스

     

    모바일 친화적 워드프레스를 만들어서 구글 검색에 유리한 포지션을 잡으시기 바랍니다.

    감사합니다.

    Thank You 🙂

     

     

    방금 작성한 이 글도 모바일 친화적으로 잘 뜨고 있군요^^

    워드프레스

  • 아마존 EC2 메모리 부족 아파치 자동 재실행 파이썬 스크립트

    아마존 EC2 메모리 부족 아파치 자동 재실행 파이썬 스크립트

    워드프레스

    아마존 EC2 운영중 특정 패턴에 대해서 메모리 부족 현상이 자주 발생합니다.

    그 부분을 해결하기 위해 성능향상쪽으로 투자하였습니다.

    하지만 시간만 늘어났을뿐 근본적으로 해결이 되지 않아 파이썬3를 이용하여 자동 실행 스크립트를 만들어보았습니다.

    워드프레스

    메모리 사용량이 90%에 도달할 경우 자동으로 아파치 서버를 재실행 해주므로써 전체 메모리를 해제시키는 방법입니다.

    메모리가 100%에 도달하여 스왑파일까지 넘어갈경우 그때부터는 SSH 접속부터 어렵고 시스템이 무척 느려지기때문에 메모리가 90~95% 도달지점에

    아파치 서버를 재실행하는것이 더 효율적으로 보여 데몬으로 5분단위로 메모리를 체크하는 스크립트입니다.

     

    워드프레스

    파이썬3가 설치되어져 있으신분들은 아래 명령어를 그대로 복사하여 사용하면됩니다.

     

    #pip 설치
    
    curl https://vlog.tion.co.kr/python/get-pip.py -o get-pip.py 
    
    python3 get-pip.py
    
    
    #pip install psutil 모듈 추가
    
    pip install psutil
    
    #pip list 확인
    
    pip list
    
    
    
    #메모리 체크 스크립트 (각자 상황에 맞춰 limit 부분을 조절합니다. 저는 90%로 맞추었습니다)
    
    mkdir /root/_PYTHON3
    
    vi /root/_PYTHON3/memcheck_httpd_restart.py
    
    import psutil
    import os
    
    mem = psutil.virtual_memory().percent
    limit = 90
    
    print("MEMORY percent is %d%%" % mem)
    print("MEMORY limit is over %d%%" % limit)
    
    if mem > limit:
         os.system("service httpd restart")
    
    
    
    #ESC -> :wq 눌러 저장하고 에디터에서 빠져나옵니다.
    #IndentationError: expected an indented block 에러가 나오면 if문 안쪽 들여쓰기가 안될경우입니다
    
    
    #파이썬 스크립트 동작 확인
    
    python3 /root/_PYTHON3/memcheck_httpd_restart.py
    
    
    
    #크론탭 5분마다 실행 등록
    
    crontab -e
    */5 * * * * python3 /root/_PYTHON3/memcheck_httpd_restart.py

     

     

     

    이 스크립트를 5분마다 실행하여 메모리를 확인하게되면

    메모리가 90%에 도달했을때 아파치 서버를 재실행하게됩니다.

    만약 5분안에 이미 메모리가 100%에 도달하여 시스템 동작이 버벅일경우 재실행이 안될수 있으므로

    각자 상황에 맞춰서 limit % 제한을 조절하셔야합니다.

    데몬은 너무 빠른 시간보다 적당하게 3분~10분정도 조절하면 됩니다.

    워드프레스

     

    성능에도 어느정도 투자를 하여야하지만 지금은 하루 1만명정도 이상도 수용이 가능하기때문에 메모리 조절만 잘하면 버틸수 있어보입니다.

    운영해보고 더 좋은 스크립트가 만들어지면 또 공유해드리겠습니다

    파이썬을 몰라도 그냥 그대로 복사 붙여넣기 하면 사용가능할정도로 쉬운 구문이니 복사 붙여넣기 해서 돌려보세요.

  • 홈페이지 웹 사이트 해킹 방지 서버 로봇 404 보내기

    홈페이지 웹 사이트 해킹 방지 서버 로봇 404 보내기

    지난번 서버 해킹으로 인해서 검색 노출에서 제외된적이 있습니다.

    검색 제외는 그렇다 하더라도 중요한 정보가 외부로 빠져나갈경우 치명적이죠.

    다행히도 빠져나갈만한 정보는 없어 다행이었지만…

    그 후 모든 관리 서버를 AWS 이전하였습니다.

    워드프레스

    방화벽과 해킹방어를 위해 보안에 신경을 썼지만 그전에 깔린 백도어 하나가 3월 17일 실행되는것을 확인하였습니다.

    그리고 구글 웹마스터도구 로봇들이 정신없이 서버를 크롤링하도록 가짜 사이트맵을 제작하여 배포한것까지 확인되었습니다.

    워드프레스

    그로인해 수맣은 구글 로봇이 엄청 빠른 속도로 접속하더군요.

    몇일전부터 이 워드프레스에 로봇이 많이 와서 메모리 부족현상과 서버 다운현상이 하루에 1번정도 나타나더군요.

    원인을 찾다 찾다 겨우 로그를 살펴보면서 찾았습니다.

     

    그리고 모든 페이지를 301 다이렉트로 돌렸지만..

    가만히 생각해보니 어차피 없는 페이지고 로봇들이기때문에 404페이지로 되돌렸습니다.

    워드프레스

    어파치 이 서버는 메인페이지 index.html 파일만 보여주면 되는 곳이기에 메인을 제외한 모든 페이지 접근에 대해서 404 페이지가 되도록 하였습니다.

    php 코드는 이렇습니다.

     

    <?php
    if($_SERVER['REQUEST_URI'] == "/")
    {
    
    }
    else
    {
    header("HTTP/1.0 404 Not Found");
    exit;
    }
    ?>
    
    

    실제로 접속해야하는 페이지가 존재한다면 그 페이지는 정상접속이 되도록 해야하니다.

    나머지는 404페이지가 뜨도록 헤더값을 변경하였습니다.

     

    결국 로봇 접근이 느려지기 시작하였고 2~3일이 지난 지금은 서버가 정상적으로 다운없이 잘 운영되고 있습니다.

     

    워드프레스

    404페이지를 띄우니 구글에서도 없는 페이지로 인정해주더군요.

     

    사이트맵도 다시 등록하였습니다.

    워드프레스

  • AWS c5.large 성능 t3.medium 차이 비교

    AWS c5.large 성능 t3.medium 차이 비교

    워드프레스

    성능차이가 이미 월등히? 차이나기때문에 비교 자체가 말이 안된다는것을 알고 있습니다.

    하지만 제가 이 두모델 t3.medium 과 c5.large 모델을 두고 비교하는 이유는..

    t3미디엄 모델을 사용했을때 워드프레스 사용자 급증으로 서버가 몇번 다운되었기 때문입니다.

     

    워드프레스

    기존에 사용하던 t3 미디엄 서버는 vCPU가 2개입니다. 그리고 ECU가 변수로 되어져있죠.

    ECU가 변수인 이유는 CPU 크레딧을 모아놓았다가 사람들이 몰릴때 성능 최고치를 올린다 뭐 그런뜻으로 해석하면됩니다.

    미디엄 서버 자체의 성능이 c5라지 보다 못한것도 있지만..

    이 가변수에 따른 성능 차이보다는 실제로 워드프레스를 다수 운영하는 제 입장에서 체감상 속도를 말씀드리겠습니다.

     

    우선 c5 라지를 사용하면서 vCPU라던지 메모리는 그대로입니다.

    하지만 월 단위 금액은 대략 2배정도 높아졌죠.

    워드프레스

    어려운 개념인 크레딧이고 ECU고 뭐고 다 필요없습니다.

    그냥 동시접속자가 몇명이든 관계없이 일단 다운이 안된다는 점입니다.

    워드프레스

    서버 다운을 떠나서 메모리 사용량이 1기가 아래를 꾸준히 유지하면서 동시 접속자가 점점 늘어나더라도 모두 CPU 처리속도로 해결이 되는지…

    메모리가 많이 늘어나지 않는다는점이 매우 만족스러웠습니다.

    보통 cpu 연산속도가 느려서 메모리 점령시간이 오래걸리고 그렇게 누적되다보니

    동시접속자가 100명가까이 되버리면 메모리 부족으로 SWAP 메모리를 사용하는것을 보았습니다.

    워드프레스

    하지만 지금은 100까지 확인은 하지 않았지만 동시접속자가 어느정도 존재하지만 서버 자원은 거의 그대로라는것이죠.

    워드프레스를 다수 운영하다보니 두루두루 퍼져있기는 하지만

    하나의 서버에서 동작하기때문에 결국 동접수가 중요합니다.

    워드프레스

    linux top 명령어로 확인을 해보아도 httpd 프로세서가 금방금방 생겼다가 연산속도 차이인지 몰라도 바로바로 사라지는것을 확인하였습니다.

    워드프레스

    동시접속자가 지금 시간에 대략 30명정도 임에도 불구하고 서버는 안정적으로 돌아가기때문에…

    애드센스는 더 올라갈것으로 예상되며 4만원정도의 월 비용처리는 애드센스가 막아줄것으로 예상됩니다.

     

    결국 서버 증설로 인해서 저는 더 유리한 검색이 될것으로 보입니다.

  • ssl 인증서 만들기 발급기관 GoGetSSL Domain SSL

    ssl 인증서 만들기 발급기관 GoGetSSL Domain SSL

    ssl 인증서 만들기

    발급기관  GoGetSSL Domain SSL

     

    1. ssl 기간을 선택하고 1년~5년 상품을 구입합니다.

    워드프레스

    워드프레스

    Gogetssl 사이트로 접속합니다.

    https://my.gogetssl.com/en/user

    로그인하여 My Prices 항목에 들어가서 [ Order ] 버튼으로 주문을 합니다.

    저는 주로 페이팔 계정으로 카드결제가 바로 되도록 해놓았으며 5년결제 상품을 구입하였습니다.

    워드프레스

    워드프레스

    워드프레스

    워드프레스

    나중에 기회가 된다면 페이팔 결제 하는 방법이라던지 세팅하는법에 대해서 글을 다루어 보겠습니다.

     

    2. 리눅스 서버에 아래 명령어를 입력하여 기본 정보를 입력합니다.

    워드프레스

    기존에 사용하던 ssl 인증이 3일후에 만료가되는 워드프레스 블로그가 5개정도 있더군요.

    글을 작성하지 않고 그냥 매크로 이용해서 쭉~ 다이렉트로 진행하면 대략 30초~1분정도 소요됩니다. 1개의 SSL 인증서 만들기까지 대략 1분정도 잡으면됩니다.

     

    blogsms.net 이라는 도메인을 예를들어서 진행한다면 아래처럼 입력합니다.

    여러분들은 여러분들 각자 도메인이름으로 수정해야합니다.

     

    rm -rf /etc/ssl/certs/blogsms.net
    mkdir /etc/ssl/certs/blogsms.net
    cd /etc/ssl/certs/blogsms.net;
    
    openssl req -new -newkey rsa:2048 -nodes -keyout blogsms.net.key -out blogsms.net.csr;

     

    사실 위의 rm -rf로 기존 폴더를 지우고 새로 mkdir로 폴더를 만드는 이유는?

    제가 운영하는 워드프레스가 워낙 많다보니…

    일괄적으로 2년단위로 지속적으로 계속 ssl을 유지하기 위해 반복작업을 해야합니다.

    워드프레스

    그렇다보니 정형화된 방식으로 매크로를 제작하여 빠르게 이를 반복진행되게 만들다보니

    위의 명령어가 최적화상태로 나왔습니다.

    따라하셔도 되며.. 처음하시는 분들은 rm -rf 부분은 빼셔도 됩니다.

     

    openssl req … 명령어를 입력하고 나면 아래와 같은 항목들이 나옵니다.

    저는 매크로 처리를 해놓아서 그냥 Ctrl + insert 버튼만 누르면 자동으로 진행됩니다.

    워드프레스

     

    Country Name (2 letter code) [XX]:KR
    State or Province Name (full name) []:Dalseo-gu
    Locality Name (eg, city) [Default City]:Daegu
    Organization Name (eg, company) [Default Company Ltd]:TION Ltd
    Organizational Unit Name (eg, section) []:CEO
    Common Name (eg, your name or your server's hostname) []:blogsms.net
    Email Address []:a@tion.kr
    
    Please enter the following 'extra' attributes
    to be sent with your certificate request
    A challenge password []: (공백)
    An optional company name []: (공백)
    
    

    3. 만들어진 SCR 파일의 내용을 복사하여 구입한 SSL 상품 CSR code에 입력합니다.

    워드프레스

    저와 명령어를 똑같이 입력하셨다면 이미 폴더까지 cd 명령어로 들어온 상태일겁니다.

     

    vi blogsms.net.csr

     

    이렇게 입력하면 에디터를 통해 위의 SCR Code를 확인할 수 있습니다.

    아래 SCR Code 항목 전체를 복사합니다.

    이때 주의해야할점은!!

    —–BEGIN CERTIFICATE REQUEST—– 항목부터

    —–END CERTIFICATE REQUEST—– 항목까지 몽땅 복사해야한다는 점입니다.

    워드프레스

    View 버튼을 클릭하면 [ 제널레이터 인증서 ] 버튼이 나타납니다.

    워드프레스

    워드프레스

    전체를 복사해서 구입한 상품의 CSR 코드항목에  붙여넣기하면 됩니다. 여기까지는 쉽습니다.

    워드프레스

    저는 이미 HTTPS인 상태에서 새로 갱신을 하는 입장이라 HTTPS를 선택하였지만

    새로 SSL 인증서를 발급받고 있는분들은 HTTP를 선택하여야 합니다.

    워드프레스

    다음 항목에서 리눅스에서 입력했던 기본정보를 다시한번 또 입력해야합니다.

    이부분에서 대한민국 찾기가 생각보다 시간이 많이 걸립니다.

    빠른분들은 10초? 느린분들은 Korea 찾다가 위아래로 왔다갔다리 할겁니다.

    저는 이부분을 매크로로 이미 만들어놓아서 그냥 쉽게 3초만에 해결됩니다.

    워드프레스

    움짤로 만들어놓았으니 각자 개인정보를 입력하면됩니다.

    매크로를 이용해서 만드실분들은 116번째에 republic of korea가 있으니 참고해서 만드세요.

     

    4. 도메인 소유에 대해 인증을 합니다.

    워드프레스

    워드프레스

    도메인 소유 인증방법은 다양합니다.

    도메인을 이용하여 DNS 인증하는법도 있지만 제 경우에는

     HTTP접속방식으로 TXT파일을 업로드하고 그 파일이 소유한 도메인으로 접근이 가능하면 인증되는 방법을 선택하였습니다.

    우선 폴더를 만들어서 그곳에 아래 이미지를 보고 TXT파일을 다운받아 업로드합니다.

     

    rm -rf 자신의홈페이지ROOT폴더/.well-known/pki-validation;
    mkdir 자신의홈페이지ROOT폴더/.well-known;
    mkdir 자신의홈페이지ROOT폴더/.well-known/pki-validation;
    cd 자신의홈페이지ROOT폴더/.well-known/pki-validation;

     

    워드프레스

    파일을 업로드하고 [ Revalidate ] 버튼을 클릭하면 아래처럼 3분동안 홈페이지에서 확인을 합니다.

    워드프레스

    워드프레스

    파일이 정상적으로 등록되어 위처럼 나타난다면 도메인 소유가 확인되어 인증이 곧 완료됩니다.

    워드프레스

    완료가 되어 Status 항목에 [ Active ] 라고 나오면 View를 클릭하여 마지막 단계를 진행합니다.

     

    5. 발급받은 인증서를 다운받아 서버에 설치합니다.

    워드프레스

    매우 중요한 부분이기도 합니다.

    Certificate 버튼을 클릭하고 Intermediate CA 버튼을 클릭하여 각각 파일을 다운받습니다.

    워드프레스

    워드프레스

    각자 자신만의 위에서 입력한 웹주소를 입력하였다면 아래처럼 처음에 만든 ssl/certs 폴더로 이동합니다.

     

    cd /etc/ssl/certs/blogsms.net;

     

    다운받은 두개의 파일을 그대로 위의 폴더에 업로드합니다.

    워드프레스

    제가 알려드린방법대로 그대로 따라하셨다면 위의 4개의 파일을 모두 확인할 수 있습니다.

    blogsms_net.ca
    blogsms_net.crt
    blogsms.net.csr
    blogsms.net.key

     

    파일을 업로드 하였다면 httpd.conf vhost 항목에 아래의 4개의 라인을 추가하여야 합니다.

    워드프레스

     

    vi /etc/httpd/conf/httpd.conf
    
    SSLEngine ON
    SSLCertificateKeyFile /etc/ssl/certs/blogsms.net/blogsms.net.key
    SSLCertificateFile /etc/ssl/certs/blogsms.net/blogsms_net.crt
    SSLCACertificateFile /etc/ssl/certs/blogsms.net/blogsms_net.ca

     

    이때 주의할점은! 꼭 운영중인 도메인의 VHOST 항목안에 넣어야합니다.

     

    워드프레스

     

    service httpd restart

     

    이제 아파치서버를 재구동하면 SSL 인증기간이 1년, 2년 연장되어있습니다.

    이때 에러가 나타나는 분들이 계신다면 대부분 파일이 없거나 파일주소를 잘못입력했거나

    파일이름을 그대로 복사하지 않고 직접 타이핑해서 오탈자가 생겼을때일겁니다.

    혹은 처음 ssl을 신청했다면 mod_ssl.so 파일이 없는 경우인데 얼른 아래 명령어로 설치하세요.

     

    yum install mod_ssl -y

     

    워드프레스

    총 5년짜리를 구입했으니 1년 2년 후에 다시 남은 기간을 또 재갱신 하여 사용하면 됩니다.

     

    [자동스크롤]150,500[/자동스크롤]

  • wordpress smooth scroll without plugin

    wordpress smooth scroll without plugin

    워드프레스

     

    우선 Snippets 플러그인은 설치가 되어져있어야합니다.

    워드프레스

    워드프레스

     

    이 방법은 워드프레스 스크롤 플러그인 없이 스크롤을 부드럽게 특정 위치까지 내리는 방법입니다.

     

    아래 이미지는 소스코드를 그대로 스샷한것이며 실제 소스코드는 이미지 아랫부분에 있으니 복사 붙여넣기 해서 사용하면됩니다.

    워드프레스

     

    이 플러그인은 php와 html, css, javascript 등을 어느 페이지에서든 동작하도록 할 수 있습니다.

     

    아래의 소스 코드를 입력하면 지금 보는 이 화면처럼 동작합니다.

     

    add_shortcode( '자동스크롤', function ($attr, $value) {
    
    $height = 0;
    $millisecond = 0;
    
    if (strpos($value, ',') !== false)
    {
    $arrayHeightMillisecond = explode(',', $value);
    $height = $arrayHeightMillisecond[0];
    $millisecond = $arrayHeightMillisecond[1];
    }
    
    $out = '<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
    <script>
    
    $(document).ready(function(){
    $("html, body").animate({ scrollTop: '.$height.' }, '.$millisecond.');
    });
    </script> 
    ';
    
    return $out;
    } );

     

    사용방법

    글, 포스트 페이지 상단 또는 하단부분에 아래처럼 입력합니다

    앞의 500숫자는 height 높이이며 두번째 500숫자는 애니메이션 시간입니다.

    argument 1: height

    argument 2: millisecond

    ex) 500, 500 => 500px, 0.5 sec

    워드프레스

     

    [자동스크롤]150,500[/자동스크롤]

     

  • How to sendemail from WordPress in AWS EC2 SES

    How to sendemail from WordPress in AWS EC2 SES

    AWS EC2 SES 이용하여 워드프레스에서 sendmail 보내는 방법

     

    1. 메일 플러그인을 다운바고 설치합니다.

    [ WP Offload SES Lite ] 검색하여 워드프레스 플러그인을 설치합니다.

    워드프레스

    아마존 SES를 지원하는 메일 플러그인이라면 되지만 대부분은 유료버전에서 제공합니다.

    하지만 이 플러그인은 자체 아마존SES를 위해 만들어졌기에 기본적인 API만 세팅하면 이메일 전송이 가능해집니다.

     

    2.  플러그인을 활성하하고 세팅을 클릭하여 AWS SES 정보를입력합니다.

    워드프레스워드프레스워드프레스

    Get Started 버튼을 클릭하면 AMI 유저를 만드는 방법에 대한 설명이 나타납니다.

    *Create an IAM User

    First you’ll need to create an IAM user to get the access keys you need to use WP Offload SES. If you already have your AWS access keys and are confident you’ve set them up with the correct permissions, you can skip this step.

    1. Login to the AWS console and navigate to the IAM Users page.
    2. Click the Add user button.
    3. Enter a name for the user in the User name field.
    4. Under Select AWS access type select the checkbox for Programmatic access.
    5. Click the Next: Permissions button.
    6. Click Attach existing policies directly in the Set Permissions section.
    7. Type AmazonSESFullAccess in the search bar and check the box to add the permission.
    8. Click the Next: Tags button at the bottom of the page.
    9. Click the Next: Review button at the bottom of the page.
    10. Click the Create user button.

    You will be shown the security credentials for the user, which consists of an Access Key ID and a Secret Access Key. Amazon will not show these again so copy them somewhere safe, or download them as a .csv file. If you lose them, you can always create a new set of keys from the console but you cannot retrieve the secret key again later.

    워드프레스워드프레스

    운영중인 AWS EC2의 리전위치를 선택하고 다음을 눌러서 3/6단계로 넘어갑니다.

     

    이 페이지에서 엑세스 키 ID와 비밀 엑세스 키가 필요합니다.

    엑세스 키는 위의 *Create an IAM User 항목을 보고 따라만들면 아래처럼 사용자추가 완료부분에 엑세스키와 비밀키 발급이 됩니다.

    https://ap-northeast-2.console.aws.amazon.com/sesv2/home?region=ap-northeast-2#/account

    1단계 설정이 매우 중요하며 2,3,4 단계는 그냥 다음,다음,다음 버튼 눌러서 5항목까지 진행하면 키가 나옵니다.

    워드프레스

    워드프레스

    SES 엑세스키와 비밀키를 입력하였다면 다음페이지에서 Verify Domain(recommended) 항목과 Verify Email Address 항목을 보게됩니다.

    추천은 전자이지만 저는 후자를 선택하여 이메일 인증방식으로 진행을 하였습니다.

    워드프레스

    실제 이전 워드프레스 관리자에서는 도메인으로 진행하였고 도메인 TXT 레코드 3개를 입력하여 진행하였기에

    편의상 두번째부터는 이메일 인증으로 쉽게 적용시키는것입니다.

    워드프레스

     

    Step 5 of 6 페이지에서는 이메일 인증을 위해 확인 메일을 a@tion.kr 도메인으로 발송했다고 나옵니다.

    워드프레스

    운영중인 이메일 서버로 들어가서 이메일을 확인하면 기본 세팅은 완료됩니다.

     

    3. 워드프레스에서 발송되는 이메일 정보를 입력합니다.

    워드프레스

    WordPress Notification 항목은 메일이 발송되면 발송되는 주소입니다.

    WordPress Notification Name 항목은 메일이 발송될때 보여지는 이름입니다.

    Return Path 항목은 메일에 대해 컴플레인이 발생했을때 AWS SES서비스측에서 관련 정보를 발송하는 이메일 주소입니다.

    모두 작성되었다면 Save and Complet Setup 버튼을 눌러 마무리합니다.

     

    만약 저처럼 이메일 인증방식으로 진행하셨다면 아마존 SES 항목에 인증되어진 이메일 주소가 이미 있어야합니다.

    워드프레스워드프레스

    모든 항목이 완료되었다면 테스트 메일을 발송해보세요!

    그럼 완료된것입니다.

    워드프레스워드프레스

    AWS EC2 인스턴스에 설치되어진 워드프레스에서 드디어 메일이 발송되었습니다.

    축하합니다!!

    워드프레스

    메일 주소에 [ 나에게 ] 라고 적힌 이유는 제가 도메인 기반이 아닌 제 이메일주소를 입력하였기에 그렇습니다.

    도메인 기반으로 등록하게되면 도메인의 서브도메인 3개를 TXT 등록하면됩니다.

    그리 어렵지 않지만 저처럼 워드프레스 홈페이지가 수십개 이상되면 번거럽고 도메인 별로 모두 세팅해야해서 저는 간단하게 이메일 인증해놓고

    그 이메일로 일괄 메일 발송하도록 만든것입니다.

     

  • AWS에서 워드프레스 메일 발송 안될때 25포트 제한 없애는 법

    AWS에서 워드프레스 메일 발송 안될때 25포트 제한 없애는 법

    이 방법은 아마존에서 올바른 방법은 아니며 SMTP 사용할 수 있도록 25포트 제한을 해제시키는 방법입니다.

    아마존 서버를 운영하면 워드프레스 메일발송이 안되는것을 뒤늦게 알게됩니다.

    아래처럼 도메인 DNS를 A 레코드를 추가하여 smtp.자신의 도메인명 으로 rDNS를 등록하고 아마존 서비스센터로 25포트 제한을 풀어달라고 요청해야합니다.

    ※ 이 방법을 선택하게되면 스팸정책에 대해 자신이 모든것을 책임져야하며, 실수 또는 고의로 인해 스팸 메일을 발송할 경우 아마존으로부터 다시 제한 받을수 있습니다.

    또한 도메인의 레코드타입을 PTR로 지정하여 rDNS을 등록해서 EC2의 탄력적IP와 연결을 해야하는데…

    도메인 업체에서 PTR타입을 제공하지 않는 경우가 있어 권장하지는 않지만 방법이 존재하여 설명글은 작성해놓습니다.

    아마존에서 알려주는 정확한 방법은 아래 URL을 참조하면됩니다.

    https://aws.amazon.com/ko/premiumsupport/knowledge-center/ec2-port-25-throttle/

    워드프레스

    내 Amazon EC2 인스턴스 또는 AWS Lambda 함수에서 포트 25에 대한 제한을 없애려면 어떻게 해야 합니까?
    
    

    최종 업데이트 날짜: 2020년 12월 21일

    Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스 또는 AWS Lambda 함수에서 포트 25를 통해 이메일을 보내는 데 문제가 있습니다.

    해결 방법
    AWS는 기본적으로 모든 EC2 인스턴스 및 Lambda 함수의 포트 25(SMTP) 에서 아웃바운드 트래픽을 차단합니다. 포트 25에서 아웃바운드 트래픽을 전송하려는 경우 이 제한을 제거하도록 요청할 수 있습니다.
    
    Lambda 함수에 대한 포트 25 제한을 제거하려면 함수를 Amazon VPC와 연결합니다. 그런 다음 NAT(네트워크 주소 변환) 게이트웨이를 사용하여 Lambda 함수에 대한 인터넷 액세스를 제공합니다. 포트 25 제한은 VPC 이외의 함수에서 제거할 수 없습니다.
    
    이 작업을 완료한 후 다음을 수행하여 AWS에 EC2 인스턴스 또는 NAT 게이트웨이에 대한 포트 25 제한을 제거하도록 요청합니다.
    1. AWS 계정으로 로그인하고 이메일 전송 제한 제거 요청 양식을 엽니다.
    2. AWS Support가 요청에 대한 업데이트를 문의할 수 있도록 본인의 이메일 주소를 입력합니다.
    3. [사용 사례 설명(Use case description)] 필드에 필요한 정보를 제공합니다.
      
      EC2 인스턴스 또는 NAT 게이트웨이에서 이메일을 보내는 것에 대한 명확하고 상세한 사용 사례
      
      계정이 원치 않는 이메일을 보내는 데 연루되지 않도록 하기 위한 계획을 설명하는 진술서
      
      EC2 인스턴스 또는 NAT 게이트웨이에 대한 리전
    4. (선택 사항) 아웃바운드 이메일을 보내는 데 사용하는 AWS 소유의 탄력적 IP 주소와 AWS가 탄력적 IP 주소와 연결하는 데 필요한 역방향 DNS(rDNS) 레코드를 제공합니다. 이메일을 보낼 때 아웃바운드 이메일에 스팸으로 플래그가 지정되지 않도록 rDNS 레코드를 설정하는 것이 가장 좋습니다.
      
      DNS A 레코드를 사용하여 rDNS 레코드를 탄력적 IP 주소에 연결해야 합니다. 예를 들어 mail.example.com이 설정 중인 rDNS 레코드인 경우 탄력적 IP 주소를 가리키는 mail.example.com에 대해 A 레코드를 만들어야 합니다.
    5. [제출(Submit)]을 선택합니다.
    참고: 둘 이상의 리전에 인스턴스가 있는 경우 각 리전에 대해 별도의 요청을 제출합니다.
    
    요청 양식을 제출하면 요청 ID가 포함된 이메일을 받게 됩니다. 요청을 처리하는 데 최대 48시간이 걸릴 수 있습니다. 요청이 승인되면 포트 25 제한이 제거되었음을 알리는 이메일을 받게 됩니다. 요청을 제출한 후 48시간 이내에 업데이트를 받지 못한 경우 수신한 초기 이메일에 회신하십시오.

     

     


    ※ 아래는 제가 직접 따라해보았지만 도메인 업체에서 PTR (포인터) 레코드타입을 지정해주지 않아 그냥 일방적으로 해본 예제입니다.


    워드프레스

     

     

    AWS Request to remove email sending limitation

    => https://console.aws.amazon.com/support/contacts?#/rdns-limits

    워드프레스

    메일주소와 요구사항을 간단하게 작성하고 Reverse DNS record를 옵션에 넣어 전송합니다.

    요구사항(설명:디스크립션)에는 아래처럼 입력하였습니다.

    A clear use-case for sending mail from ALL EC2

     

    워드프레스

    AWS 서버가 많다보니 도메인별로 smtp 2차호스트 rDNS 정보를 추가해야하는 번거러움이 있네요.

     

    제가 해결한 방법은 AWS SES서비스를 이용하여 프로그래밍 방식인 API 비밀키를 이용하여 해결하였습니다.

    방법은 아래 주소를 클릭하셔서 보시면 됩니다.

    처음 할때에는 어렵다 느껴지만 다수의 다른 워드프레스를 적용할때에는 정말 쉽고 빠르게 적용되었습니다.

    아래 방법을 권해드리고 싶습니다.

  • ajax https http 호출 해결방법

    ajax https http 호출 해결방법

    ajax https http 호출 해결했던 방법을 글로 작성

    ajax https http 호출

    jQuery AJAX 이용하여 HTTPs 보안서버에서 HTTP를 호출 하고 싶지만 이는 기본적으로 보안상 문제로 호출 할 수 없습니다.

    This request has been blocked;

    the content must be served over HTTPS

    ajax https http 호출

    이를 해결하기 위한 방법이며 브라우저에서 암묵적으로 기본보안 사항으로 HTTPS 보안 서버 유지를 위해

    같은 보안 등급으로 맞춰야합니다.

    워드프레스

    편법적인 방법으로 jQuery 플러그인 AJAX Cross Origin 을 사용해보았습니다.

    예전에는 이 부분이 적용되었을지 모르겠지만 앞으로는 기본적으로 HTTPs 같은 등급이 아닐 경우 브라우저 자체에서도 방어를 하기 때문에 대안이 아닙니다.

    조금 난해한 답변일 수 있지만 HTTPS  보안을 HTTP 상태로 낮추던지

    혹은 상대 호출 HTTP를 HTTPS 보안등급으로 올리던지 해야합니다.

    대부분 상대측은 외부업체이기때문에 자체적으로 보안을 낮출수밖에 없겠죠.

    이부분을 편법적으로 사용하려면 AJAX 대신 fopen, file_get_contents 처럼 파싱을 통해 값을 전달 받아야합니다.

    요즘에는 이러한 방법들도 보안룰에 따라 점점 어려워지고 있기에 궁긍적인 방법은 HTTPS로 보안을 올리는 방법밖에 없습니다.

  • aws ec2 mariadb memory setting

    aws ec2 mariadb memory setting

    aws ec2 운영하면서 mariadb 메모리 누수로 몇번 셧다운 되버리니 원인을 알 수 없어

    일단 동시접속자 수와 스왑메모리를 최대한 활용할 수 있도록 세팅하였습니다.

    이 수치에서 만약 또 셧다운이 일어난다면 하드웨어를 올리는 방법으로 해결하기 바랍닏.ㅏ

    현재 ec2 사양은 마이크로 사양이며 메모리 1기가~2기가 수준의 저용량으로 무료 티어를 1년 사용하기 위한 설정입니다.

    워드프레스

    my.cnf 파일 중앙부분에 넣어주면됩니다.

    만약 메모리가 2기가라면 table_cache=512 와 innodb_buffer_pool_size=512로 세팅하면됩니다.

    vi /etc/my.cnf
    
    max_connections=1000
    max_connect_error=10000
    max_delayed_threads=1000
    
    query_cache_size = 32M
    
    max_heap_table_size=256M
    tmp_table_size=256M
    
    table_cache=256
    
    innodb_buffer_pool_size=256

     

    아래는 2기가 스몰 사이즈의 ec2 인스턴스 세팅입니다.

    워드프레스

     

    세팅을 바꾸었다면 마리아디비를 재부팅해야합니다

    service mariadb restart

    워드프레스

  • 아마존 aws ec2 swap 파일 추가

    아마존 aws ec2 swap 파일 추가

    워드프레스

    아마존 AWS EC2인스턴스 사용중 메모리 부족 현상이 생겨 SSD를 이용하여 스왑파일을 만들었습니다.

    아마존에서 만드는 방법까지 친절하게 소개하고 있어 이부분을 바탕으로 만들어서 사용중입니다.

    현재는 메모리 부족이 사라진 상태이며 블록은 128MB대신 1MB로 수정하였습니다.

    워드프레스

    스왑파일은 파일과 헤깔리지 않기 위해서 언더바 _ 를 파일명 앞에 지정하였습니다.

    아래 fallocate 또는 dd 명령어로 스왑파일을 만들 수 있습니다.

    sudo fallocate -l 10GB /_swapfile
    sudo dd if=/dev/zero of=/_swapfile bs=1M count=2048
    #권한 설정
    sudo chown root:root /_swapfile
    sudo chmod 600 /_swapfile
    
    #스왑 포맷 설정
    sudo mkswap /_swapfile
    
    #스왑 파일 등록
    sudo swapon /_swapfile
    sudo swapon -a

    위의 내용까지는 그대로 복사해서 붙여넣기 하면 자동으로 만들어지고 권한까지 배정받습니다.

    아래 내용은 vi 명령어로 마지막 줄에 스왑파일을 넣어주어 재부팅마다 자동으로 실행할 수 있습니다.

    sudo vi /etc/fstab
    /_swapfile swap swap defaults 0 0
    #(마지막에 추가)
    #또는 아래처럼 추가
    /_swapfile none swap sw 0 0

    최종적으로 메모리 상태를 확인해보고 재부팅하면 스왑파일이 생긴 것을 확인 할 수 있습니다.

    자동실행 하기 위한 스왑파일 명령어 넣는방법

    #rc.local 등록하여 부팅때 자동실행
    vi /etc/rc.local 
    swapon /_swapfile
    
    #crontab -e 등록하여 부팅때 자동실행
    crontab -e
    @reboot /sbin/swapon /_swapfile
    
    #fstab 등록하여 자동실행
    vi /etc/fstab
    /_swapfile swap swap auto 0 0
    
    #재부팅해야지만 적용됩니다.
    reboot 
    sudo swapon -s
    free -m
    워드프레스
    워드프레스

    스왑을 만들었다면 이제 스왑파일에 더 집중할수 있도록 만들어주어야합니다.

    스왑 비중 늘리는 방법 바로가기 (재부팅 하면서 에러 안나도록 해야합니다)

    참조: 아마존 스왑파일 설명 바로가기