{"id":485,"date":"2019-09-22T14:33:55","date_gmt":"2019-09-22T12:33:55","guid":{"rendered":"http:\/\/antek.atthost24.pl\/?p=485"},"modified":"2019-09-22T14:33:57","modified_gmt":"2019-09-22T12:33:57","slug":"deploy-aplikacji-na-aws","status":"publish","type":"post","link":"https:\/\/blog.lantkowiak.pl\/index.php\/2019\/09\/22\/deploy-aplikacji-na-aws\/","title":{"rendered":"Deploy aplikacji na AWS"},"content":{"rendered":"\n<p>Jaki\u015b czas temu zajmowali\u015bmy si\u0119<a href=\"http:\/\/antek.atthost24.pl\/index.php\/2019\/04\/01\/pierwsze-kroki-z-openshift\/\"> deployem aplikacji na OpenShift<\/a>. Dzisiaj zrobimy to samo, ale na najpopularniejszej chmurze, czyli <a href=\"https:\/\/aws.amazon.com\/\">AWS<\/a>.<\/p>\n\n\n\n<p>Sam deployment, podobnie jak w przypadku OpenShift, zrobimy za pomoc\u0105 linii komend. Na tym etapie pominiemy opisywanie poszczeg\u00f3lnych komponent\u00f3w AWS, a skupimy si\u0119 na tym, \u017ceby nasza aplikacja dzia\u0142a\u0142a w chmurze.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Aplikacja<\/h3>\n\n\n\n<p>Om\u00f3wmy sobie najpierw aplikacje, kt\u00f3r\u0105 b\u0119dziemy wrzuca\u0107 do chmury. Aplikacja znajduj\u0119 si\u0119 <a href=\"https:\/\/github.com\/lukaszantkowiak\/aws-hello-world\">w tym miejscu<\/a>. Jest to, podobnie jak w przypadku <a href=\"https:\/\/github.com\/lukaszantkowiak\/openshift-hello-world\">aplikacji<\/a>, kt\u00f3r\u0105 wrzucali\u015bmy na Openshift, najprostsza aplikacja na SpringBoocie z jednym kontrolerem RESTowym. Jedyn\u0105 doatkow\u0105 rzecz\u0105, kt\u00f3r\u0105 musimy zrobi\u0107 to dodanie pliku <em>application.properties<\/em>, w kt\u00f3rym dodajemy nast\u0119puj\u0105c\u0105 lini\u0119.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">server.port=${PORT:8080}<\/pre>\n\n\n\n<p>Elastic Beanstalk wymaga, aby aplikacja by\u0142a dost\u0119pna na porcie 5000, a domy\u015blnym portem dla aplikacji SpringBoot jest port 8080. Dodaj\u0105c powy\u017csz\u0105 lini\u0119 w konfiguracji dajemy mo\u017cliwo\u015b\u0107 wstrzykni\u0119cia warto\u015bci tej w\u0142asno\u015bci z zewn\u0105trz.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Rejestracja<\/h3>\n\n\n\n<p>Pierwszym krokiem, kt\u00f3ry musimy zrobi\u0107 jest oczywi\u015bcie rejestracja w serwisie Amazona. Samo za\u0142o\u017cenie konta jest darmowe. P\u0142acimy jedynie za u\u017cywanie  us\u0142ug AWSa. Na szcz\u0119\u015bcie cz\u0119\u015b\u0107 funkcjonalno\u015bci jest darmowe do pewnego zu\u017cycia transferu czy innych zasob\u00f3w. I ta darmowa cz\u0119\u015b\u0107 powinna nam starczy\u0107 do deployu prostej aplikacji \ud83d\ude42<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Command Line Interface<\/h3>\n\n\n\n<p>Skoro mamy obs\u0142u\u017cy\u0107 deployment przy pomocy linii komend to zdecydowanie przyda nam si\u0119 CLI dla AWS, a konkretniej m\u00f3wi\u0105c Elastic Beanstalk CLI.  Elastic Beanstalk jest us\u0142ug\u0105 w ramach AWS, na kt\u00f3r\u0105 b\u0119dziemy deployowa\u0107 nasz\u0105 aplikacj\u0119.<\/p>\n\n\n\n<p>Wchodzimy na<a href=\"https:\/\/github.com\/aws\/aws-elastic-beanstalk-cli-setup\"> t\u0119 stron\u0119<\/a>, a nast\u0119pnie korzystamy z za\u0142\u0105czonej instrukcji do instalacji EB CLI. W telegraficznym skr\u00f3cie:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Klonujemy repozytorium EB CLI<br><code>git clone https:\/\/github.com\/aws\/aws-elastic-beanstalk-cli-setup.git<\/code><\/li><li>Instalujemy EB CLI przy pomocy nast\u0119puj\u0105cej komendy:<br><code>.\\aws-elastic-beanstalk-cli-setup\\scripts\\bundled_installer<\/code><\/li><\/ol>\n\n\n\n<p>I to w teorii powinno wystarczy\u0107.<\/p>\n\n\n\n<p>W praktyce wyst\u0105pi\u0142 u mnie nast\u0119puj\u0105cy problem:<br><code>No module named 'virtualenv'<\/code><\/p>\n\n\n\n<p>Na szcz\u0119\u015bci w intrukcji mamy dzia\u0142 Troubleshooting, kt\u00f3ry pomo\u017ce nam w rozwi\u0105zaniu naszych problem\u00f3w \ud83d\ude42<\/p>\n\n\n\n<p>W moim przypadku trzeba by\u0142oby wykona\u0107 poni\u017csze polecenia:<br><code>pip uninstall -y virtualenv<br> pip install virtualenv<br> python .\\aws-elastic-beanstalk-cli-setup\\scripts\\ebcli_installer.py<\/code><\/p>\n\n\n\n<p>Po tych ci\u0119\u017ckich bojach powinni\u015bmy mie\u0107 zainstalowane Elastic Beanstalk CLI.<\/p>\n\n\n\n<p>Dla sprawdzenia wywo\u0142ajmy nast\u0119puj\u0105ce polecenie w linii komend:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">eb --version<\/pre>\n\n\n\n<p>W odpowiedzi powinni\u015bmy uzyska\u0107 informacje o wersji zainstalowanej biblioteki.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">EB CLI 3.15.3 (Python 3.7.3)<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"> AWS Secret Access Keys <\/h3>\n\n\n\n<p>Nadesz\u0142a pora na uwierzytelnienie w AWS. B\u0119dziemy robi\u0107 to za pomoc\u0105 sekretnych kluczy wygenerowanych w AWSie. Jest to rozwi\u0105zanie zdecydowanie bezpieczniejsze ni\u017c podawanie has\u0142a bezpo\u015brednio do naszego pliku konfiguracyjnego.<\/p>\n\n\n\n<p>Aby stworzy\u0107 par\u0119 Access key ID &#8211; Secret Access Key musimy uda\u0107 si\u0119 na <a href=\"https:\/\/console.aws.amazon.com\/iam\/home#\/security_credentials\">t\u0119 stron\u0119<\/a> i wybra\u0107 zak\u0142adk\u0119 <em>Access keys<\/em>.<\/p>\n\n\n\n<p>Nast\u0119pnie klikamy <em>Create New Access Key<\/em> i otrzymujemy nasz\u0105 par\u0119. <\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"736\" height=\"380\" src=\"http:\/\/antek.atthost24.pl\/wp-content\/uploads\/2019\/09\/image-2.png\" alt=\"create Access key ID - Secret Access Key pair\" class=\"wp-image-493\" srcset=\"https:\/\/blog.lantkowiak.pl\/wp-content\/uploads\/2019\/09\/image-2.png 736w, https:\/\/blog.lantkowiak.pl\/wp-content\/uploads\/2019\/09\/image-2-300x155.png 300w, https:\/\/blog.lantkowiak.pl\/wp-content\/uploads\/2019\/09\/image-2-508x262.png 508w\" sizes=\"auto, (max-width: 736px) 100vw, 736px\" \/><figcaption>Tworzenie nowej pary  Access key ID &#8211; Secret Access Key <\/figcaption><\/figure>\n\n\n\n<p>Pami\u0119tajmy, \u017ce jest to <strong>jedyny moment<\/strong> kiedy mo\u017cemy skopiowa\u0107 warto\u015b\u0107 Serect Access Key.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"763\" height=\"299\" src=\"http:\/\/antek.atthost24.pl\/wp-content\/uploads\/2019\/09\/image-1.png\" alt=\"Access key ID - Secret Access Key created\" class=\"wp-image-492\" srcset=\"https:\/\/blog.lantkowiak.pl\/wp-content\/uploads\/2019\/09\/image-1.png 763w, https:\/\/blog.lantkowiak.pl\/wp-content\/uploads\/2019\/09\/image-1-300x118.png 300w, https:\/\/blog.lantkowiak.pl\/wp-content\/uploads\/2019\/09\/image-1-508x199.png 508w\" sizes=\"auto, (max-width: 763px) 100vw, 763px\" \/><figcaption> <strong>Jedyny moment<\/strong> kiedy mo\u017cemy skopiowa\u0107 warto\u015b\u0107 Serect Access Key<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Konfiguracja EB<\/h3>\n\n\n\n<p>Przysz\u0142a pora stworzenie pliku konfiguracyjnego dla Elastic Beanstalk.<\/p>\n\n\n\n<p>Przechodzimy do katalogu z nasz\u0105 aplikacj\u0105 i wykonujemy nast\u0119puj\u0105ce polecenie:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">eb init<\/pre>\n\n\n\n<p>W pierwszej kolejno\u015bci zostaniemy poproszeni o wyb\u00f3r regionu, w kt\u00f3rym ma zosta\u0107 umieszczona nasza aplikacja.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">Select a default region\n 1) us-east-1 : US East (N. Virginia)\n 2) us-west-1 : US West (N. California)\n 3) us-west-2 : US West (Oregon)\n 4) eu-west-1 : EU (Ireland)\n 5) eu-central-1 : EU (Frankfurt)\n 6) ap-south-1 : Asia Pacific (Mumbai)\n 7) ap-southeast-1 : Asia Pacific (Singapore)\n 8) ap-southeast-2 : Asia Pacific (Sydney)\n 9) ap-northeast-1 : Asia Pacific (Tokyo)\n 10) ap-northeast-2 : Asia Pacific (Seoul)\n 11) sa-east-1 : South America (Sao Paulo)\n 12) cn-north-1 : China (Beijing)\n 13) cn-northwest-1 : China (Ningxia)\n 14) us-east-2 : US East (Ohio)\n 15) ca-central-1 : Canada (Central)\n 16) eu-west-2 : EU (London)\n 17) eu-west-3 : EU (Paris)\n 18) eu-north-1 : EU (Stockholm)\n 19) ap-east-1 : Asia Pacific (Hong Kong)\n 20) me-south-1 : Middle East (Bahrain)<\/pre>\n\n\n\n<p>Region w AWS jest miejsce gdzie fizycznie znajduj\u0105 si\u0119 serwery. Jak wida\u0107 na li\u015bcie Amazon posiada sw\u00f3j sprz\u0119t w naprawd\u0119 wielu miejscach \ud83d\ude42 Dla naszych potrzeb wyb\u00f3r konkretnego regionu nie jest specjalnie istotny, ale wybierzmy region, kt\u00f3ry znajduje si\u0119 najbli\u017cej nas &#8211; eu-west-2 : EU (London). W moim przypadku jest to region nr 16.<\/p>\n\n\n\n<p>W nast\u0119pnym kroku b\u0119dziemy musieli poda\u0107 informacje o AWS Secret Keys, kt\u00f3re wygenerowali\u015bmy chwil\u0119 wcze\u015bniej.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">You have not yet set up your credentials or your credentials are incorrect\n You must provide your credentials.\n(aws-access-id):<\/pre>\n\n\n\n<p>Podajemy nasze klucze i idziemy dalej.<\/p>\n\n\n\n<p>Kolejny krok to miejsce gdzie musimy poda\u0107 nazw\u0119 naszej aplikacji.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">Enter Application Name\n (default is \"aws-hello-world\"):<\/pre>\n\n\n\n<p>Mo\u017cemy pozosta\u0107 przy domy\u015blnej nazwie. Zatwierdzamy j\u0105 i idziemy do kolejnego kroku.<\/p>\n\n\n\n<p>Teraz musimy wybra\u0107 j\u0119zyk naszej aplikacji.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">Select a platform.<br>\n1) Node.js<br>\n2) PHP<br>\n3) Python<br>\n4) Ruby<br>\n5) Tomcat<br>\n6) IIS<br>\n7) Docker<br>\n8) Multi-container Docker<br>\n9) GlassFish<br>\n10) Go<br>\n11) Java<br>\n12) Packer<br>\n(default is 1):<\/pre>\n\n\n\n<p>Wybieramy oczywi\u015bcie Java i zatwierdzamy.<\/p>\n\n\n\n<p>Nast\u0119pnie dostaniemy pytanie o wersje Javy.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">Select a platform version.<br>\n1) Java 8<br>\n2) Java 7<br>\n(default is 1):<\/pre>\n\n\n\n<p>Wybieramy zatem po\u017c\u0105dan\u0105 wersje Javy, w naszym przypadku Java 8 \ud83d\ude42<\/p>\n\n\n\n<p>Teraz dostaniemy pytanie o to czy chcemy kontynuowa\u0107 z CodeCommit.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">Do you wish to continue with CodeCommit? (y\/N) (default is n):<\/pre>\n\n\n\n<p>CodeCommit jest serwisem kontroli wersji dostarczonym przez AWS. My nie chcemy z niego korzysta\u0107 w tym momencie, wi\u0119c wybieramy opcj\u0119 domy\u015bln\u0105, czyli 'n&#8217;.<\/p>\n\n\n\n<p>Kolejne pytanie jest o konfiguracje SSH.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">Do you want to set up SSH for your instances?<br>\n(Y\/n):<\/pre>\n\n\n\n<p>Wybieramy 'Y&#8217; po czym b\u0119dziemy musieli wybra\u0107 istniej\u0105c\u0105 par\u0119 kluczy lub stworzy\u0107 now\u0105.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">Select a keypair.<br>\n1) key-pair-lantkowiak<br>\n2) my-ubuntu-key<br>\n3) my-windows-key<br>\n4) [ Create new KeyPair ]<br>\n(default is 3):<\/pre>\n\n\n\n<p>Je\u017celi mamy potworzone klucze to zostan\u0105 one wy\u015bwietlone, \u017ceby\u015bmy mogli z nich skorzysta\u0107. Je\u017celi nie, to pojawi si\u0119 jedynie opcja z tworzeniem nowej pary kluczy. Podejmujemy wyb\u00f3r i zatwierdzamy.<\/p>\n\n\n\n<p>W tym momencie w katalogu naszego projektu zosta\u0142 wygenerowany nast\u0119puj\u0105cy plik: <em>.elasticbeanstalk\\config.yml<\/em>, kt\u00f3ry b\u0119dzi\u0119 wygl\u0105da\u0142 w nast\u0119puj\u0105cy spos\u00f3b:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">branch-defaults:\n  master:\n    environment: null\n    group_suffix: null\nglobal:\n  application_name: aws-hello-world\n  branch: null\n  default_ec2_keyname: my-windows-key\n  default_platform: Java 8\n  default_region: eu-west-2\n  include_git_submodules: true\n  instance_profile: null\n  platform_name: null\n  platform_version: null\n  profile: eb-cli\n  repository: null\n  sc: git\n  workspace_type: Application\n<\/pre>\n\n\n\n<p>Jak mo\u017cemy zobaczy\u0107 jest to plik, kt\u00f3ry zawiera g\u0142\u00f3wnie rzeczy, kt\u00f3re przed chwil\u0105 konfigurowali\u015bmy.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Budowanie i JAR do chmury<\/h3>\n\n\n\n<p>Zbudujmy teraz nasz\u0105 aplikacje. To, na czym nam dok\u0142adnie zale\u017cy to uzyskania JARa, kt\u00f3ry b\u0119dziemy deployowa\u0107. Wykonajmy zatem nast\u0119puj\u0105ce polecenie mavenowe:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">mvn clean package<\/pre>\n\n\n\n<p>To powinno zbudowa\u0107 nam nasz\u0105 paczk\u0119, kt\u00f3r\u0105 znajdziemy pod t\u0105 lokalizacj\u0105: <code>target\\hello-world-0.0.1-SNAPSHOT.jar<\/code>.<\/p>\n\n\n\n<p>W tym momencie musimy delikatnie zmodyfikowa\u0107 plik konfiguracyjny EB i doda\u0107 informacje o tym, gdzie znajduje JAR, kt\u00f3ry b\u0119dzie deployowany. Robimy to przy pomocy takiego parametru:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">deploy:\n  artifact: target\/hello-world-0.0.1-SNAPSHOT.jar<\/pre>\n\n\n\n<p>Wi\u0119c nasz plik w tym momencie b\u0119dzie mia\u0142 tak\u0105 posta\u0107:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">branch-defaults:\n  master:\n    environment: null\n    group_suffix: null\nglobal:\n  application_name: aws-hello-world\n  branch: null\n  default_ec2_keyname: my-windows-key\n  default_platform: Java 8\n  default_region: eu-west-2\n  include_git_submodules: true\n  instance_profile: null\n  platform_name: null\n  platform_version: null\n  profile: eb-cli\n  repository: null\n  sc: git\n  workspace_type: Application\ndeploy:\n  artifact: target\/hello-world-0.0.1-SNAPSHOT.jar\n<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Tworzenie instancji i deploy<\/h3>\n\n\n\n<p>W ko\u0144cu przyszed\u0142 moment, kiedy b\u0119dziemy mogli stworzy\u0107 instancje EB i wrzuci\u0107 na ni\u0105 nasz\u0105 aplikacj\u0119.<\/p>\n\n\n\n<p>W pierwszej kolejno\u015bci stw\u00f3rzmy \u015brodowisko Elastic Beanstalka. Do tego celu wykorzystamy poni\u017csz\u0105 komend\u0119:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">eb create --single<\/pre>\n\n\n\n<p>Dostaniemy pytania o nazw\u0119 \u015brodowiska oraz DNS CNAME. Obie warto\u015bci mo\u017cemy w tym mo\u017cemy zostawi\u0107 domy\u015blne.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">Enter Environment Name<br>\n(default is aws-hello-world-dev):<br>\nEnter DNS CNAME prefix<br>\n(default is aws-hello-world-dev):<\/pre>\n\n\n\n<p>Po zatwierdzeniu nast\u0105pi tworzenie \u015brodowiska oraz upload naszej aplikacji. Czynno\u015b\u0107 ta mo\u017ce potrwa\u0107 kilka minut \ud83d\ude42<\/p>\n\n\n\n<p>Gdy akcja si\u0119 zako\u0144czy nasza aplikacja powinna by\u0107 zdeployowana i gotowa do u\u017cytku \ud83d\ude42<\/p>\n\n\n\n<p>Aby to sprawdzi\u0107 wystarczy, \u017ce wykowo\u0142amy poni\u017csz\u0105 komend\u0119 w terminalu:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">eb open<\/pre>\n\n\n\n<p>Powinna nam si\u0119 otworzy\u0107 nasza przegl\u0105darka z adresem gdzie nasza aplikacja zosta\u0142a zdeployowana, a z naszej aplikacji powini\u015bmy dosta\u0107 ciep\u0142e przywitanie \ud83d\ude42<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"467\" height=\"116\" src=\"http:\/\/antek.atthost24.pl\/wp-content\/uploads\/2019\/09\/image-4.png\" alt=\"Powitanie z naszej aplikacji\" class=\"wp-image-501\" srcset=\"https:\/\/blog.lantkowiak.pl\/wp-content\/uploads\/2019\/09\/image-4.png 467w, https:\/\/blog.lantkowiak.pl\/wp-content\/uploads\/2019\/09\/image-4-300x75.png 300w\" sizes=\"auto, (max-width: 467px) 100vw, 467px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Podsumowanie<\/h3>\n\n\n\n<p>Dzisiaj przebyli\u015bmy do\u015b\u0107 d\u0142ug\u0105 drog\u0119, aby zdeployowa\u0107 nasz\u0105 aplikacj\u0119 na AWS. Na szcz\u0119\u015bcie droga ta zako\u0144czy\u0142a si\u0119 pe\u0142nym sukcesem \ud83d\ude42<\/p>\n\n\n\n<p>Na pierwszy rzut oka mo\u017cna stwierdzi\u0107, \u017ce deployment aplikacji wymaga troch\u0119 wi\u0119cej konfiguracji ni\u017c w przypadku Opensfita, ale musimy pami\u0119ta\u0107 te\u017c, \u017ce AWS dostarcza nam o wiele wi\u0119ksz\u0105 funkcjonalno\u015b\u0107.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Jaki\u015b czas temu zajmowali\u015bmy si\u0119 deployem aplikacji na OpenShift. Dzisiaj zrobimy to samo, ale na najpopularniejszej chmurze, czyli AWS. Sam deployment, podobnie jak w przypadku OpenShift, zrobimy za&#8230;<\/p>\n","protected":false},"author":1,"featured_media":504,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[38,7],"tags":[37,35,34,39,8],"class_list":["post-485","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-aws","category-java","tag-aws","tag-chmura","tag-cloud","tag-deployment","tag-java"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Deploy aplikacji na AWS - Lukasz Antkowiak&#039;s blog<\/title>\n<meta name=\"description\" content=\"Krok po kroku przejdziemy proces, kt\u00f3ry zako\u0144czy si\u0119 deploymentem naszej aplikacji na AWS. Ca\u0142y deployment wykonamy przy u\u017cyciu linii komend.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.lantkowiak.pl\/index.php\/2019\/09\/22\/deploy-aplikacji-na-aws\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Deploy aplikacji na AWS - Lukasz Antkowiak&#039;s blog\" \/>\n<meta property=\"og:description\" content=\"Krok po kroku przejdziemy proces, kt\u00f3ry zako\u0144czy si\u0119 deploymentem naszej aplikacji na AWS. Ca\u0142y deployment wykonamy przy u\u017cyciu linii komend.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.lantkowiak.pl\/index.php\/2019\/09\/22\/deploy-aplikacji-na-aws\/\" \/>\n<meta property=\"og:site_name\" content=\"Lukasz Antkowiak&#039;s blog\" \/>\n<meta property=\"article:published_time\" content=\"2019-09-22T12:33:55+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-09-22T12:33:57+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blog.lantkowiak.pl\/wp-content\/uploads\/2019\/09\/aws_deploy.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1280\" \/>\n\t<meta property=\"og:image:height\" content=\"579\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"\u0141ukasz Antkowiak\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Napisane przez\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u0141ukasz Antkowiak\" \/>\n\t<meta name=\"twitter:label2\" content=\"Szacowany czas czytania\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minut\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blog.lantkowiak.pl\/index.php\/2019\/09\/22\/deploy-aplikacji-na-aws\/\",\"url\":\"https:\/\/blog.lantkowiak.pl\/index.php\/2019\/09\/22\/deploy-aplikacji-na-aws\/\",\"name\":\"Deploy aplikacji na AWS - Lukasz Antkowiak&#039;s blog\",\"isPartOf\":{\"@id\":\"https:\/\/blog.lantkowiak.pl\/#website\"},\"datePublished\":\"2019-09-22T12:33:55+00:00\",\"dateModified\":\"2019-09-22T12:33:57+00:00\",\"author\":{\"@id\":\"https:\/\/blog.lantkowiak.pl\/#\/schema\/person\/009bfc4db220c225786c59b1748ba1e6\"},\"description\":\"Krok po kroku przejdziemy proces, kt\u00f3ry zako\u0144czy si\u0119 deploymentem naszej aplikacji na AWS. Ca\u0142y deployment wykonamy przy u\u017cyciu linii komend.\",\"breadcrumb\":{\"@id\":\"https:\/\/blog.lantkowiak.pl\/index.php\/2019\/09\/22\/deploy-aplikacji-na-aws\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.lantkowiak.pl\/index.php\/2019\/09\/22\/deploy-aplikacji-na-aws\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.lantkowiak.pl\/index.php\/2019\/09\/22\/deploy-aplikacji-na-aws\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\/\/blog.lantkowiak.pl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Deploy aplikacji na AWS\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blog.lantkowiak.pl\/#website\",\"url\":\"https:\/\/blog.lantkowiak.pl\/\",\"name\":\"Lukasz Antkowiak&#039;s blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blog.lantkowiak.pl\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"pl-PL\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/blog.lantkowiak.pl\/#\/schema\/person\/009bfc4db220c225786c59b1748ba1e6\",\"name\":\"\u0141ukasz Antkowiak\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/blog.lantkowiak.pl\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/e18e2bfe319da9b5757cf7f7ae1bfecf?s=96&d=monsterid&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/e18e2bfe319da9b5757cf7f7ae1bfecf?s=96&d=monsterid&r=g\",\"caption\":\"\u0141ukasz Antkowiak\"},\"description\":\"dd\",\"url\":\"https:\/\/blog.lantkowiak.pl\/index.php\/author\/antek\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Deploy aplikacji na AWS - Lukasz Antkowiak&#039;s blog","description":"Krok po kroku przejdziemy proces, kt\u00f3ry zako\u0144czy si\u0119 deploymentem naszej aplikacji na AWS. Ca\u0142y deployment wykonamy przy u\u017cyciu linii komend.","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:\/\/blog.lantkowiak.pl\/index.php\/2019\/09\/22\/deploy-aplikacji-na-aws\/","og_locale":"pl_PL","og_type":"article","og_title":"Deploy aplikacji na AWS - Lukasz Antkowiak&#039;s blog","og_description":"Krok po kroku przejdziemy proces, kt\u00f3ry zako\u0144czy si\u0119 deploymentem naszej aplikacji na AWS. Ca\u0142y deployment wykonamy przy u\u017cyciu linii komend.","og_url":"https:\/\/blog.lantkowiak.pl\/index.php\/2019\/09\/22\/deploy-aplikacji-na-aws\/","og_site_name":"Lukasz Antkowiak&#039;s blog","article_published_time":"2019-09-22T12:33:55+00:00","article_modified_time":"2019-09-22T12:33:57+00:00","og_image":[{"width":1280,"height":579,"url":"https:\/\/blog.lantkowiak.pl\/wp-content\/uploads\/2019\/09\/aws_deploy.png","type":"image\/png"}],"author":"\u0141ukasz Antkowiak","twitter_card":"summary_large_image","twitter_misc":{"Napisane przez":"\u0141ukasz Antkowiak","Szacowany czas czytania":"7 minut"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/blog.lantkowiak.pl\/index.php\/2019\/09\/22\/deploy-aplikacji-na-aws\/","url":"https:\/\/blog.lantkowiak.pl\/index.php\/2019\/09\/22\/deploy-aplikacji-na-aws\/","name":"Deploy aplikacji na AWS - Lukasz Antkowiak&#039;s blog","isPartOf":{"@id":"https:\/\/blog.lantkowiak.pl\/#website"},"datePublished":"2019-09-22T12:33:55+00:00","dateModified":"2019-09-22T12:33:57+00:00","author":{"@id":"https:\/\/blog.lantkowiak.pl\/#\/schema\/person\/009bfc4db220c225786c59b1748ba1e6"},"description":"Krok po kroku przejdziemy proces, kt\u00f3ry zako\u0144czy si\u0119 deploymentem naszej aplikacji na AWS. Ca\u0142y deployment wykonamy przy u\u017cyciu linii komend.","breadcrumb":{"@id":"https:\/\/blog.lantkowiak.pl\/index.php\/2019\/09\/22\/deploy-aplikacji-na-aws\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.lantkowiak.pl\/index.php\/2019\/09\/22\/deploy-aplikacji-na-aws\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/blog.lantkowiak.pl\/index.php\/2019\/09\/22\/deploy-aplikacji-na-aws\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/blog.lantkowiak.pl\/"},{"@type":"ListItem","position":2,"name":"Deploy aplikacji na AWS"}]},{"@type":"WebSite","@id":"https:\/\/blog.lantkowiak.pl\/#website","url":"https:\/\/blog.lantkowiak.pl\/","name":"Lukasz Antkowiak&#039;s blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.lantkowiak.pl\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"pl-PL"},{"@type":"Person","@id":"https:\/\/blog.lantkowiak.pl\/#\/schema\/person\/009bfc4db220c225786c59b1748ba1e6","name":"\u0141ukasz Antkowiak","image":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/blog.lantkowiak.pl\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/e18e2bfe319da9b5757cf7f7ae1bfecf?s=96&d=monsterid&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/e18e2bfe319da9b5757cf7f7ae1bfecf?s=96&d=monsterid&r=g","caption":"\u0141ukasz Antkowiak"},"description":"dd","url":"https:\/\/blog.lantkowiak.pl\/index.php\/author\/antek\/"}]}},"_links":{"self":[{"href":"https:\/\/blog.lantkowiak.pl\/index.php\/wp-json\/wp\/v2\/posts\/485","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.lantkowiak.pl\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.lantkowiak.pl\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.lantkowiak.pl\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.lantkowiak.pl\/index.php\/wp-json\/wp\/v2\/comments?post=485"}],"version-history":[{"count":14,"href":"https:\/\/blog.lantkowiak.pl\/index.php\/wp-json\/wp\/v2\/posts\/485\/revisions"}],"predecessor-version":[{"id":505,"href":"https:\/\/blog.lantkowiak.pl\/index.php\/wp-json\/wp\/v2\/posts\/485\/revisions\/505"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.lantkowiak.pl\/index.php\/wp-json\/wp\/v2\/media\/504"}],"wp:attachment":[{"href":"https:\/\/blog.lantkowiak.pl\/index.php\/wp-json\/wp\/v2\/media?parent=485"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.lantkowiak.pl\/index.php\/wp-json\/wp\/v2\/categories?post=485"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.lantkowiak.pl\/index.php\/wp-json\/wp\/v2\/tags?post=485"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}