ActiveMQ Artemis configuration in AWS problem - amazon-web-services

I am trying to connect an ActiveMQ Artemis broker on a publicly accessible server outside of the AWS cloud to an Artemis broker in AWS.
The AWS side has a Route 53 entry and a classic load balancer to route the incoming request to Artemis running on an EC2 instance. Both brokers are using a CORE bridge to connect with each other. I am using the Netty SSL protocol and trying to use certificates.
Neither side is able to connect its "bridge" to the other. Using the nice Route 53 name I am able to ping that from the public server outside of AWS. Artemis is not able to connect from the AWS EC2 to the public instance - not sure if that is also related to the NAT or Internet gateway on my VPC. But, the NAT and IGW look correct and AWS security groups look correct.
Questions:
Would Route53 and a classic ELB work to route message requests to Artemis?
What values should be used as the IP/server name and port in the Connector and Acceptor?
Has anyone done this? I find no other references out there.
Yes, I know of "AWS ActiveMQ" service. That is a backup plan.
Any help is greatly appreciated.

Related

Cannot able to call a api from gke private cluster. It is showing Connection timed out (<ip>:443)

I have created a private cluster in a region.Then we deployed a NAT router in that region (which has a static ip).
Now this cluster sent traffic through this ip. So we whitelisted this IP to call our API. We used this pod as a self hosted agent in azure devops pipeline.
But when we are trying to access our API using this agent (pod), we are getting Name or service not known. So we tried calling our api with the client IP instead of DNS name, which is now throwing Connection timed out (<ip address>:443) .
P:S: I have created a firewall which will allow ingress and eggress to this ip in port 443.
Please help me to know what's went wrong
Thanks in advance.

Unable to connect to AWS ALB through client VPN

I am creating a staging env using AWS and i want it to be accessible through VPN only.
The env was created using Fargate.
I have:
1 front lb connected to several front tasks.
1 back lb connected to several back tasks.
I created the VPN client endpoint.
I can connect to the VPN and ssh to instances in the same security group as my front and back lb. (I tried to start an ec2 instance with the same security group and it works).
But for some reason i am unable to connect to the albs using their dns name or the name used in the route 53 record.
Did i miss something that should be configured for dns to work on aws ressources through the VPN?
I hope this was detailed enough, Thanks in advance.
It sounds like you created a public, Internet-facing ALB. For the ALB to work internally in the VPC (and only in the VPC), you need to create an internal ALB.
See the "Scheme" setting in the documentation.

Cannot Pull Container Error in Amazon Elastic Container Service

I am trying to launch a task in Amazon ECS but getting the following error:
CannotPullContainerError: Error response from daemon, request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers).
I was able to pull container in my local environment and it works fine but getting this error while trying to deploy in amazon environment.
The suggested checks from Amazon are as follows:
Confirm that the subnet used to run a task has a route to an internet gateway or NAT gateway in a route table.
Note: Instead of an internet gateway or NAT gateway, you can use AWS PrivateLink. To avoid errors, be sure to correctly configure AWS PrivateLink or HTTP proxy.
If you're launching tasks in a public subnet, choose ENABLED for Auto-assign public IP when you launch a task in the Amazon EC2 console. This allows your task to have outbound network access to pull an image.
If you're using an Amazon provided DNS in your Amazon VPC, confirm that the security group attached to the instance has outbound access allowed for HTTPS (port 443).
If you're using a custom DNS, confirm that outbound access is allowed for DNS (UDP and TCP) on port 53 and HTTPS access on port 443.
Verify that your network ACL rules aren't blocking traffic to the registry.
This error ultimately points to a network connectivity issue between the subnet or MicroVM your container runs on and the ECS service.
By default it will traverse the public internet (unless you have setup the correct VPC endpoints). So if you do not have outbound internet support you will not be able to connect to the ECR endpoint.

DNS resolution for AWS resources on GCP(after establish VPN connection between them)

I have successfully built a VPN connection between gcp and aws using the following guide(https://cloud.google.com/solutions/automated-network-deployment-multicloud).
I can currently ping the resources on the other cloud providers based on the private IP. However, I would like to use the dns resolution that resolves to private IP of the AWS resource DNS names. Can someone please help me with this?. Using DNS server policy may not be the best of options for me as it points to alternative name server only and not the gcp’s internal name servers anymore. So how can I use forwarding zones in gcp for DNS names such as database-test.c34fdgt1ascxz.us-west-1.rds.amazonaws.com so that it resolves to private IP. The above example is for database which I have not made public. Has someone done this already? Or does anyone have any idea on how to go about this. Any help is much appreciated, thank you so much.
It is possible.
If your goal is to configure outbound forwarding to AWS, then you should remove this policy you just need a Cloud DNS managed zone to accomplish this.
The DNS queries that are forwarded from GCP to AWS will come from the 35.199.192.0/19 address block.
The 35.199.192.0/19 traffic can be routed over a dynamic VPN tunnel dynamic (BGP), so you would just need to modify your AWS VPN gateway or router by adding a route that to reach 35.199.192.0/19.
It looks like a public address block, but Google uses this block only for forwarding, and does not announce it on the public Internet.
And finally, AWS needs to be configured so that responses to DNS queries from 35.199.192.0/19 are routed back to GCP using the VPN tunnel configured between AWS and GCP.
In other words, this traffic needs to go through the VPN tunnel.
To debug it you can use stackdriver logging and also by checking network captures on both endpoints.
Check this documentation guides: Creating Forward zones1 and DNS forwarding2.
You can't resolve AWS private IP addresses by submitting the AWS public endpoint to GCP's DNS. That just wont work.
AWS uses a service called Route53 resolver that will forward requests that can't be resolved internally to an external DNS server that you specify. We use this in our env's to resolve on-prem corp IP's that are not part of Route53. I have not tried this, but it's possible you can use that to point to GCP DNS.

Access tomcat web apps (on ec2) behind ELB using jmx

I have a tomcat app deployed onto multiple ec2 instances behind ELB ... Is there any way to access each instance using jmx? AWS provides any service for it??
Thanks.
Is there any way to access each instance using jmx?
If each instance has a public IP or Elastic IP, and the appropriate port in the Security Group is open, then you could connect directly, bypassing the ELB. You'll have to go around the ELB somehow in order to connect via JMX. I suggest using a bastion host and SSH forwarding.
AWS provides any service for it??
AWS does not provide any service specifically for this. This is just general networking, which is provided by the VPC service.