Amazon EC2: Jetty Unaccessible - amazon-ec2

I'm trying to install jetty in an Amazon EC2 instance running Ubuntu. The installation seems OK
$ sudo apt-get install jetty
After that I made the parameter NO_START=0 in /etc/default/jetty
Finally
$ sudo service jetty start
Starting Jetty servlet engine. jetty
Jetty servlet engine started, reachable on http://ip-xx-xxx-xxx-xxx:8080/
...
Nevertheless, when I write in the browser (external computer):
http://ec2-xxx-xx-xx-xx.compute.amazonaws.com:8080
The browser could not connect to the address using the given port. I don't know if something is missing during the installation or the URL is wrong.
Thanks for your time and help :-) ,
- Carolina

Each instance on amazon has a security group assigned to it. In the AWS console, select the instance and the security group is shown in the lower pane. Then select security groups on the left and select the group for that instance from the table. In the lower tab, select inbound, these are the IPs addresses/ports allowed in. If 8080 isn't allowed, that's your problem, you need to add it. Enter 8080 in the port range box and 0.0.0.0/0 for the source. Then "add rule" and make sure you "apply rule change" lastly.

I found the answer here:
Jetty (mis)configuration: it wont respond from an external machine... why?
You need to change /etc/default/jetty to have JETTY_HOST=0.0.0.0

Related

Glassfish claims the port is occupied. Netsat disagree

I have succesfully deployed application on port 8080.
After undeploy and killing all processes "java" and cleaning folders: "domains/domain1/osgi-cache/felix" and "domains/domain1/applications/" then
I tried to redeploy application.
It occured the port is occupied. I could not find that port using netstat (like it was suggested on many other posts) so I guess port should be available.
I managed to deploy on different port (9090). I did again undeploy and rest of actions like killing and stopping domain... it occured the port is still occupied as well and I could not deploy app on port 8080 and 9090 now.
I am using glassfish 4.1.2 and Windows. Anyone have ideas what can I do more?
I also added my hostname under etc/host.
From the description of your post, it sounds like you have tried to follow some instructions intended for Linux on your Windows system. Since you managed to start GlassFish on port 9090, that indicates that the hostname issue does not affect you. The fact that you could not start GlassFish on port 9090 afterwards suggests that you have not shutdown GlassFish properly.
On Windows, it is not always possible to view all Java processes if they were started by another user. So if you have GlassFish installed as a Windows service, then a Windows system user will start GlassFish and the Java process will not be visible to you.
A good way to verify whether or not GlassFish is still running is to visit the endpoint in a browser, in your case http://localhost:9090. If your application is there, then its homepage will show, otherwise GlassFish will serve a 404 which will look a lot like this:
If you manage to get a response in your browser, then you will be certain that GlassFish is still running.
Actually, I did not find answer why the port is occupied. But if someone else found similar issue, this procedure of redeploy works for me:
1: go to admin panel of glassfish (by default :4848). Select application and click undeploy
2: stop domain using console (asadmin stop-domain domain1)
3: start domain using console (asadmin start-domain domain1)
4: go to admin panel(by default :4848), deploy application.
This procedure worked for me, instead of clicking "redeploy" on admin panel.
Glassfish and Windows...

Can't get Amazon EC2 instance work

I am trying to setup an amazon ec2 instance for first time.
I've created one with ubuntu 10.4, managed to connect to ssh and installed mongodb, mysql, php and apache which need for my proyect(also python but it is already setup).
Then I associated an elastic ip to the instance, but when I try to open the IP, I can't. It gives timeout.
Could it be that the apache root is not where I think it is?(/var/www/)
You need to check the security group that is associated with the instance. Make sure that you open up port 80.
Also make sure that apache is started, and configured to start on boot.
If you're logged in, you should be able to use wget localhost to verify if apache is serving up pages.

Connect to Amazon (AWS) EC2 instance via browser

I am having trouble connecting to an Amazon Elastic Cloud Computer Instance via a browser.
I attempted going to ********.compute-1.amazonaws.com , but the browser returns that the connection has timed out.
I can connect via ssh and winscp. That is how I uploaded a web app I developer. I have also created a security group and added rules to open ports 22 and 80.
Do I have to assign the security group to the instance somehow?
The security group's rules also do not have a source IP, well they do its 0.0.0.0/0
I would really appreciate any and all help in getting this site ' viewable ' via a browser.
By default, your instances will only be in the default security group. If it's an EC2 instance you cannot change security groups while the instance is running, you'll have to specify them in advance. If it's a VPC instance you can change security groups at runtime.
Add the rule to the default group
You can however add the rule to allow port 80 to that default security group; just don't create a new security group as it can not be associated with the running instance.
Is the web server up?
Also, make sure that your web server is up and running. From your instance (using SSH shell access), check if the right process is listening on port 80, using the command netstat -lnp. You should then see a row with proto tcp and a Local Address ending in :80. The IP Address listed should be either 0.0.0.0 (meaning 'any IP') or a specific IP of a listening network interface.
Web server not up
If you are in need of a web server, take a look at Apache or Nginx. They both support PHP.
Hope this helps.
I had also faced similar issue with ec2 micro instance. I was using Red-Hat AMI. Despite of opening ports 8081 in security group, I was not able to a telnet to the host port. Disabling the iptable did the trick for me:
sudo /etc/init.d/iptables stop
Do not forget to disable firewall if you use windows for your server.
I faced the same issue while setting up redash AMI image on AWS. Inbound security rules should be changed when instance is not running. Let's say if the instance is running (meaning it's active and started); If you change the inbound rules of that machine you'll still face firewall issue. So Stop the machine on which you want to change the inbound rules on. Change the inbound rules. Start the machine now. Now you can hit the machine url from the ip you just opened the access to the machine to.
The EC2 instance firewall is maybe enabled.
Check it with this command:
sudo systemctl status firewalld
if enabled you can disable it with :
sudo systemctl disable firewalld
or setup rules to allow port 80 trafic

