{"id":466,"date":"2021-05-08T09:29:01","date_gmt":"2021-05-08T09:29:01","guid":{"rendered":"http:\/\/www.kowanas.com\/coding\/?p=466"},"modified":"2021-05-21T19:00:12","modified_gmt":"2021-05-21T19:00:12","slug":"aws-%eb%b0%b1%ec%97%94%eb%93%9c-%ea%b0%9c%eb%b0%9c%ec%9a%a9-%ec%84%9c%eb%b2%84","status":"publish","type":"post","link":"https:\/\/www.kowanas.com\/coding\/2021\/05\/08\/aws-%eb%b0%b1%ec%97%94%eb%93%9c-%ea%b0%9c%eb%b0%9c%ec%9a%a9-%ec%84%9c%eb%b2%84\/","title":{"rendered":"AWS \ubc31\uc5d4\ub4dc \uac1c\ubc1c\uc6a9 \uc11c\ubc84 \uc124\uc815\ud558\uae30"},"content":{"rendered":"\n<p>AWS \ubc31\uc5d4\ub4dc \uac1c\ubc1c\uc6a9 \uc11c\ubc84 \uc124\uc815\ud558\ub294 \ubc29\ubc95\uc744 \uc815\ub9ac\ud574\ub450\ub824\uace0 \ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<p>\uc81c \uae30\uc5b5\uc744 \uc800\uc7a5\ud558\uace0\uc790 \uc791\uc131\ud558\ub294 \uac83\uc774\ubbc0\ub85c \uac1c\uc778\uc801\uc778 \uc124\uc815\ub4e4\uc774 \ud3ec\ud568\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">AWS \uc778\uc2a4\ud134\uc2a4 \ub9cc\ub4e4\uae30<\/h2>\n\n\n\n<p>ubuntu 18 t2.micro\ub85c \ud558\ub418 \ubcfc\ub968\uc744 16G\ub85c \uc778\uc2a4\ud134\uc2a4\ub97c \uc885\ub8cc\ud588\uc744\ub54c \ubcfc\ub968\uc774 \uc0ad\uc81c\ub418\uc9c0 \uc54a\ub3c4\ub85d \ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<p>Python\uc740 3.6 \uc774\uc0c1\uc744 \uc0ac\uc6a9\ud569\ub2c8\ub2e4. \ud604\uc7ac AWS ubuntu 18\uc744 \uc124\uce58\ud558\uba74 python 3.6.9\uac00 \uc124\uce58\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<p>\uac00\ub054 \uc2e4\uc218\ub85c \uc885\ub8cc\uc2dc\ucf1c\ubc84\ub9b4\uacbd\uc6b0 \uadf8\ub3d9\uc548 \ub0b4\uc6a9\uc774 \ubaa8\ub450 \ub0a0\ub77c\uac00\ubc84\ub9ac\ub2c8\uae4c\uc694.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Elastic IP \uc124\uc815<\/h2>\n\n\n\n<p>Hosting \uc5ed\ud560\uc744 \ud558\uae30 \uc704\ud574\uc11c Elastic IP\ub97c \uc0ac\uc6a9\ud558\uc5ec \uace0\uc815\uc801\uc73c\ub85c IP\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub3c4\ub85d \ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Inbound HTTP, HTTPS \ucd94\uac00<\/h2>\n\n\n\n<p>AWS instance\uc758 inbound \uc124\uc815\uc744 \uc704\ud55c \uba54\ub274\ub97c \ucc3e\uae30\uac00 \uc27d\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<p>\uc544\ub798 \ub9c1\ud06c\ub97c \ub204\ub974\uba74 \uc124\uc815 \uba54\ub274\ub85c \uac11\ub2c8\ub2e4.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"368\" height=\"347\" src=\"https:\/\/www.kowanas.com\/coding\/wp-content\/uploads\/sites\/5\/2021\/05\/image-1.png\" alt=\"AWS \ubc31\uc5d4\ub4dc \uac1c\ubc1c\uc6a9 \uc11c\ubc84 Inbound \uc124\uc815 \uba54\ub274\" class=\"wp-image-468\" srcset=\"https:\/\/www.kowanas.com\/coding\/wp-content\/uploads\/sites\/5\/2021\/05\/image-1.png 368w, https:\/\/www.kowanas.com\/coding\/wp-content\/uploads\/sites\/5\/2021\/05\/image-1-300x283.png 300w, https:\/\/www.kowanas.com\/coding\/wp-content\/uploads\/sites\/5\/2021\/05\/image-1-230x217.png 230w, https:\/\/www.kowanas.com\/coding\/wp-content\/uploads\/sites\/5\/2021\/05\/image-1-350x330.png 350w\" sizes=\"auto, (max-width: 368px) 100vw, 368px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">SSH \uc811\uc18d\ud558\uae30<\/h2>\n\n\n\n<p>secure key\ub97c \uc800\uc7a5\ud574\ub454 \uac83\uc744 \ub2e4\uc74c\uacfc \uac19\uc774 ssh \uc811\uc18d\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<p>ssh -I &#8220;&lt;secure key>&#8221; ubuntu@&lt;IP address><\/p>\n\n\n\n<p>\ub610\ub294 \ube44\ubc00\ubc88\ud638\ub85c \uc811\uc18d\ud558\uae30 \uc704\ud574\uc11c \ub2e4\uc74c \ud30c\uc77c\uc744 \ubcc0\uacbd\ud558\uba74 \ub429\ub2c8\ub2e4.<\/p>\n\n\n\n<p>\/etc\/ssh\/sshd_config<\/p>\n\n\n\n<p>PasswordAuthentication yes<\/p>\n\n\n\n<p>sudo passed<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">VSCode Remote Connection \uc811\uc18d\ud558\uae30<\/h2>\n\n\n\n<p>VSCode Extension \uc73c\ub85c Remote Connection\uc744 \uc124\uce58\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<p>config file\uc5d0 Host \uc124\uc815\uc744 \uc800\uc7a5\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<p>Secure key\ub85c id_ed25519\ub85c \uc0ac\uc6a9\ud558\uc600\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<p>Host &lt;\uc774\ub984&gt;<br>HostName &lt;IP address \ub610\ub294 \ub3c4\uba54\uc778 \uc774\ub984&gt;<br>User ubuntu<br>IdentityFile ~\/.ssh\/id_ed25519<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Github\ub97c \uc704\ud55c SSH key \uc0dd\uc131<\/h2>\n\n\n\n<p>ssh-keygen -t rsa -b 4096<\/p>\n\n\n\n<p>\uadf8\ub9ac\uace0 \uc774 \ud0a4\ub97c github\uc5d0 \ub4f1\ub85d\ud6c4 git clone<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">mysql \uc124\uce58\ud558\uae30<\/h2>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo&nbsp;apt-get&nbsp;install&nbsp;mysql-server\nsudo&nbsp;mysql_secure_installation\nsudo systemctl start mysql\nsudo systemctl enable mysql\n\nmysql&gt; create database &lt;DB \uc774\ub984&gt; default character set utf8;\nmysql&gt; create user 'ubuntu'@'localhost' IDENTIFIED BY '&lt;\ube44\ubc00\ubc88\ud638&gt;';\nmysql&gt; grant all privileges on *.* to ubuntu@localhost;\nmysql&gt; flush privileges;<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Nginx \uc124\uce58\ud558\uae30<\/h2>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo apt-get update\nsudo apt-get install nginx\nsudo systemctl start nginx.service<\/pre>\n\n\n\n<p>browser\ub85c http:\/\/&lt;ip address&gt; \uc774\ub3d9\ud558\uba74 nginx default page\uac00 \ub098\uc635\ub2c8\ub2e4.<\/p>\n\n\n\n<p>\uc774\uc81c \uc6d0\ud558\ub294 nginx \uc124\uc815\uc744 \ud574\uc90d\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo vi \/etc\/nginx\/sites-avaiable\/default<\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>location \/ {\n    root &lt;\uc6d0\ud558\ub294 web page path&gt;;\n    add_header 'Access-Control-Allow-Origin' '*';\n}<\/code><\/pre>\n\n\n\n<p>sudo systemctl reload nginx.service<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Gunicorn \uc124\uce58\ud558\uae30<\/h2>\n\n\n\n<p>flask api\ub97c \uc0ac\uc6a9\ud558\uae30 \uc704\ud574\uc11c Gunicorn\uc744 \ud1b5\ud574\uc11c WSGI(Web Service Gateway Interface)\ub97c \uc81c\uacf5\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<p>gunicorn\uc740 python WSGI\uc774\ubbc0\ub85c pip\uc73c\ub85c install\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">pip3 install gunicorn<\/pre>\n\n\n\n<p>\uc124\uce58\ud6c4 \ubc84\uc83c\uc744 \ud655\uc778\ud574\ubcf4\uba74 \uc124\uce58 \uc5ec\ubd80 \ud655\uc778 \uac00\ub2a5\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\/home\/ubuntu\/.local\/bin\/gunicorn --version<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">flask+WSGI \ubc31\uadf8\ub77c\uc6b4\ub4dc \uc11c\ube44\uc2a4\ub85c \uc2e4\ud589\ud558\uae30<\/h2>\n\n\n\n<p>flask app \uc0dd\uc131 (\ub2e4\ub978 \ud398\uc774\uc9c0\uc5d0\uc11c \uc124\uba85\ud558\ub3c4\ub85d \ud558\uaca0\uc2b5\ub2c8\ub2e4.)<\/p>\n\n\n\n<p>\uc6d0\ud558\ub294 \ud3f4\ub354\uc5d0 wsgi.py \ud30c\uc77c \uc791\uc131\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">from &lt;flask app \ud30c\uc77c&gt; import app\n\nif __<strong>name__<\/strong> == '__<strong>main__<\/strong>':\n    app.run()<\/pre>\n\n\n\n<p>\/etc\/systemd\/system\/&lt;\uc11c\ube44\uc2a4\uc774\ub984&gt;.service \ud30c\uc77c\uc744 \ub9cc\ub4ed\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">[Unit]\n Description=Gunicorn instance to serve myproject\n After=network.target\n\n[Service]\n User=ubuntu\n Group=www-data\n WorkingDirectory=&lt;wsgi.py \ud30c\uc77c\uc774 \uc788\ub294 PATH&gt;\n Environment=\"PATH=&lt;wsgi.py \ud30c\uc77c\uc774 \uc788\ub294 PATH&gt;\"\n ExecStart=\/home\/ubuntu\/.local\/bin\/gunicorn --workers 1 -m 007 wsgi:app --log-file &lt;wsgi.py \ud30c\uc77c\uc774 \uc788\ub294 PATH&gt;\/gunicorn.log --log-level DEBUG --reload --access-logfile &lt;wsgi.py \ud30c\uc77c\uc774 \uc788\ub294 PATH&gt;\/gunicornaccess.log --capture-output\n\n[Install]\n WantedBy=multi-user.target<\/pre>\n\n\n\n<p>\uc704\uc640 \uac19\uc774 \uc124\uc815\ud55c \ub2e4\uc74c service \uc81c\uc5b4\ub294 \ub2e4\uc74c\uacfc \uac19\uc774 \ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo systemctl start &lt;\uc11c\ube44\uc2a4\uc774\ub984&gt;.service\nsudo systemctl status &lt;\uc11c\ube44\uc2a4\uc774\ub984&gt;.service\nsudo systemctl restart &lt;\uc11c\ube44\uc2a4\uc774\ub984&gt;.service\nsudo systemctl stop &lt;\uc11c\ube44\uc2a4\uc774\ub984&gt;.service\nsudo systemctl enable &lt;\uc11c\ube44\uc2a4\uc774\ub984&gt;.service.  =&gt; system booting\uc2dc \uc790\ub3d9 \uc2e4\ud589\ub418\ub3c4\ub85d \ud569\ub2c8\ub2e4.<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">nginx wsgi\ub85c proxy \uc124\uc815\ud558\uae30<\/h2>\n\n\n\n<p>gunicorn \uc73c\ub85c \uc758\ud574\uc11c \uc0dd\uc131\ub41c web server\uc778 127.0.0.1:8000 \uc73c\ub85c proxy_pass\ub97c \uc9c0\uc815\ud558\ub3c4\ub85d \ud558\uc5ec http:\/\/&lt;IP address&gt;\/api\/ url\uc774 flask app\uc5d0\uc11c \ucc98\ub9ac\ub418\ub3c4\ub85d \ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo vi \/etc\/nginx\/sites-avaiable\/default<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">upstream &lt;\uc6d0\ud558\ub294 \uc774\ub984&gt;{\n    server 127.0.0.1:8000;\n}\n...\n<code>    location ~ \/api\/(.*)$ {             <\/code>\n        <code>add_header 'Access-Control-Allow-Origin' '*';                <\/code>\n        <code>proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;             <\/code>\n        <code>proxy_set_header X-Forwarded-Proto $scheme;             proxy_set_header HOST $http_host;             <\/code>\n        <code>proxy_pass http:\/\/&lt;\uc6d0\ud558\ub294 \uc774\ub984&gt;\/$1?${args};             <\/code>  \n        <code>proxy_redirect off;     <\/code>\n     <code>}<\/code>\n\n\nsudo systemctl reload nginx.service<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\ub9c8\uce58\uba70<\/h2>\n\n\n\n<p>hosting service\ub97c \uc704\ud574\uc11c domain \ub4f1\ub85d\uacfc https\ub97c \uc704\ud55c ssl \uc801\uc6a9\uc744 \ucd94\uac00\ub85c \ud560 \uc608\uc815\uc785\ub2c8\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>AWS \ubc31\uc5d4\ub4dc \uac1c\ubc1c\uc6a9 \uc11c\ubc84 \uc124\uc815\ud558\ub294 \ubc29\ubc95\uc744 \uc815\ub9ac\ud574\ub450\ub824\uace0 \ud569\ub2c8\ub2e4. \uc81c \uae30\uc5b5\uc744 \uc800\uc7a5\ud558\uace0\uc790 \uc791\uc131\ud558\ub294 \uac83\uc774\ubbc0\ub85c \uac1c\uc778\uc801\uc778 \uc124\uc815\ub4e4\uc774 \ud3ec\ud568\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4. AWS \uc778\uc2a4\ud134\uc2a4 \ub9cc\ub4e4\uae30 ubuntu 18 t2.micro\ub85c \ud558\ub418 \ubcfc\ub968\uc744 16G\ub85c \uc778\uc2a4\ud134\uc2a4\ub97c \uc885\ub8cc\ud588\uc744\ub54c \ubcfc\ub968\uc774 \uc0ad\uc81c\ub418\uc9c0 \uc54a\ub3c4\ub85d \ud569\ub2c8\ub2e4. Python\uc740 3.6 \uc774\uc0c1\uc744 \uc0ac\uc6a9\ud569\ub2c8\ub2e4. \ud604\uc7ac AWS ubuntu 18\uc744 \uc124\uce58\ud558\uba74 python 3.6.9\uac00 \uc124\uce58\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4. \uac00\ub054 \uc2e4\uc218\ub85c \uc885\ub8cc\uc2dc\ucf1c\ubc84\ub9b4\uacbd\uc6b0 \uadf8\ub3d9\uc548 \ub0b4\uc6a9\uc774 \ubaa8\ub450 \ub0a0\ub77c\uac00\ubc84\ub9ac\ub2c8\uae4c\uc694. Elastic IP \uc124\uc815 &#8230; <a title=\"AWS \ubc31\uc5d4\ub4dc \uac1c\ubc1c\uc6a9 \uc11c\ubc84 \uc124\uc815\ud558\uae30\" class=\"read-more\" href=\"https:\/\/www.kowanas.com\/coding\/2021\/05\/08\/aws-%eb%b0%b1%ec%97%94%eb%93%9c-%ea%b0%9c%eb%b0%9c%ec%9a%a9-%ec%84%9c%eb%b2%84\/\" aria-label=\"Read more about AWS \ubc31\uc5d4\ub4dc \uac1c\ubc1c\uc6a9 \uc11c\ubc84 \uc124\uc815\ud558\uae30\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[41],"tags":[42,44,43],"class_list":["post-466","post","type-post","status-publish","format-standard","hentry","category-41","tag-aws","tag-gunicorn","tag-nginx"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>AWS \ubc31\uc5d4\ub4dc \uac1c\ubc1c\uc6a9 \uc11c\ubc84 \uc124\uc815\ud558\uae30 - Kowana&#039;s coding<\/title>\n<meta name=\"description\" content=\"AWS \ubc31\uc5d4\ub4dc \uac1c\ubc1c\uc6a9 \uc11c\ubc84 \uc124\uc815\ud558\ub294 \ubc29\ubc95\uc744 \uc815\ub9ac\ud574\ub450\ub824\uace0 \ud569\ub2c8\ub2e4. ubuntu 18 t2.micro\ub85c \ud558\ub418 \ubcfc\ub968\uc744 16G\ub85c \uc778\uc2a4\ud134\uc2a4\ub97c \uc885\ub8cc\ud588\uc744\ub54c \ubcfc\ub968\uc774 \uc0ad\uc81c\ub418\uc9c0 \uc54a\ub3c4\ub85d \ud569\ub2c8\ub2e4. Python\uc740 3.6 \uc774\uc0c1\uc744 \uc0ac\uc6a9\ud569\ub2c8\ub2e4.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.kowanas.com\/coding\/2021\/05\/08\/aws-\ubc31\uc5d4\ub4dc-\uac1c\ubc1c\uc6a9-\uc11c\ubc84\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"AWS \ubc31\uc5d4\ub4dc \uac1c\ubc1c\uc6a9 \uc11c\ubc84 \uc124\uc815\ud558\uae30 - Kowana&#039;s coding\" \/>\n<meta property=\"og:description\" content=\"AWS \ubc31\uc5d4\ub4dc \uac1c\ubc1c\uc6a9 \uc11c\ubc84 \uc124\uc815\ud558\ub294 \ubc29\ubc95\uc744 \uc815\ub9ac\ud574\ub450\ub824\uace0 \ud569\ub2c8\ub2e4. ubuntu 18 t2.micro\ub85c \ud558\ub418 \ubcfc\ub968\uc744 16G\ub85c \uc778\uc2a4\ud134\uc2a4\ub97c \uc885\ub8cc\ud588\uc744\ub54c \ubcfc\ub968\uc774 \uc0ad\uc81c\ub418\uc9c0 \uc54a\ub3c4\ub85d \ud569\ub2c8\ub2e4. Python\uc740 3.6 \uc774\uc0c1\uc744 \uc0ac\uc6a9\ud569\ub2c8\ub2e4.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.kowanas.com\/coding\/2021\/05\/08\/aws-\ubc31\uc5d4\ub4dc-\uac1c\ubc1c\uc6a9-\uc11c\ubc84\/\" \/>\n<meta property=\"og:site_name\" content=\"Kowana&#039;s coding\" \/>\n<meta property=\"article:published_time\" content=\"2021-05-08T09:29:01+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-05-21T19:00:12+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.kowanas.com\/coding\/wp-content\/uploads\/sites\/5\/2021\/05\/image-1.png\" \/>\n<meta name=\"author\" content=\"kowana\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"kowana\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.kowanas.com\/coding\/2021\/05\/08\/aws-%eb%b0%b1%ec%97%94%eb%93%9c-%ea%b0%9c%eb%b0%9c%ec%9a%a9-%ec%84%9c%eb%b2%84\/\",\"url\":\"https:\/\/www.kowanas.com\/coding\/2021\/05\/08\/aws-%eb%b0%b1%ec%97%94%eb%93%9c-%ea%b0%9c%eb%b0%9c%ec%9a%a9-%ec%84%9c%eb%b2%84\/\",\"name\":\"AWS \ubc31\uc5d4\ub4dc \uac1c\ubc1c\uc6a9 \uc11c\ubc84 \uc124\uc815\ud558\uae30 - Kowana's coding\",\"isPartOf\":{\"@id\":\"https:\/\/www.kowanas.com\/coding\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.kowanas.com\/coding\/2021\/05\/08\/aws-%eb%b0%b1%ec%97%94%eb%93%9c-%ea%b0%9c%eb%b0%9c%ec%9a%a9-%ec%84%9c%eb%b2%84\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.kowanas.com\/coding\/2021\/05\/08\/aws-%eb%b0%b1%ec%97%94%eb%93%9c-%ea%b0%9c%eb%b0%9c%ec%9a%a9-%ec%84%9c%eb%b2%84\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.kowanas.com\/coding\/wp-content\/uploads\/sites\/5\/2021\/05\/image-1.png\",\"datePublished\":\"2021-05-08T09:29:01+00:00\",\"dateModified\":\"2021-05-21T19:00:12+00:00\",\"author\":{\"@id\":\"https:\/\/www.kowanas.com\/coding\/#\/schema\/person\/190c7dff713254da763d4fe295be98af\"},\"description\":\"AWS \ubc31\uc5d4\ub4dc \uac1c\ubc1c\uc6a9 \uc11c\ubc84 \uc124\uc815\ud558\ub294 \ubc29\ubc95\uc744 \uc815\ub9ac\ud574\ub450\ub824\uace0 \ud569\ub2c8\ub2e4. ubuntu 18 t2.micro\ub85c \ud558\ub418 \ubcfc\ub968\uc744 16G\ub85c \uc778\uc2a4\ud134\uc2a4\ub97c \uc885\ub8cc\ud588\uc744\ub54c \ubcfc\ub968\uc774 \uc0ad\uc81c\ub418\uc9c0 \uc54a\ub3c4\ub85d \ud569\ub2c8\ub2e4. Python\uc740 3.6 \uc774\uc0c1\uc744 \uc0ac\uc6a9\ud569\ub2c8\ub2e4.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.kowanas.com\/coding\/2021\/05\/08\/aws-%eb%b0%b1%ec%97%94%eb%93%9c-%ea%b0%9c%eb%b0%9c%ec%9a%a9-%ec%84%9c%eb%b2%84\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.kowanas.com\/coding\/2021\/05\/08\/aws-%eb%b0%b1%ec%97%94%eb%93%9c-%ea%b0%9c%eb%b0%9c%ec%9a%a9-%ec%84%9c%eb%b2%84\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.kowanas.com\/coding\/2021\/05\/08\/aws-%eb%b0%b1%ec%97%94%eb%93%9c-%ea%b0%9c%eb%b0%9c%ec%9a%a9-%ec%84%9c%eb%b2%84\/#primaryimage\",\"url\":\"https:\/\/www.kowanas.com\/coding\/wp-content\/uploads\/sites\/5\/2021\/05\/image-1.png\",\"contentUrl\":\"https:\/\/www.kowanas.com\/coding\/wp-content\/uploads\/sites\/5\/2021\/05\/image-1.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.kowanas.com\/coding\/2021\/05\/08\/aws-%eb%b0%b1%ec%97%94%eb%93%9c-%ea%b0%9c%eb%b0%9c%ec%9a%a9-%ec%84%9c%eb%b2%84\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.kowanas.com\/coding\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"AWS \ubc31\uc5d4\ub4dc \uac1c\ubc1c\uc6a9 \uc11c\ubc84 \uc124\uc815\ud558\uae30\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.kowanas.com\/coding\/#website\",\"url\":\"https:\/\/www.kowanas.com\/coding\/\",\"name\":\"Kowana's coding\",\"description\":\"\ucc9c\ucc9c\ud788 \ud55c\uac78\uc74c\uc529 \ud55c\uac78\uc74c\uc529 \ucf54\ub529\uc774 \ub300\uc138\ub780\ub2e4 \uc544\ub4e4\uc544\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.kowanas.com\/coding\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.kowanas.com\/coding\/#\/schema\/person\/190c7dff713254da763d4fe295be98af\",\"name\":\"kowana\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.kowanas.com\/coding\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/80a89adb37a55d376afb969e327758fb?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/80a89adb37a55d376afb969e327758fb?s=96&d=mm&r=g\",\"caption\":\"kowana\"},\"url\":\"https:\/\/www.kowanas.com\/coding\/author\/admin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"AWS \ubc31\uc5d4\ub4dc \uac1c\ubc1c\uc6a9 \uc11c\ubc84 \uc124\uc815\ud558\uae30 - Kowana's coding","description":"AWS \ubc31\uc5d4\ub4dc \uac1c\ubc1c\uc6a9 \uc11c\ubc84 \uc124\uc815\ud558\ub294 \ubc29\ubc95\uc744 \uc815\ub9ac\ud574\ub450\ub824\uace0 \ud569\ub2c8\ub2e4. ubuntu 18 t2.micro\ub85c \ud558\ub418 \ubcfc\ub968\uc744 16G\ub85c \uc778\uc2a4\ud134\uc2a4\ub97c \uc885\ub8cc\ud588\uc744\ub54c \ubcfc\ub968\uc774 \uc0ad\uc81c\ub418\uc9c0 \uc54a\ub3c4\ub85d \ud569\ub2c8\ub2e4. Python\uc740 3.6 \uc774\uc0c1\uc744 \uc0ac\uc6a9\ud569\ub2c8\ub2e4.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.kowanas.com\/coding\/2021\/05\/08\/aws-\ubc31\uc5d4\ub4dc-\uac1c\ubc1c\uc6a9-\uc11c\ubc84\/","og_locale":"en_US","og_type":"article","og_title":"AWS \ubc31\uc5d4\ub4dc \uac1c\ubc1c\uc6a9 \uc11c\ubc84 \uc124\uc815\ud558\uae30 - Kowana's coding","og_description":"AWS \ubc31\uc5d4\ub4dc \uac1c\ubc1c\uc6a9 \uc11c\ubc84 \uc124\uc815\ud558\ub294 \ubc29\ubc95\uc744 \uc815\ub9ac\ud574\ub450\ub824\uace0 \ud569\ub2c8\ub2e4. ubuntu 18 t2.micro\ub85c \ud558\ub418 \ubcfc\ub968\uc744 16G\ub85c \uc778\uc2a4\ud134\uc2a4\ub97c \uc885\ub8cc\ud588\uc744\ub54c \ubcfc\ub968\uc774 \uc0ad\uc81c\ub418\uc9c0 \uc54a\ub3c4\ub85d \ud569\ub2c8\ub2e4. Python\uc740 3.6 \uc774\uc0c1\uc744 \uc0ac\uc6a9\ud569\ub2c8\ub2e4.","og_url":"https:\/\/www.kowanas.com\/coding\/2021\/05\/08\/aws-\ubc31\uc5d4\ub4dc-\uac1c\ubc1c\uc6a9-\uc11c\ubc84\/","og_site_name":"Kowana's coding","article_published_time":"2021-05-08T09:29:01+00:00","article_modified_time":"2021-05-21T19:00:12+00:00","og_image":[{"url":"https:\/\/www.kowanas.com\/coding\/wp-content\/uploads\/sites\/5\/2021\/05\/image-1.png","type":"","width":"","height":""}],"author":"kowana","twitter_card":"summary_large_image","twitter_misc":{"Written by":"kowana","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.kowanas.com\/coding\/2021\/05\/08\/aws-%eb%b0%b1%ec%97%94%eb%93%9c-%ea%b0%9c%eb%b0%9c%ec%9a%a9-%ec%84%9c%eb%b2%84\/","url":"https:\/\/www.kowanas.com\/coding\/2021\/05\/08\/aws-%eb%b0%b1%ec%97%94%eb%93%9c-%ea%b0%9c%eb%b0%9c%ec%9a%a9-%ec%84%9c%eb%b2%84\/","name":"AWS \ubc31\uc5d4\ub4dc \uac1c\ubc1c\uc6a9 \uc11c\ubc84 \uc124\uc815\ud558\uae30 - Kowana's coding","isPartOf":{"@id":"https:\/\/www.kowanas.com\/coding\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.kowanas.com\/coding\/2021\/05\/08\/aws-%eb%b0%b1%ec%97%94%eb%93%9c-%ea%b0%9c%eb%b0%9c%ec%9a%a9-%ec%84%9c%eb%b2%84\/#primaryimage"},"image":{"@id":"https:\/\/www.kowanas.com\/coding\/2021\/05\/08\/aws-%eb%b0%b1%ec%97%94%eb%93%9c-%ea%b0%9c%eb%b0%9c%ec%9a%a9-%ec%84%9c%eb%b2%84\/#primaryimage"},"thumbnailUrl":"https:\/\/www.kowanas.com\/coding\/wp-content\/uploads\/sites\/5\/2021\/05\/image-1.png","datePublished":"2021-05-08T09:29:01+00:00","dateModified":"2021-05-21T19:00:12+00:00","author":{"@id":"https:\/\/www.kowanas.com\/coding\/#\/schema\/person\/190c7dff713254da763d4fe295be98af"},"description":"AWS \ubc31\uc5d4\ub4dc \uac1c\ubc1c\uc6a9 \uc11c\ubc84 \uc124\uc815\ud558\ub294 \ubc29\ubc95\uc744 \uc815\ub9ac\ud574\ub450\ub824\uace0 \ud569\ub2c8\ub2e4. ubuntu 18 t2.micro\ub85c \ud558\ub418 \ubcfc\ub968\uc744 16G\ub85c \uc778\uc2a4\ud134\uc2a4\ub97c \uc885\ub8cc\ud588\uc744\ub54c \ubcfc\ub968\uc774 \uc0ad\uc81c\ub418\uc9c0 \uc54a\ub3c4\ub85d \ud569\ub2c8\ub2e4. Python\uc740 3.6 \uc774\uc0c1\uc744 \uc0ac\uc6a9\ud569\ub2c8\ub2e4.","breadcrumb":{"@id":"https:\/\/www.kowanas.com\/coding\/2021\/05\/08\/aws-%eb%b0%b1%ec%97%94%eb%93%9c-%ea%b0%9c%eb%b0%9c%ec%9a%a9-%ec%84%9c%eb%b2%84\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.kowanas.com\/coding\/2021\/05\/08\/aws-%eb%b0%b1%ec%97%94%eb%93%9c-%ea%b0%9c%eb%b0%9c%ec%9a%a9-%ec%84%9c%eb%b2%84\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.kowanas.com\/coding\/2021\/05\/08\/aws-%eb%b0%b1%ec%97%94%eb%93%9c-%ea%b0%9c%eb%b0%9c%ec%9a%a9-%ec%84%9c%eb%b2%84\/#primaryimage","url":"https:\/\/www.kowanas.com\/coding\/wp-content\/uploads\/sites\/5\/2021\/05\/image-1.png","contentUrl":"https:\/\/www.kowanas.com\/coding\/wp-content\/uploads\/sites\/5\/2021\/05\/image-1.png"},{"@type":"BreadcrumbList","@id":"https:\/\/www.kowanas.com\/coding\/2021\/05\/08\/aws-%eb%b0%b1%ec%97%94%eb%93%9c-%ea%b0%9c%eb%b0%9c%ec%9a%a9-%ec%84%9c%eb%b2%84\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.kowanas.com\/coding\/"},{"@type":"ListItem","position":2,"name":"AWS \ubc31\uc5d4\ub4dc \uac1c\ubc1c\uc6a9 \uc11c\ubc84 \uc124\uc815\ud558\uae30"}]},{"@type":"WebSite","@id":"https:\/\/www.kowanas.com\/coding\/#website","url":"https:\/\/www.kowanas.com\/coding\/","name":"Kowana's coding","description":"\ucc9c\ucc9c\ud788 \ud55c\uac78\uc74c\uc529 \ud55c\uac78\uc74c\uc529 \ucf54\ub529\uc774 \ub300\uc138\ub780\ub2e4 \uc544\ub4e4\uc544","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.kowanas.com\/coding\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.kowanas.com\/coding\/#\/schema\/person\/190c7dff713254da763d4fe295be98af","name":"kowana","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.kowanas.com\/coding\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/80a89adb37a55d376afb969e327758fb?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/80a89adb37a55d376afb969e327758fb?s=96&d=mm&r=g","caption":"kowana"},"url":"https:\/\/www.kowanas.com\/coding\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.kowanas.com\/coding\/wp-json\/wp\/v2\/posts\/466","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kowanas.com\/coding\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kowanas.com\/coding\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kowanas.com\/coding\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kowanas.com\/coding\/wp-json\/wp\/v2\/comments?post=466"}],"version-history":[{"count":5,"href":"https:\/\/www.kowanas.com\/coding\/wp-json\/wp\/v2\/posts\/466\/revisions"}],"predecessor-version":[{"id":476,"href":"https:\/\/www.kowanas.com\/coding\/wp-json\/wp\/v2\/posts\/466\/revisions\/476"}],"wp:attachment":[{"href":"https:\/\/www.kowanas.com\/coding\/wp-json\/wp\/v2\/media?parent=466"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kowanas.com\/coding\/wp-json\/wp\/v2\/categories?post=466"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kowanas.com\/coding\/wp-json\/wp\/v2\/tags?post=466"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}