{"id":1641,"date":"2021-03-24T23:20:24","date_gmt":"2021-03-24T14:20:24","guid":{"rendered":"https:\/\/oboki.net\/workspace\/?p=1641"},"modified":"2021-04-02T18:38:15","modified_gmt":"2021-04-02T09:38:15","slug":"wordpress%eb%a5%bc-aws%eb%a1%9c-%ec%98%ae%ea%b2%a8%eb%b3%b4%ec%9e%90","status":"publish","type":"post","link":"https:\/\/oboki.net\/workspace\/wordpress\/wordpress%eb%a5%bc-aws%eb%a1%9c-%ec%98%ae%ea%b2%a8%eb%b3%b4%ec%9e%90\/","title":{"rendered":"wordpress\ub97c aws\ub85c \uc62e\uaca8\ubcf4\uc790"},"content":{"rendered":"<h1>wordpress\ub97c aws\ub85c \uc62e\uaca8\ubcf4\uc790<\/h1>\n<p>\ub9e4\ubc88 \uc774\uc0ac\ub54c\ub9c8\ub2e4, \uc9d0 \uc300 \ub54c\ub294 \uc11c\ubc84\ub97c \uc81c\uc77c \ub9c8\uc9c0\ub9c9\uc5d0 \ucc59\uae30\uace0 \uc9d0 \ud480 \ub54c\ub294 \uc11c\ubc84 \uba3c\uc800 \uaebc\ub0b4\uc11c \uad6c\ub3d9\ud558\ub294 \uc2dd\uc73c\ub85c \ud574\uc654\uc5c8\ub2e4. \uadf8\ub7f0\ub370 \uc774\ubc88\uc5d0\ub294 \ubcf4\uad00\uc774\uc0ac\ub97c \uc9e7\uc9c0 \uc54a\uc740 \uae30\uac04\ub3d9\uc548 \ud574\uc57c\ud558\ub294\ub370 \uc774 \ub3d9\uc548 \ube14\ub85c\uadf8\uac00 \ub0b4\ub824\uac00\uc788\ub294\uac8c \uc369 \ub0b4\ud0a4\uc9c0 \uc54a\uc544\uc11c \ubcf4\uad00 \uae30\uac04 \ub3d9\uc548 \ub9cc\uc774\ub77c\ub3c4 \uc800 \uc0ac\uc591\uc73c\ub85c \uc6b4\uc601\ud558\ub824\uace0 \ucc3e\uc544\ubcf4\ub2c8, aws \ud504\ub9ac\ud2f0\uc5b4\ub85c \uc6cc\ub4dc\ud504\ub808\uc2a4 \uc815\ub3c4\ub294 \ucda9\ubd84\ud788 \uc6b4\uc601\uc774 \uac00\ub2a5\ud55c \uc870\ud569\uc774 \uc788\uc5c8\ub2e4.<\/p>\n<p>ec2, efs, rds \uc774 \uc138 \uac00\uc9c0 \uc11c\ube44\uc2a4\ub97c free tier \uc5d0\uc11c \uc81c\uacf5\ud558\ub294 \uc0ac\uc591\uc73c\ub85c \uc0dd\uc131\ud558\uba74 \ub2e4\uc74c\uacfc \uac19\ub2e4.<\/p>\n<h4>1. ec2 (t2.micro)<\/h4>\n<ul>\n<li>x86 1 cpu<\/li>\n<li>1GB mem<\/li>\n<\/ul>\n<p><img decoding=\"async\" src=\"https:\/\/oboki.net\/workspace\/wp-content\/uploads\/2021\/03\/image-1617157986188.png#mdimgcenter\" alt=\"file\" \/><\/p>\n<h4>2. efs<\/h4>\n<ul>\n<li>5GB<\/li>\n<\/ul>\n<p><img decoding=\"async\" src=\"https:\/\/oboki.net\/workspace\/wp-content\/uploads\/2021\/03\/image-1617157973418.png#mdimgcenter\" alt=\"file\" \/><\/p>\n<h4>3. rds (db.t2.micro)<\/h4>\n<ul>\n<li>20GB<\/li>\n<\/ul>\n<p><img decoding=\"async\" src=\"https:\/\/oboki.net\/workspace\/wp-content\/uploads\/2021\/03\/image-1617157945399.png#mdimgcenter\" alt=\"file\" \/><\/p>\n<p>\ud14d\uc2a4\ud2b8 \uc704\uc8fc\uc758 \ucee8\ud150\uce20\ub4e4\uc774\uc5b4\uc11c \ucc28\uace0 \ub118\uce58\ub294 \uc6a9\ub7c9\uc774\uace0, \ud558\ub8e8 200\uba85 \ub0a8\uc9d3\ud55c \ud2b8\ub798\ud53d\uc744 \ubc1b\uc544 \ub0b4\uae30\uc5d0\ub3c4 \ucda9\ubd84\ud558\ub2e4. <del>\ub77c\uc988\ubca0\ub9ac \ud30c\uc774\ub294 \uace0\uc0ac\uc591\uc774\uc5c8\ub2e4.<\/del><\/p>\n<p>\ub2e4\uc74c\uacfc \uac19\uc740 \uc544\ud0a4\ud14d\ucc98\ub85c \uc870\ud569\ud574\uc11c \uc368\ubcf4\ub2c8 \ucda9\ubd84\ud558\ub2e4.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/oboki.net\/workspace\/wp-content\/uploads\/2021\/03\/image-1617157268917.png#mdimgcenter\" alt=\"file\" \/><\/p>\n<p>\uae08\uc735 \uc11c\ube44\uc2a4\ub3c4 \ud074\ub77c\uc6b0\ub4dc\ub85c \uc62c\ub77c\uac00\ub294 \uc694\uc998\uac19\uc740 \uc138\uc0c1\uc5d0 \uc6cc\ub4dc\ud504\ub808\uc2a4 \ud558\ub098 \ub54c\ubb38\uc5d0 \uc774 \ub09c\ub9ac\ub97c \uce58\ub294\uac74 \uc880 \uc544\ub2cc \uac83\ub3c4 \uac19\uace0 \uc774 \ucc38\uc5d0 aws \ub85c \uc544\uc608 \ub118\uc5b4\uac00\ub294 \uac83\ub3c4 \uc88b\uc744 \uac83 \uac19\ub2e4. <del>\uacfc\uae08 \uc815\ucc45\uc740 \ub2e4\uc2dc \ud655\uc778 \ud574\ubd10\uc57c\uaca0\ub2e4.<\/del><\/p>\n<h2>docker \uc124\uc815<\/h2>\n<h3>Dockerfile<\/h3>\n<p>\uae30\uc874 \uc6b4\uc601\uc911\uc774\ub358 <code>5.6.2<\/code> \ubc84\uc804\uc744 \ubca0\uc774\uc2a4\ub85c \ud574\uc11c ssl \uc744 \ud65c\uc131\ud654 \ud574\uc8fc\uace0, \uae30\uc874 \uc6b4\uc601 \uc18c\uc2a4\ub97c \ud65c\uc6a9\ud560 \uc608\uc815\uc774\ubbc0\ub85c \ucd08\uae30 \ud15c\ud50c\ub9bf\uc740 \uc81c\uac70\ud574\uc900\ub2e4.<\/p>\n<pre><code class=\"language-Dockerfile\">FROM wordpress:5.6.2\n\nRUN apt-get install openssl \\\n &amp;&amp; a2enmod ssl \\\n &amp;&amp; a2enmod rewrite \\\n &amp;&amp; rm -rf \/var\/www\/html\/*\n\nEXPOSE 80 443<\/code><\/pre>\n<h3>docker-entrypoint.sh<\/h3>\n<p>\uae30\uc874 entrypoint \uc2a4\ud06c\ub9bd\ud2b8\uc5d0\uc11c \ucd08\uae30 \ud15c\ud50c\ub9bf\uc744 \ub85c\ub4dc\ud558\uace0 \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub97c \uc0dd\uc131\ud574\uc8fc\ub294 \ub2e8\uacc4\ub97c \uc81c\uac70\ud588\ub2e4.<\/p>\n<pre><code class=\"language-sh\">#!\/bin\/bash\nset -euo pipefail\n\n# usage: file_env VAR [DEFAULT]\n#    ie: file_env &#039;XYZ_DB_PASSWORD&#039; &#039;example&#039;\n# (will allow for &quot;$XYZ_DB_PASSWORD_FILE&quot; to fill in the value of\n#  &quot;$XYZ_DB_PASSWORD&quot; from a file, especially for Docker&#039;s secrets feature)\nfile_env() {\n    local var=&quot;$1&quot;\n    local fileVar=&quot;${var}_FILE&quot;\n    local def=&quot;${2:-}&quot;\n    if [ &quot;${!var:-}&quot; ] &amp;&amp; [ &quot;${!fileVar:-}&quot; ]; then\n        echo &gt;&amp;2 &quot;error: both $var and $fileVar are set (but are exclusive)&quot;\n        exit 1\n    fi\n    local val=&quot;$def&quot;\n    if [ &quot;${!var:-}&quot; ]; then\n        val=&quot;${!var}&quot;\n    elif [ &quot;${!fileVar:-}&quot; ]; then\n        val=&quot;$(&lt; &quot;${!fileVar}&quot;)&quot;\n    fi\n    export &quot;$var&quot;=&quot;$val&quot;\n    unset &quot;$fileVar&quot;\n}\n\nif [[ &quot;$1&quot; == apache2* ]] || [ &quot;$1&quot; == php-fpm ]; then\n    if [ &quot;$(id -u)&quot; = &#039;0&#039; ]; then\n        case &quot;$1&quot; in\n            apache2*)\n                user=&quot;${APACHE_RUN_USER:-www-data}&quot;\n                group=&quot;${APACHE_RUN_GROUP:-www-data}&quot;\n\n                # strip off any &#039;#&#039; symbol (&#039;#1000&#039; is valid syntax for Apache)\n                pound=&#039;#&#039;\n                user=&quot;${user#$pound}&quot;\n                group=&quot;${group#$pound}&quot;\n                ;;\n            *) # php-fpm\n                user=&#039;www-data&#039;\n                group=&#039;www-data&#039;\n                ;;\n        esac\n    else\n        user=&quot;$(id -u)&quot;\n        group=&quot;$(id -g)&quot;\n    fi\n\n    for e in &quot;${envs[@]}&quot;; do\n        unset &quot;$e&quot;\n    done\nfi\n\nexec &quot;$@&quot;<\/code><\/pre>\n<h3>docker-compose<\/h3>\n<p>3\uac1c\uc6d4\ub9c8\ub2e4 \uac31\uc2e0\ud574\uc918\uc57c\ud558\ub294 let&#8217;s encrypt \uc778\uc99d\uc11c\ub791 \uc6f9 \ub9ac\uc18c\uc2a4\ub4e4\uc744 persistent volume \uc73c\ub85c \ucc98\ub9ac\ud55c\ub2e4.<\/p>\n<pre><code class=\"language-yml\">version: &quot;3&quot;\n\nservices:\n  wordpress:\n    image: wordpress:oboki\n    ports:\n      - &quot;80:80&quot;\n      - &quot;443:443&quot;\n    restart: always\n    environment:\n      WORDPRESS_DB_HOST: yourdbhost.rds.amazonaws.com:3306\n      WORDPRESS_DB_USER: yourdbuser\n      WORDPRESS_DB_PASSWORD: yourpassword\n      WORDPRESS_DB_NAME: yourdbname\n    volumes:\n      - .\/data\/html:\/var\/www\/html\n      - .\/cert.pem:\/etc\/ssl\/certs\/ssl-cert-snakeoil.pem\n      - .\/privkey.pem:\/etc\/ssl\/private\/ssl-cert-snakeoil.key\n      - .\/default-ssl.conf:\/etc\/apache2\/sites-enabled\/default-ssl.conf\n      - .\/docker-entrypoint.sh:\/usr\/local\/bin\/docker-entrypoint.sh<\/code><\/pre>\n<h2>permalink \uc124\uc815<\/h2>\n<p><code>.htaccess<\/code> \ud30c\uc77c\uc774 \uc0dd\uc131\ub3fc\uc788\uc9c0 \uc54a\uc544\uc11c \uae30\uc874\uc5d0 \uc124\uc815\ub3fc\uc788\ub358 \uace0\uc720\ub9c1\ud06c\uac00 \uc81c\ub300\ub85c \ub3d9\uc791\ud558\uc9c0 \uc54a\ub294 \uacbd\uc6b0\uac00 \uc788\ub294\ub370 \uc774\ub54c\ub294 data \uacbd\ub85c\uc758 \uc18c\uc720\uad8c\uc744 <code>www-data<\/code> \ub85c \ubcc0\uacbd\ud574\uc8fc\uc5c8\ub294\uc9c0 \ud655\uc778\ud574\ubcf4\uace0, wordpress &gt; \uc124\uc815 &gt; \uace0\uc720\uc8fc\uc18c \uc5d0\uc11c \uae30\ubcf8\uac12\uc73c\ub85c \ub3cc\ub838\ub2e4\uac00 \ub2e4\uc2dc \uae30\uc874 \uace0\uc720\ub9c1\ud06c \uc124\uc815\uc744\ud558\uba74 \uc815\uc0c1\uc801\uc73c\ub85c \uc801\uc6a9\ub41c\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>wordpress\ub97c aws\ub85c \uc62e\uaca8\ubcf4\uc790 \ub9e4\ubc88 \uc774\uc0ac\ub54c\ub9c8\ub2e4, \uc9d0 \uc300 \ub54c\ub294 \uc11c\ubc84\ub97c \uc81c\uc77c \ub9c8\uc9c0\ub9c9\uc5d0 \ucc59\uae30\uace0 \uc9d0 \ud480 \ub54c\ub294 \uc11c\ubc84 \uba3c\uc800 \uaebc\ub0b4\uc11c \uad6c\ub3d9\ud558\ub294 \uc2dd\uc73c\ub85c \ud574\uc654\uc5c8\ub2e4. \uadf8\ub7f0\ub370 \uc774\ubc88\uc5d0\ub294 \ubcf4\uad00\uc774\uc0ac\ub97c \uc9e7\uc9c0 \uc54a\uc740 \uae30\uac04\ub3d9\uc548 \ud574\uc57c\ud558\ub294\ub370 \uc774 \ub3d9\uc548 \ube14\ub85c\uadf8\uac00 \ub0b4\ub824\uac00\uc788\ub294\uac8c \uc369 \ub0b4\ud0a4\uc9c0 \uc54a\uc544\uc11c \ubcf4\uad00 \uae30\uac04 \ub3d9\uc548 \ub9cc\uc774\ub77c\ub3c4 \uc800 \uc0ac\uc591\uc73c\ub85c \uc6b4\uc601\ud558\ub824\uace0 \ucc3e\uc544\ubcf4\ub2c8, aws \ud504\ub9ac\ud2f0\uc5b4\ub85c \uc6cc\ub4dc\ud504\ub808\uc2a4 \uc815\ub3c4\ub294 \ucda9\ubd84\ud788 \uc6b4\uc601\uc774 \uac00\ub2a5\ud55c \uc870\ud569\uc774 \uc788\uc5c8\ub2e4. ec2, efs, rds [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[203,162,55],"tags":[],"class_list":["post-1641","post","type-post","status-publish","format-standard","hentry","category-aws","category-docker","category-wordpress"],"_links":{"self":[{"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/posts\/1641","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/comments?post=1641"}],"version-history":[{"count":0,"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/posts\/1641\/revisions"}],"wp:attachment":[{"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/media?parent=1641"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/categories?post=1641"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/tags?post=1641"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}