Accessing Amazon ec-2 instance from the web

I have to do part of a college project on amazon instance. The lecturer set up the instances for the year, supplying us with the public DNS and KEY.
Having downloaded WINSCP to make it easier etc. I find that after i have created my html pages etc i cannot access them from the web.
IM assuming that that http://ec2----.compute-1.amazonaws.com/home.html should open the file ???
Any help would be apprciated
A few things.
httpd -v will tell you what version of http is installed. But it doesn't tell you whether or not its running. Use service httpd status to see if its running.
Check the apache config file and make sure you put the index.html file in the correct directory.
Verify that you can access port 80 from outside the instance. Its possible there is a firewall in amazon that the professor has not unlocked.
Download PuTTy and configure it to access your ec2 instance on terminal. Install any web server e.g Apache or you can install LAMP directly to make your file accessible on web.

EC2 Network Error : Connection timeout

I created an EC2 micro instance of Linux and launched it, created a keypair and all the beginning stuff specified in this video:
http://www.youtube.com/watch?v=hJRSti6DsJg
But when I connect to my instance with PUTTY terminal, it will not connect to my EC2 instance.
I have specified the correct instance Public DNS and private key which I created with the PUTTY key generator.
I get this error:
Network Error : Connection timeout
You simply need to add an ssh rule for inbound connections to you ec2 instance in the ec2 management console.
Go to ec2 console
Click Instances on Left
Select your instance
In the Description tab, locate Security Groups and click the available group link
Click edit button on Inbound tab
Click Add Rule and select SSH for type, Port Range 22, and Source Anywhere
Connect with putty :)
Are you sure you've enabled SSH access in the firewall settings of your instance?
Can you connect with PUTTY to other machines? Perhaps your local firewall is blocking SSH connections.
Also, you cannot simply use a private key you generated with PUTTY - you'll have to create one using the AWS web interface, assign it to your EC2 instance, download it to your local computer and instruct PUTTY to use this when connecting to your EC2 instance.
Having successfully connected in the past, I got this error after shutting down my instance and starting it again.
Apparently the Public DNS changes after you shut it down and start it again, so I had to replace the DNS string in PuTTY before it could find my instance to connect with it on port 22.
This error may occur when you enable ufw and reboot your instance. First you have to add 22/tcp before enabling ufw. Following is the command
$ ufw allow 22/tcp
If you already made the mistake. Then follow the following guide
Start a recovery instance.
Stop the blocked instance (DON'T TERMINATE)
Detach the blocked instance volume.
Attach Blocked volume to the recovery instance.
Log to the recovery instance(Newly Launched) via ssh/putty
Type sudo lsblk to display attached volumes
Verify the name of the Blocked volume. Generally start with /dev/xvdf.
Mount blocked volume.
$ sudo mount /dev/xvdf1 /mnt
$ cd /mnt/etc/ufw
Open ufw configuration file
$ sudo vi ufw.conf
Enable insert mode by pressing i in vi editor
Update ENABLED=yes to ENABLED=no
ClickESC and type :wq to update the file.
Verify the file contents. where update to ENABLED=yes -> ENABLED=no
$ sudo cat ufw.conf
Remove the mounted blocked volume from recovery instance
$ cd ~
$ sudo umount /mnt
Now detach blocked install volume from recovery instance and re-attach it to the original instance as /dev/sda1.
Finally, Start the blocked instance. Here's you will able to access your instance. If you enable ufw again don't forget to allow 22/tcp.
One more thing to remember when using putty to connect to, add security setting to accept ssh connection.
If you take default security group
I faced a similar issue.
Reason : Since in my Security Group, Inbound traffic to Port 22 was set to MyIP, now since every time I connected to Internet, I got assigned a different IP, while in our Security Group the Inbound Traffic to SSH was expected to come from previous IP only.
Solution : Edit the Security Group, and either make the Inbound Traffic to Port 22 as 'Anywhere'(not recommended) or again click the myIP(which will give the current IP assigned to you). Problem will be fixed.
I'm also facing the same Network Error : Connection timeout issue after keep all thing at correct place.
But in my case, internet gateway(igw) is not working so you guys also check default VPC configuration for troubleshooting.
This error is generally occurred because server not responding means source have not clear path to connect to you server even you put SSH 22 port in SG.
I faced this issue. Possible cases are
Make sure to open port number-22(ssh) in Inbound rule of Security group
Make sure to use correct .ppk file
Check Network settings. The VPC in which you have launched an instance, may not have
attached to Internet gateway. This happens when you accidentally delete the default
Internet-
gateway.
a) Create Internet gateway and attach to the mentioned VPC
b) In route table->route, add Internet gateway with (0.0.0.0/0)
This should fix the problem. :-)
You simply need to add an ssh rule for inbound connections to you ec2 instance.
Go to ec2 console Security Groups
Select your Security Groups
Click edit button on Inbound tab
Click Add Rule and select SSH for type, Port Range 22, and Source Anywhere or My IP
Click save rules button
Now connect it's working

Resources