<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 20818 -->
<!-- Reviewed: no -->
<sect1 id="zend.service.amazon.ec2.elasticip">
    <title>Zend_Service_Amazon_Ec2: Elastische IP Adressen</title>

    <para>
        Standardmäßig werden allen Amazon EC2 Instanzen beim Starten zwei IP Adressen zugeordnet:
        eine private (RFC 1918) Adresse und eine öffentliche Adresse die über Network Address
        Translation (NAT) auf die private Adresse gemappt wird.
    </para>

    <para>
        Wenn man dynamische DNS verwendet um einen bestehenden DNS Namen zu einer öffentlichen IP
        Adresse einer neuen Instanz zu verknüpfen, kann es für die IP Adresse bis zu 24 Stunden
        dauern bis Sie über das Internet bekanntgegeben wurde. Als Ergebnis, können neue Instanzen
        keinen Verkehr empfangen weil beendete Instanzen weiterhin Anfragen bekommen.
    </para>

    <para>
        Um dieses Problem zu lösen, bietet Amazon EC2 elastische IP Adressen. Elastische IP
        Adressen sind statische IP Adressen die für Dynamisches Cloud Computing entwickelt wurden.
        elastische IP Adressen werden mit dem eigenen Account verknüpft, und nicht spezifischen
        Instanzen. Jede elastische IP Adresse die man mit dem eigenen Account assoziiert bleibt
        mit dem eigenen Account verknüpft bis man diese explizit freigibt. Anders als traditionelle
        IP Adressen erlauben es elastische IP Adressen Instanzen zu maskieren oder Zonen Fehler
        sichtbar zu machen indem die eigene öffentliche IP Adresse schnell auf jede Instanz im
        eigenen Account verknüpft werden kann.
    </para>

    <example id="zend.service.amazon.ec2.elasticip.allocate">
        <title>Eine neue Elastische IP allokieren</title>

        <para>
            <code>allocate</code> fügt dem eigenen Account eine neue Elastische IP Adresse hinzu.
        </para>

        <para>
            <code>allocate</code> gibt die neu verknüpfte IP zurück.
        </para>

        <programlisting language="php"><![CDATA[
$ec2_eip = new Zend_Service_Amazon_Ec2_Elasticip('aws_key','aws_secret_key');
$ip = $ec2_eip->allocate();

// Gibt die neu verknüpfte elastische IP Adresse aus;
print $ip;
]]></programlisting>
    </example>

    <example id="zend.service.amazon.ec2.elasticip.describe">
        <title>Beschreiben von Verknüpften elastischen IP Adressen</title>

        <para>
            <code>describe</code> hat einen optionalen Parameter um alle eigenen verknüpften
            elastischen IP Adressen zu beschreiben oder auch nur einige der eigenen verknüpften
            Adressen.
        </para>

        <para>
            <code>describe</code> gibt ein Array zurück das Informationen über jede elastische IP
            Adresse enthält welche wiederum publicIp und instanceId enthalten wenn diese
            assoziiert sind.
        </para>

        <programlisting language="php"><![CDATA[
$ec2_eip = new Zend_Service_Amazon_Ec2_Elasticip('aws_key','aws_secret_key');
// Beschreibe alle
$ips = $ec2_eip->describe();

// Beschreibe ein Subset
$ips = $ec2_eip->describe(array('ip1', 'ip2', 'ip3'));

// Beschreibe eine einzelne IP Adresse
$ip = $ec2_eip->describe('ip1');
]]></programlisting>
    </example>

    <example id="zend.service.amazon.ec2.elasticip.release">
        <title>Freigeben einer elastischen IP</title>

        <para>
            <code>release</code> gibt eine elastische IP wieder für Amazon frei.
        </para>

        <para>
            Gibt ein boolsches <constant>TRUE</constant> oder <constant>FALSE</constant> zurück.
        </para>

        <programlisting language="php"><![CDATA[
$ec2_eip = new Zend_Service_Amazon_Ec2_Elasticip('aws_key','aws_secret_key');
$ec2_eip->release('ipaddress');
]]></programlisting>
    </example>

    <example id="zend.service.amazon.ec2.elasticip.associate">
        <title>Verknüpft eine elastische IP zu einer Instanz</title>

        <para>
            <code>associate</code> verknüpft eine elastische IP mit einer bereits laufenden
            Instanz.
        </para>

        <para>
            Gibt ein boolsches <constant>TRUE</constant> oder <constant>FALSE</constant> zurück.
        </para>

        <programlisting language="php"><![CDATA[
$ec2_eip = new Zend_Service_Amazon_Ec2_Elasticip('aws_key','aws_secret_key');
$ec2_eip->associate('instance_id', 'ipaddress');
]]></programlisting>
    </example>

    <example id="zend.service.amazon.ec2.elasticip.disassociate">
        <title>Entfernt die Verknüpfung einer elastischen IP von einer Instanz</title>

        <para>
            <code>disassocate</code> entfernt die Verknüpfung einer elastischen IP von einer
            Instanz. Wenn man eine Instanz beendet wird diese automatisch die elastischen IP
            Adressen wieder freigeben.
        </para>

        <para>
            Gibt ein boolsches <constant>TRUE</constant> oder <constant>FALSE</constant> zurück.
        </para>

        <programlisting language="php"><![CDATA[
$ec2_eip = new Zend_Service_Amazon_Ec2_Elasticip('aws_key','aws_secret_key');
$ec2_eip->disassociate('ipaddress');
]]></programlisting>
    </example>
</sect1>
