title: AWS + Springboot + Microservices + Elastic BeanStalk + API Gateway + DynamoDB
body: <p>I have 4 SpringBoot microservices using DynamoDB. They have some endpoints that need to be public for my application to work and some endpoints that are supposed to be for internal communication between the services. What is the best architecture to achieve this?</p>
  
  <p>In general I was thinking something like:</p>
  
  <ul>
  <li>API Gateway that has the externally available endpoints</li>
  <li>Private VPC</li>
  <li>microservices deployed on Elastic BeanStalk in the internal VPC</li>
  </ul>
  
  <p>What is best way to configure the above so the services can access DynamoDB and also call each other. But the clients can only call specific endpoints defined in the API GW?</p>