JHipster Registry on AWS Kubernetes does not display the Swagger API - amazon-web-services

On my side, I have built two microservices and a gateway with JHipster.
When I build and deploy the docker files on my laptop and I access to the Registry (localhost:8761), I have well access to the Swagger API of my microservices.
However, when I deploy the same docker files on Elastic Kubernetes Service (AWS) by following this process:
- jhipster kubernetes ...
https://medium.com/#barryvredevoort/deploying-jhipster-microservices-on-aws-eks-elastic-container-service-for-kubernetes-d8ec77f5a9
I do not have the API menu to access the Swagger file with the JHipster registry.
Thank you in advance for your assistance and understand why

Related

Is it worth moving from Spring Config Server with Git to AWS parameter Store?

We are planning to move some springboot (2.1.3) apps to AWS ECS. Currently we are setting application properties in a github repo and serving them through a Spring Cloud Config Server. All of these services are running on premises. I was wondering if we should stick to the cloud config server and the github repo as the back or maybe move to something else, like AWS parameter store.

Spring boot microservice( Api Gatway) on aws

and trying to deploy micro-services build in spring boot on aws but didn't know which aws service is suitable for perticular spring micro-service(Could Config, Service Discovery, Api Gatway, and vault).
I build an api gateway service on spring boot, but when it comes to deployment on aws i got confused with the aws api gateway.
Do we need both of the to work together? or we can just setup springBoot Api gatway on ec2 instance.
And its out of context but, do we need separate ec2 for small service like 'Service Discovery', 'Config Service' etc.
thanks
API Gateway is just a kind of routing to your application, no matter if it is hosted on serverless platform or on EC2 container.
You can try to deploy your Spring Boot app on AWS Lambda environment and this way you don't have to think of configuring the server environment. You have to be awarded the cold start of the application in this case. You can google more about it how to solve this problem.
API Gateway is like facade in front of your microservices for communication with external services. There are several ways to use/implement API gateway depending on requirements such as Request Routing, API composition(calling multiple services and combining responses), Authentication, Caching etc.
AWS API gateway is good if you need request routing feature but it can't perform API composition. In such case you need to implement your own custom API gateway using technologies such as Spring Cloud Gateway & Reactive programming.
GraphQL is another popular technology to implement API Gateway.
P.S. - Service Discovery is another concept. In real life you will use Kubernetes or Service Mesh which will internally do Service Registry and Discovery.

AWS equivalent of Azure Service Fabric Cluster

I don't want to get into a discussion about AWS vs Azure but I am trying to figure out how to set up the equivalent of an Azure Service Fabric Cluster on AWS.
I currently set up an environment in Azure by creating a Service Fabric Cluster which creates the virtual machines/nodes, load balancer and anything else that is needed. I then have a visual studio project with a fabric project and a service project which i deploy to the cluster. I'd like to write my services in Visual Studio utilizing C#.
If I wanted to migrate this to AWS or set up a similar environment in AWS what do I create? There seems to be a lot of different options but am confused as to whether i need to create the EC2 virtual machines myself and then the cluster and load balancer manually?
I am not sure if Elastic Beanstalk is needed or the easiest steps to create a microservice environment that I can deploy .NET apps from VS.
Thanks for any help/clarification.
If you wanted to keep the same application and deployment model, there is a doc from Microsoft that outlines the necessary steps for deploying Service Fabric on AWS.

Cannot connect frontend app{Angular} to Backend{SpringBoot} in kubernetes

I am trying to containerize my angular+java app in Kubernetes cluster. I have a frontend deployment and a backend deployment in my k8 cluster. My database is in AWS{RDS}. But i am confused that what API-URL should i give in my Frontend code so that it can get connected to my backend app in k8 cluster.
For e.g :-
In local system i use something like {localhost:8080/api/customers} in my Frontend code but what should i change it to at the time of deploying in Kubernetes cluster.
I have a Kubernetes cluster setup with 1 master and 2 slave nodes, I created a deployment of my backend app and exposed it through Cluster Ip, and than i gave this cluster ip and port in my frontend application.
After that i pushed the image to docker hub and than created a k8 deployment for it, but still its not working.
My main ask is what URL and Port should i mention in my Frontend application target URL so that it can find hit my java APIs.
The front end angular application is running inside the browser of a user. This is outside of the kubernetes Cluster and you therefore can not use the kubernetes Service Name as api endpoint.
You need to make the spring boot api accessible from outside of kubernetes, usually using an ingress or load balancer. You use this external ip or host name as api url in the angular application.
if your two applications run in the same kubernetes cluster so you would have to call your backend service like this: svcname:port for example
http://login:8080/login
This assuming the pods for your frontend are on the same Kubernetes namespace. If they are on a different namespace you would call something like this:
http://login.<namespace>.svc.cluster.local:5555/login
Exposing my back-end service to a Load Balancer, and than using that Load Balancer endpoint in my Front-end application worked for me.

WSO2 Store : Swagger UI / API Test is using wrong IP

I am setting up a WSO2 docker. I am using the WSO2 Dockerfiles from github (https://github.com/wso2/docker-apim) an the latest WSO2 Api Manager version (2.10). The Installation has succeeded, so I started the docker container. WSO2 starts up and I was able to deploy a Swagger URL based API.
I am also able to access the API through the store interface. And here starts my trouble: When I am trying to test the API through the integrated Swagger UI, the API manager is making use of the internal docker IP:
I have set up this port configuration:
How can I force WSO2 Api Manager to use the Docker public IP?
Many thanks :-)
In the repository/conf/api-manager.xml you can find following element
APIGateway/Environments/Environment/GatewayEndpoint
If you have multiple gateways, you may want to create an HTTP(S) load balancer.