Sunday, March 2, 2014

h5: Amazon VPC/VPS & Name Based VirtualHost


TEHTÄVÄNANTO Haaga-helian ammattikorkeakoulun "Linux palvelimena"-kurssilta:
http://terokarvinen.com/2013/aikataulu-%E2%80%93-linux-palvelimena-ict4tn003-11-ja-12-kevaalla-2014 

h5. 
Tee nimipohjainen virtuaalipalvelin Apachelle (name based virtual hosting). Muista
laittaa sekä http://www.example.com että example.com. Voit simuloida asiakkaan
nimipalvelua muuttamalla /etc/hosts -tiedostoa. 
Kokeile virtuaalipalvelinta (VPS). Voit vuokrata palvelimen esimerkiksi Linodelta,
Amazonilta, DigitalOceanilta tai monista muista paikoista. Linodella ja Amazonilla
saattaa olla myös ilmainen kokeilupaketti. Vaihtoehto: jos et jostain syystä halua
vuokrata virtuaalipalvelinta, voit kokeilla tehdä oman vagrantilla.






AMAZON VPS


Menin amazonin pilvipalvelusivustolle osoitteessa: aws.amazon.com

Sivustolta selviää, että Amazon tarjoaa ilmaista "AWS Free Tier" VPS-palvelua, joka sisältää 750 tuntia Linux ja Windows Micro Instansseja per kuukausi yhden vuoden ajan. Ilmaisena käyttäjänä on mahdollisuus käyttää vain Micro-Instansseja.


"Popular uses for micro instances include low traffic websites or blogs, small 
administrative applications, bastion hosts, and free trials to explore EC2 
functionality."

Luotuani ilmaisen amazon-tilin menin luomaan ensimmäistä instanssiani valitsemalla "Launch Instance".

Tämän jälkeen minun täytyi valita minkä serverikäyttöjärjestelmän asennan virtuaalipalvelimelleni Amazonin AMI-valikoimasta (AMI = Amazon Machine Image). Vaihtoehtoina oli mm. Red Hat Enterprise Linux 6.4 (PV), SuSE Linux Enterprise Server 11 sp3 32- ja 64-bittisinä versioina sekä eri windows-server-versioita.



Valitsin käyttikseksi "Ubuntu server 12.04 LTS"-imagen, koska se oli entuudestaan tuttu. Speksit annoin pysytellä kaikista pienimmällä tasolla:

Currently selected: t1.micro (up to 2 ECUs, 1 vCPUs, 0.613 GiB memory, EBS only) 8GB HD

Tämän jälkeen oli vuorossa instanssin yksityiskohtien konfigurointia.

Seuraava kohta oli: "Configure Security Group", jossa konfiguroitiin virtuaaliserverin sisäänmeneviä ja ulosmenevää liikennettä.
"A security group is a set of firewall rules that control the traffic for your instance.
On this page, you can add rules to allow specific traffic to reach your instance. For
example, if you want to set up a web server and allow Internet traffic to reach your
instance, add rules that allow unrestricted access to the HTTP and HTTPS ports. You can create a new security group or select from an existing one below. Learn more about
Amazon EC2 security groups."
-Valitsin näin alkuun "default security group"-oletuskonfiguraation.

-Tämän jälkeen minulla oli vaihtoehtona joko käyttää "olemassaolevaa avainparia tai luoda uusi" serverille etäyhteyden ottamisen autentikointia varten. Valitsin uuden avainparin luomisen (Select and existing key pair or create a new key), jonka nimesin "h5" >>> Latasin avaimen tietokoneelleni (Download Key Pair).

"You have to download the private key file (pem file) before you can continue.
Store it in a secure and accessible location. you will not be able to download the file
again after its created."

-Tämän jälkeen valitsin "Launch" ja instanssi oli luotu.



-Tämän jälkeen ilmoitettiin siitä, että halutessani voin luoda/pyytää Amazonilta sähköpostimuistutuksen, jos virtuaaliserverini käyttö ylittää ilmaisen käyttöoikeuden rajat. Siinähän tapauksessa, jos virtuaalipalvelimen resurssien käyttöni ylittäisi "Free Tier"-käyttäjän rajat ylimenevästä osasta minulta veloitettaisiin normaalituntihintojen mukaisesti.

Listattuna olivat linkit:
- siitä kuinka etäyhteyden luominen virtuaaliserveriin onnistuu.
- Virtuaalipalvelimien käyttöoppaaseen
- Amazonin virtuaalipalvelimien keskustelufoorumille


-Muutaman minuutin jälkeen klikkasin "View Instances" josta näin, että instanssin tila oli "running".
Valitsin "Connect To Your Instance", josta avautuivat vaihtoehtoisia ohjeita etäyhteyden ottamiseen windows-koneelta putty-ohjelman kautta tai linux/mac-koneen komentotulkin kautta suoraan.





Security Group

-Tässä vaiheessa kävin ohjeiden mukaisesti muokkaamassa aikaisemmin luotua "Security Group"-konfiguraatiota niin, että :
1. Sallin sisääntulevan SSH-yhteyden ottamisen (Security Group > Inbound > Create a new rule > Add new rule > SSH )
2. Sallin HTTP-yhteyden ottamisen ip-osoitteestani (testatakseni onnistuuko mm. apache2-webbiserverin asennus.) 
-Seuraavaksi otin ssh-etäyhteyden serveriini amazonin ohjeiden mukaisesti. Otin yhteyttä Ubuntu-käyttöjärjestelmän default-käyttäjänä "ubuntu". Lisäämällä -i osoittaa se missä salainen avainpari sijaitsee client-koneellani.

