{"id":2736,"date":"2019-06-03T19:55:09","date_gmt":"2019-06-03T17:55:09","guid":{"rendered":"http:\/\/miro.borodziuk.eu\/?p=2736"},"modified":"2020-02-18T19:52:42","modified_gmt":"2020-02-18T18:52:42","slug":"virtual-private-cloud","status":"publish","type":"post","link":"http:\/\/miro.borodziuk.eu\/index.php\/2019\/06\/03\/virtual-private-cloud\/","title":{"rendered":"Virtual Private Cloud"},"content":{"rendered":"<p>What Is a Virtual Private Cloud?<\/p>\n<ul>\n<li>A VPC resembles private data centers or corporate networks<\/li>\n<li>Scalable infrastructure<\/li>\n<li>Ability to extend corporate\/home network to the cloud as if it were part of your network<\/li>\n<\/ul>\n<p><!--more--><\/p>\n<p>Virtual Private Cloud (VPC):<\/p>\n<ul>\n<li>A private network within AWS. It&#8217;s your private data center inside the AWS platform.<\/li>\n<li>Can be configured to be public\/private or a mixture<\/li>\n<li>Regional (can&#8217;t span regions), highly available, and can be connected to your data center and corporate networks<\/li>\n<li>Isolated from other VPCs by default<\/li>\n<li>VPC and subnet:<strong> max \/16<\/strong> (65,536 IPs) and <strong>min \/28<\/strong> (16 IPs)<\/li>\n<li>VPC subnets can&#8217;t span AZs (1:1 mapping)<\/li>\n<li>Certain IPs are reserved in subnets (see architecture diagram)<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2746\" src=\"http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/VPC.jpg\" alt=\"\" width=\"625\" height=\"764\" srcset=\"http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/VPC.jpg 625w, http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/VPC-245x300.jpg 245w\" sizes=\"(max-width: 625px) 100vw, 625px\" \/><\/p>\n<p>Region Default VPC:<\/p>\n<ul>\n<li>Required for some services, used as a default for most<\/li>\n<li>Pre-configured with all required networking\/security<\/li>\n<li>Configured using a<strong> \/16<\/strong> CIDR block (<strong>172.31.0.0\/16<\/strong>)<\/li>\n<li>A<strong> \/20<\/strong> public subnet in each AZ, allocating a public IP by default<\/li>\n<li>Attached Internet gateway with a &#8220;main&#8221; route table sending all IPv4 traffic to the Internet gateway using a 0.0.0.0\/0 route<\/li>\n<li>A default DHCP option set attached.<\/li>\n<li>SG: Default \u2014<strong> all from itself, all outbound<\/strong><\/li>\n<li>NACL: Default \u2014 <strong>allow all inbound and outbound<\/strong><\/li>\n<\/ul>\n<p>Understanding the Default VPC:<\/p>\n<ul>\n<li>Size \/16 CIDR block (172.31.0.0\/16)<\/li>\n<li>Default subnet in each AZ using \/20 subnet mask<\/li>\n<li>Internet gateway<\/li>\n<li>Main route table sending all IPv4 traffic for 0.0.0.0\/0 to the Internet gateway<\/li>\n<li>Default security group allowing all traffic<\/li>\n<li>Default network ACL (NACL) allowing all traffic<\/li>\n<li>Default DHCP option set<\/li>\n<\/ul>\n<p>VPC IP Reservations:<\/p>\n<p>AWS reserves the first four IP and the last IP addresses. In a 10.0.0.0\/24, the fol-lowing IPs are reserved:<\/p>\n<ul>\n<li>10.0.0.0: Network address<\/li>\n<li>10.0.0.1: Reserved by AWS for the Amazon VPC router<\/li>\n<li>10.0.0.2: Reserved by AWS. The IP address of the DNS server is always the base of the Amazon VPC network range; however, the base of each subnet range is also reserved.<\/li>\n<li>10.0.0.3: Reserved by AWS for future use<\/li>\n<li>10.0.0.255: Network broadcast address. AWS does not support broadcast in an Ania\/on VPC; therefore, they reserve this address.<\/li>\n<\/ul>\n<p>Custom VPC:<\/p>\n<ul>\n<li>Can be designed and configured in any valid way<\/li>\n<li>You need to allocate IP ranges, create subnets, and provision gateways and networking, as well as design and implement security.<\/li>\n<li>When you need multiple tiers or a more complex set of networking<\/li>\n<li>Best practice is to not use default for most production things<\/li>\n<\/ul>\n<p>VPC Implementation:<\/p>\n<ul>\n<li>Logically isolated from other networks on AWS<\/li>\n<li>VPCs can&#8217;t span regions<\/li>\n<li>Size can range from \/16 to a \/28 netmask (65,536 to 16 IP addresses)<\/li>\n<li>Subnets can&#8217;t span Availability Zones<\/li>\n<\/ul>\n<p>Benefits of a VPC:<\/p>\n<ul>\n<li>Ability to launch instances into a subnet<\/li>\n<li>Ability to define custom IP address ranges inside of each subnet (private and public subnets)<\/li>\n<li>Ability to configure route tables between subnets<\/li>\n<li>Ability to configure Internet gateways and attach them to subnets<\/li>\n<li>Ability to create a layered network of resources<\/li>\n<li>Extending our network with VPN\/VPG controlled access<\/li>\n<li>Ability to use security groups and subnet network ACLs<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2737 aligncenter\" src=\"http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/VPC1.jpg\" alt=\"\" width=\"604\" height=\"656\" srcset=\"http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/VPC1.jpg 604w, http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/VPC1-276x300.jpg 276w\" sizes=\"(max-width: 604px) 100vw, 604px\" \/><\/p>\n<p>VPC Scenarios:<\/p>\n<ul>\n<li>VPC with public subnet only: Single-tier apps<\/li>\n<li>VPC with public and private subnets: Resources that don&#8217;t need public Internet access\/layered apps<\/li>\n<li>VPC with public and private subnets and hardware-connected VPN: Extending to on-premises<\/li>\n<li>VPC with a private subnet only and hardware VPN access<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>VPC Routing:<\/p>\n<ul>\n<li>Every VPC has a virtual routing device called the VPC router.<\/li>\n<li>It has an interface in any VPC subnet known as the &#8220;subnet+1&#8221; address \u2014 for 10.0.1.0\/24, this would be 10.0.1.1\/32.<\/li>\n<li>The router is highly available, scalable, and controls data entering and leaving the VPC and its subnets.<\/li>\n<li>Each VPC has a &#8220;main&#8221; route table, which is allocated to all subnets in the VPC by default. A subnet must have one route table.<\/li>\n<li>Additional &#8220;custom&#8221; route tables can be created and associated with subnets \u2014 but only<strong> one<\/strong> route table (RT) per subnet.<\/li>\n<li>A route table controls what the VPC router does with traffic leaving a subnet.<\/li>\n<li>An Internet gateway is created and attached to a VPC (1:1). It can route traffic for public IPs to and from the Internet.<\/li>\n<\/ul>\n<p>Routes:<\/p>\n<ul>\n<li>A RT is a collection of routes that are used when traffic from a subnet arrives at the VPC router.<\/li>\n<li>Every route table has a local route, which matches the CIDR of the VPC and lets traffic be routed between subnets.<\/li>\n<li>A route contains a destination and a target. Traffic is forwarded to the target if its destination matches the route destination.<\/li>\n<li>If multiple routes apply, the most specific is chosen. A \/32 is chosen before a \/24, before a \/16.<\/li>\n<li>Default routes (0.0.0.0\/0 v4 and ::\/0 v6) can be added that match any traffic not already matched.<\/li>\n<li>Targets can be IPs or AWS networking gateways\/objects<\/li>\n<li>A subnet is a public subnet if it is\n<ul>\n<li>(1) configured to allocate public IPs,<\/li>\n<li>(2) if the VPC has an associated Internet gateway, and<\/li>\n<li>(3) if that subnet has a default route to that Internet gateway.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2747 aligncenter\" src=\"http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/VPCrounting.jpg\" alt=\"\" width=\"628\" height=\"765\" srcset=\"http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/VPCrounting.jpg 628w, http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/VPCrounting-246x300.jpg 246w\" sizes=\"(max-width: 628px) 100vw, 628px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>VPC peering allows you to set up direct network routing between different VPCs using private IP addresses.<\/p>\n<ul>\n<li>Instances will communicate with each other as if they were on the same private network.<\/li>\n<li>VPC peering can occur between different AWS accounts as well as VPCs in other regions using Inter-Region VPC Peering.<\/li>\n<li>All inter-region traffic is encrypted.<\/li>\n<li>Traffic remains on the global AWS backbone.<\/li>\n<\/ul>\n<p>Scenarios:<\/p>\n<ul>\n<li>Peering two VPCs: Company runs multiple AWS accounts and you need to link all the resources as if they were all under one private network<\/li>\n<li>Peering to a VPC: Multiple VPCs connect to a central VPC, but they can only communicate with the central VPC (file sharing, customer access, Active Directory) and not each other.<\/li>\n<\/ul>\n<p>Limitations:<\/p>\n<ul>\n<li>Can&#8217;t peer VPC with matching or overlapping CIDR blocks<\/li>\n<li>VPC peering connections are 1:1 between VPCs \u2014 transitive peering is not supported (see Transit Gateway)<\/li>\n<li>One peering connection between the same two VPCs<\/li>\n<li>Tags applied to the peering connection are only applied in the account and region in which you create them<\/li>\n<li>Security groups can&#8217;t reference peer VPC security groups across regions<\/li>\n<li>IPv6 across regions is not supported<\/li>\n<li>DNS resolution for private hostnames must be enabled manually. If in different accounts, must be enabled in both accounts<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2743 aligncenter\" src=\"http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/VPC2.jpg\" alt=\"\" width=\"612\" height=\"230\" srcset=\"http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/VPC2.jpg 612w, http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/VPC2-300x113.jpg 300w\" sizes=\"(max-width: 612px) 100vw, 612px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>VPC Flow Logs allows you to capture metadata about IP traffic going in and out of your network interfaces.<\/p>\n<ul>\n<li>Data is stored in CloudWatch Logs;\u00a0 Each network interface has a unique log stream<\/li>\n<li>Can be created for a VPC, subnet, or network interface; When choosing VPC, each network interface and subnet in that VPC is monitored<\/li>\n<li>Flow log records consist of fields describing the traffic for that network interface<\/li>\n<li>For security reasons, EC2 instances can&#8217;t receive or sniff traffic destined for a different instance<\/li>\n<li>Delay of several minutes \u2014 flow logs do not capture real-time log streams<\/li>\n<li>Ability to create multiple flow logs per interface (e.g., accepted vs. rejected traffic)<\/li>\n<li>Launching new EC2 instances after creating flow logs will automatically create logs for each new network interface<\/li>\n<li>Create flow logs for network interfaces created by other AWS services: Elastic Load Balancing, Amazon RDS, Amazon ElastiCache, Amazon Redshift, Amazon WorkSpaces<\/li>\n<\/ul>\n<p>Flow Log Record Syntax:<\/p>\n<ul>\n<li>version<\/li>\n<li>account-id<\/li>\n<li>interface-id<\/li>\n<li>srcaddr<\/li>\n<li>dstaddr<\/li>\n<li>srcport<\/li>\n<li>dstport<\/li>\n<li>protocol<\/li>\n<li>packets<\/li>\n<li>bytes<\/li>\n<li>start<\/li>\n<li>end<\/li>\n<li>action<\/li>\n<li>log-status<\/li>\n<\/ul>\n<p>What&#8217;s NOT Logged:<\/p>\n<ul>\n<li>Amazon DNS server traffic<\/li>\n<li>Amazon Windows license activation<\/li>\n<li>Instance metadata to\/from 169.254.169.254<\/li>\n<li>Amazon Time Sync to\/from 169.254.169.123<\/li>\n<li>DHCP traffic<\/li>\n<li>Traffic to\/from the default VPC router reserved IP address<\/li>\n<li>Traffic between an endpoint network interface and a Network Load Balancer network interface<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>Bastion Hosts (or Jumpboxes):<\/p>\n<ul>\n<li>A host that sits at the perimeter of a VPC<\/li>\n<li>It functions as an entry point to the VPC for trusted admins.<\/li>\n<li>Allows for updates or configuration tweaks remotely while allowing the VPC to stay private and protected<\/li>\n<li>Generally connected to via SSH (Linux) or RDP (Windows)<\/li>\n<li>Bastion hosts must be kept updated, and security hardened and audited regularly<\/li>\n<li>Multifactor authentication, ID federation, and\/or IP blocks.<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2749 aligncenter\" src=\"http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/BastionHost-1.jpg\" alt=\"\" width=\"592\" height=\"491\" srcset=\"http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/BastionHost-1.jpg 592w, http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/BastionHost-1-300x249.jpg 300w\" sizes=\"(max-width: 592px) 100vw, 592px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>Network Access Control Lists (NACLs):<\/p>\n<ul>\n<li>NACLs operate at <strong>Layer 4<\/strong> of the OSI model (TCP\/UDP and below).<\/li>\n<li>A subnet has to be associated with a NACL \u2014 either the VPC default or a custom NACL.<\/li>\n<li>NACLs only impact traffic crossing the boundary of a subnet.<\/li>\n<li>NACLs are collections of rules that can explicitly allow or deny traffic based on its protocol, port range, and source\/destination.<\/li>\n<li>Rules are processed in number order, <strong>lowest first<\/strong>. When a match is found, that action is taken and processing stops.<\/li>\n<li>The &#8220;*&#8221; rule is processed last and is an implicit <strong>deny<\/strong>.<\/li>\n<li>NACLs have two sets of rules: inbound and outbound.<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2757 aligncenter\" src=\"http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/NACL2.jpg\" alt=\"\" width=\"616\" height=\"699\" srcset=\"http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/NACL2.jpg 616w, http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/NACL2-264x300.jpg 264w\" sizes=\"(max-width: 616px) 100vw, 616px\" \/><\/p>\n<p><span style=\"color: #3366ff;\">Ephemeral Ports:<\/span><\/p>\n<ul>\n<li>When a client initiates communications with a server, it is to a well-known port number (e.g., tcp\/443) on that server.<\/li>\n<li>The response is from that well-known port to an ephemeral port on the client. The client decides the port.<\/li>\n<li>NACLs are stateless, they have to consider both initiating and response traffic \u2014 state is a session-layer concept.<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2755 aligncenter\" src=\"http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/NACL.jpg\" alt=\"\" width=\"590\" height=\"211\" srcset=\"http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/NACL.jpg 590w, http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/NACL-300x107.jpg 300w\" sizes=\"(max-width: 590px) 100vw, 590px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #3366ff;\">VPC Peering<\/span>:<\/p>\n<ul>\n<li>Allows direct communication between VPCs.<\/li>\n<li>Services can communicate using private IPs from VPC to VPC.<\/li>\n<li>VPC peers can <strong>span AWS accounts<\/strong> and <strong>even regions<\/strong> (with some limitations).<\/li>\n<li>Data is <strong>encrypted<\/strong> and transits via the AWS global backbone.<\/li>\n<li>VPC peers are used to link two VPCs at layer 3: company mergers, shared services, company and vendor, auditing.<\/li>\n<\/ul>\n<p>Important Limits and Considerations:<\/p>\n<ul>\n<li>VPC CIDR blocks <strong>cannot over lap<\/strong>.<\/li>\n<li>VPC peers connect <strong>two VPCs<\/strong> \u2014 routing is<strong> not transitive<\/strong>.<\/li>\n<li>Routes are required at both sides (remote CIDR -&gt; peer connection).<\/li>\n<li>NACLs and SGs can be used to control access.<\/li>\n<li>SGs can be referenced but not cross-region.<\/li>\n<li><strong>IPv6<\/strong> support is <strong>not available cross-region<\/strong>.<\/li>\n<li>DNS resolution to private IPs can be enabled, but it&#8217;s a setting needed at both sides.<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2759 aligncenter\" src=\"http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/VPCPeering.jpg\" alt=\"\" width=\"601\" height=\"302\" srcset=\"http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/VPCPeering.jpg 601w, http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/VPCPeering-300x151.jpg 300w\" sizes=\"(max-width: 601px) 100vw, 601px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #3366ff;\">VPC endpoints<\/span> are gateway objects created within a VPC. They can be used to connect to AWS public services without the need for the VPC to have an attached Internet gateway and be public.<\/p>\n<p>VPC Endpoint Types:<\/p>\n<ul>\n<li>Gateway endpoints: Can be used for DynamoDB and S3<\/li>\n<li>Interface endpoints: Can be used for everything else (e.g., SNS, SQS)<\/li>\n<\/ul>\n<p>When to Use a VPC Endpoint:<\/p>\n<ul>\n<li>If the entire VPC is private with no IGW<\/li>\n<li>If a specific instance has no public IP\/NATGW and needs to access public services<\/li>\n<li>To access resources restricted to specific VPCs or endpoints (private S3 bucket)<\/li>\n<\/ul>\n<p>Limitations and Considerations:<\/p>\n<ul>\n<li>Gateway endpoints are used via route table entries \u2014 they are gateway devices. Prefix lists for a service are used in the destination field with the gateway as the target.<\/li>\n<li>Gateway endpoints can be restricted via policies.<\/li>\n<li>Gateway endpoints are HA across AZs in a region.<\/li>\n<li>Interface endpoints are interfaces in a specific subnet. For HA, you need to add multiple interfaces \u2014 one per AZ.<\/li>\n<li>Interface endpoints are controlled via SGs on that interface. NACLs also impact traffic.<\/li>\n<li>Interface endpoints add or replace the DNS for the service \u2014 no route table updates are required.<\/li>\n<li>Code changes to use the endpoint DNS, or enable private DNS to override the default service DNS.<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2760 aligncenter\" src=\"http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/EndPoint.jpg\" alt=\"\" width=\"688\" height=\"825\" srcset=\"http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/EndPoint.jpg 688w, http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/EndPoint-250x300.jpg 250w\" sizes=\"(max-width: 688px) 100vw, 688px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #3366ff;\">IP version 6<\/span> (IPv6) is supported within AWS but not across every product and not with every feature.<\/p>\n<p>IPv6 VPC Setup:<\/p>\n<ul>\n<li>It is currently <strong>opt-in<\/strong> \u2014 it is <strong>disabled<\/strong> by default.<\/li>\n<li>To use it, the first step is to request an IPv6 allocation. Each VPC is allocated a <strong>\/56<\/strong> CIDR from the AWS pool \u2014 this<strong> cannot be adjusted<\/strong>.<\/li>\n<li>With the VPC IPv6 range allocated, subnets can be allocated a<strong> \/64<\/strong> CIDR from within the<strong> \/56<\/strong> range.<\/li>\n<li>Resources launched into a subnet with an IPv6 range can be allocated a IPv6 address via DHCP6.<\/li>\n<\/ul>\n<p>Limitations and Considerations:<\/p>\n<ul>\n<li>DNS names are not allocated to IPv6 addresses.<\/li>\n<li>IPv6 addresses are all publicly routable \u2014 there is no concept of private vs. public with IPv6 (unlike IPv4 addresses).<\/li>\n<li>With IPv6, the OS is configured with this public address via DHCP6.<\/li>\n<li>Elastic IPs aren&#8217;t relevant with IPv6.<\/li>\n<li>Not currently supported for VPNs, customer gateways, and VPC endpoints.<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2762 aligncenter\" src=\"http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/VPCIPv6.jpg\" alt=\"\" width=\"673\" height=\"823\" srcset=\"http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/VPCIPv6.jpg 673w, http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/VPCIPv6-245x300.jpg 245w\" sizes=\"(max-width: 673px) 100vw, 673px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #3366ff;\">Egress-only Internet gateways<\/span> provide IPv6 instances with outgoing access to the public Internet using IPv6 but prevent the instances from being accessed from the Internet.<\/p>\n<p>NAT isn&#8217;t required with IPv6, and so NATGW&#8217;s aren&#8217;t compatible with IPv6. Egress-only gateways provide the outgoing-only access of a NATGW but do so without adjusting any IP addresses.<\/p>\n<p>Architecturally, they are otherwise the same as an IGW.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2763 aligncenter\" src=\"http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/EgresIGW.jpg\" alt=\"\" width=\"616\" height=\"507\" srcset=\"http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/EgresIGW.jpg 616w, http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/EgresIGW-300x247.jpg 300w\" sizes=\"(max-width: 616px) 100vw, 616px\" \/><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>What Is a Virtual Private Cloud? A VPC resembles private data centers or corporate networks Scalable infrastructure Ability to extend corporate\/home network to the cloud as if it were part of your network<\/p>\n","protected":false},"author":1,"featured_media":2738,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[78],"tags":[],"_links":{"self":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts\/2736"}],"collection":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/comments?post=2736"}],"version-history":[{"count":16,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts\/2736\/revisions"}],"predecessor-version":[{"id":3338,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts\/2736\/revisions\/3338"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/media\/2738"}],"wp:attachment":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/media?parent=2736"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/categories?post=2736"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/tags?post=2736"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}