$ ssh -i /avaimen/sijainti/koneellani/keypair.pem ubuntu@instanssin-ip-osoite

Päivitin paketinhallinnan ja asensin apache-webbiserverin.

$ sudo apt-get update
$ sudo apt-get install apache2 

Webbiserveri oli asentunut oikein koska surffaamalla instanssin ip-osoitteeseen "http://ip-osoite" löytyi teksti
"It works! This is thedefault web page..."



Huomioitavia asioita Amazonin instansseista:

-Jos ylittää "Free tier"-käyttäjän minimivaatimukset alkaa automaattinen laskutus amazonin hinnastojen mukaisesti esim. jos ylittyy 750h käyttö kuukaudessa.

-Virtuaaliserveri käyttää oletuksena dynaamisia IP-osoitteita, joka tarkoittaa sitä, että serverin ip-osoite vaihtuu, joka kerta kun sen käynnistää uudelleen.

-Levytila on oletusarvoisesti  "kertakäyttöistä" eli jos instanssi sammutetaan vahingossa tai vastaavaa niin tiedot ovat kadonneet eikä niitä enää saa takaisin.

*****************
*****************


TESTIKONEEN SPEKSIT:

HP Elitebook 8530p
Intel Core 2 Duo CPU P8600 @ 2.40GHz
4GB RAM 

KÄYTTÖJÄRJESTELMÄ: Xubuntu Live-CD, Ubuntu 13.10



Name Based Virtual Hosting


Seurasin löytämiäni ohjeita:
https://www.digitalocean.com/community/articles/how-to-set-up-apache-virtual-hosts-on-ubuntu-12-04-lts

Ensiksi asensin apache2-webbiserverin:

$ sudo apt-get install apache2

Jonka jälkeen luotiin "Document Root" virtuaali-hostia varten. Tässä luon hakemistoon /srv kansion "www" ja sen alle "example.com", ja sen alle "public_html"-kansion, jonne testisivusto tulee. -p luo automaattisesti tarpeelliset "parent"-hakemistot.

$ sudo mkdir -p /var/www/example.com/public_html

Tämän jälkeen siirryin hakemistoon ja loin sinne index.html-tiedoston komennolla

$ sudo nano index.html

Lisäsin sisällöksi testausta varten.

<html>
  <head>
    <title>www.example.com</title>
  </head>
  <body>
    <h1>Success: You Have Set Up a Virtual Host</h1>
  </body>
</html>


Muutin hieman luomieni hakemistojen oikeuksia, jotta sivusto näkyisi ja niitä voisi muokkailla.

$ chown -R $USER:$USER /var/www/example.com/public_html/
$ sudo chmod -R 775 /var/www



Sitten siirryin apachen konffaus-hakemistoon $ cd /etc/apache2/sites-available ja kopioin default-konffitiedoston "example.conf"-nimiseksi:

$ sudo cp 000-default.conf example.conf

Muokkasin kopioitua tiedostoa seuraavasti: Kommentoin "ServerName"-kohdan käyttöön ja lisäsin sille aliakseksi www.example.com ja  "Document Root"-paikaksi määritin luomani hakemiston "public_html"-hakemiston.

<VirtualHost *:80>
   ServerName example.com
   ServerAlias www.example.com

   ServerAdmin webmaster@localhost
   DocumentRoot /var/www/example.com/public_html
.....
Nyt oli aika aktivoida virtuaali-hosti apache-komennolla ja reloadaamaalla apache-serverin konffaustiedostot.

$ sudo a2ensite example.conf
$ sudo service apache2 reload


 *****

Seuraavaksi menin muokkaamaan tiedostoa  "/etc/hosts":

$ sudo nano /etc/hosts

Ja lisäsin sen loppuun paikallisen ip-osoitteeni sekä example.com-verkkotunnuksen. (Paikallisen ip-osoitteeni selvitin komennolla $ ifconfig ja etsimällä kohta "inet addr".)

127.0.0.1 localhost
127.0.1.1 xubuntu

192.168.0.16  example.com
Näin tekemällä saadaan aikaiseksi se, että käytän omaa konettani DNS-palvelimena, joka kääntää example.com-verkkotunnuksen oikeaan ip-osoitteeseen. Päästessään ip-osoitteeseen selailu ohjautuu oikeaan "Document Root"-hakemistoon aikaisemmin tehtyjen "sites-enabled"-hakemiston konffausten johdosta.

Virtual Hostin määrittely oli onnistunut, koska aikaisemmin "Document Root"-hakemistoon luodun "index.html"-tiedoston sisältö ilmestyi firefox-selaimen ruutuun kirjoittaessani siihen "example.com".

"Success: You Have Set Up a Virtual Host"




LÄHTEITÄ:
https://www.digitalocean.com/community/articles/how-to-set-up-apache-virtual-hosts-on-ubuntu-12-04-lts
http://ubuntu-tutorials.com/2008/01/09/setting-up-name-based-virtual-hosting/
http://serverfault.com/questions/124127/linux-fhs-srv-vs-var-where-do-i-put-stuff
https://httpd.apache.org/docs/2.2/vhosts/name-based.html

No comments:

Post a Comment