Cloud & IT Cert Prep · Oppitunti

Ensimmäisen EC2-instanssin käynnistäminen

Käytte läpi käynnistystoiminnon, valitsette AMI:n ja instanssityypin, määritätte avainparit ja muodostatte yhteyden SSH:lla.

Oppitunti 1/413 vaihetta

Ensimmäisen EC2-instanssin käynnistäminen on ilmainen Cloud & IT Cert Prep-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Cloud & IT Cert Prep-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Cloud & IT Cert Prep-kurssilla on yhteensä 4 oppituntia.

Mikä Amazon EC2 on?

Amazon Elastic Compute Cloud (EC2) tarjoaa pilvessä muokattavan kokoisia virtuaalikoneita, joita kutsutaan instansseiksi. Valitset käyttöjärjestelmän, suorittimen, muistin, tallennustilan ja verkkokapasiteetin. EC2 on AWS:n keskeinen laskentapalvelu — lähes kaikki pysyvää ja tilallista laskentaa tarvitsevat arkkitehtuurit käyttävät EC2:ta suoraan tai sen päälle rakennettujen palvelujen (ECS, EKS, EMR) kautta. Instanssit toimivat VPC:ssäsi, ja ne voidaan käynnistää, pysäyttää, käynnistää uudelleen tai lopettaa tarpeen mukaan.

Amazon Machine Images (AMI:t)

Amazon Machine Image (AMI) on mallipohja, joka määrittää EC2-instanssin käyttöjärjestelmän, ohjelmistot ja asetukset. AWS tarjoaa tuhansia AMI:ita (Amazon Linux 2023, Ubuntu, Windows Server), Marketplace-toimittajat julkaisevat valmiiksi määritettyjä ohjelmistoja sisältäviä AMI:ita, ja voit luoda omia mukautettuja AMI:ita ottamalla käynnissä olevasta instanssista vedoksen. Kun käynnistät instanssin, valitset AMI:n — se määrittää juuritaltioin sisällön ja arkkitehtuurin (x86_64 tai ARM).

# Find latest Amazon Linux 2023 AMI in us-east-1
aws ec2 describe-images \
  --owners amazon \
  --filters 'Name=name,Values=al2023-ami-*-x86_64' \
  --query 'sort_by(Images, &CreationDate)[-1].ImageId' \
  --output text

EC2:n käynnistystoiminto vaihe vaiheelta

Konsolin EC2:n käynnistystoiminto opastaa seuraavien vaiheiden läpi: 1) nimi ja tunnisteet; 2) AMI:n valinta; 3) instanssityyppi (suorittimen ja muistin yhdistelmä); 4) SSH-yhteyden avainpari; 5) verkkoasetukset (VPC, aliverkko, suojausryhmä); 6) tallennustila (juuri-EBS-taltion koko ja tyyppi); 7) lisäasetukset (IAM-rooli, käyttäjätietoskripti, metatietoasetukset). Kun ymmärrät jokaisen vaiheen, osaat vastata luottavaisemmin määrityksiin perustuvissa koetehtävissä.

# Equivalent CLI launch
aws ec2 run-instances \
  --image-id ami-0abcdef1234567890 \
  --instance-type t3.micro \
  --key-name MyKeyPair \
  --security-group-ids sg-12345678 \
  --subnet-id subnet-12345678 \
  --iam-instance-profile Name=MyEC2Role \
  --user-data file://user-data.sh

Avainparit SSH-tunnistautumista varten

Avainpari koostuu julkisesta avaimesta (jonka AWS tallentaa) ja yksityisestä avaimesta (jonka lataat itse — vain kerran). Kun käynnistät EC2-instanssin, AWS lisää julkisen avaimen oletuskäyttäjän ~/.ssh/authorized_keys-tiedostoon (esimerkiksi ec2-user Amazon Linuxissa ja ubuntu Ubuntussa). Yhdistät instanssiin yksityisellä avaimella: ssh -i my-key.pem ec2-user@<public-ip>. Jos kadotat yksityisen avaimen, et voi muodostaa SSH-yhteyttä instanssiin, ellet käytä vaihtoehtona Systems Manager Session Manageria.

# Generate a new key pair and save the private key
aws ec2 create-key-pair \
  --key-name MyKeyPair \
  --query 'KeyMaterial' \
  --output text > MyKeyPair.pem
chmod 400 MyKeyPair.pem

# Connect to the instance
ssh -i MyKeyPair.pem ec2-user@54.123.45.67

Instanssin elinkaaren tilat

EC2-instanssi käy läpi useita tiloja. Pending: instanssi käynnistyy (laskutusta ei vielä ole). Running: instanssi on aktiivinen (laskutus tapahtuu sekunti- tai tuntiperusteisesti). Stopping: siirtyminen pysäytettyyn tilaan on käynnissä (vain EBS-taustaiset instanssit). Stopped: instanssi on pois päältä — maksat vain liitetystä EBS-tallennustilasta. Terminated: instanssi on poistettu pysyvästi — sitä ei voi käynnistää uudelleen. Näiden tilojen ymmärtäminen on tärkeää laskutuksen (On-Demand-maksuja kertyy vain Running-tilassa) ja arkkitehtuurin kannalta (Spot-instanssit lopetetaan siirtymättä Stopped-tilaan).

# Stop and start an instance
aws ec2 stop-instances --instance-ids i-0abcdef1234567890
aws ec2 start-instances --instance-ids i-0abcdef1234567890

# Terminate permanently
aws ec2 terminate-instances --instance-ids i-0abcdef1234567890

EC2:n julkiset ja yksityiset IP-osoitteet

Julkisten aliverkkojen instanssit saavat oletusarvoisesti julkisen IPv4-osoitteen (dynaaminen — muuttuu pysäytyksen ja käynnistyksen yhteydessä) sekä yksityisen IPv4-osoitteen (säilyy pysäytyksen ja käynnistyksen yli VPC:n sisällä). Jos tarvitset pysyvän julkisen IP-osoitteen, varaa Elastic IP (EIP) — staattinen julkinen IPv4-osoite, jonka omistat, kunnes vapautat sen. EIP:t ovat maksuttomia, kun ne on liitetty käynnissä olevaan instanssiin, mutta niistä veloitetaan, jos niitä ei ole liitetty tai jos käynnissä olevaan instanssiin on liitetty useampi kuin yksi.

# Allocate an Elastic IP and associate it with an instance
aws ec2 allocate-address --domain vpc
aws ec2 associate-address \
  --instance-id i-0abcdef1234567890 \
  --allocation-id eipalloc-12345678

Käyttäjätiedot: käynnistysskriptit

Käyttäjätiedot ovat shell-skripti (tai cloud-init-määritys), joka suoritetaan kerran, kun instanssi käynnistetään ensimmäisen kerran. Niiden avulla voit asentaa paketteja, määrittää ohjelmistoja tai hakea sovelluskoodia S3:sta. Käyttäjätiedot suoritetaan root-käyttäjänä, eikä niitä oletusarvoisesti suoriteta uudelleen uudelleenkäynnistyksen yhteydessä. Ne välitetään base64-koodattuna tekstinä käynnistysmäärityksen kautta. Kun pidät käyttäjätiedot lyhyinä ja käytät raskaisiin valmistelutoimiin valmiiksi luotuja AMI:ita, automaattisen skaalauksen käynnistysajat lyhenevät.

#!/bin/bash
# user-data.sh — runs on first boot
yum update -y
yum install -y httpd
echo '<h1>Hello from EC2</h1>' > /var/www/html/index.html
systemctl start httpd
systemctl enable httpd

Yhdistäminen: SSH vai Systems Manager

EC2-instansseihin pääsee ensisijaisesti kahdella tavalla. SSH: edellyttää portin 22 avaamista suojausryhmässä ja yksityistä avaintiedostoa. AWS Systems Manager Session Manager: tarjoaa selaimella tai CLI:llä käytettävän komentotulkin avaamatta portteja, ilman avainparia ja täydellisen CloudTrail-lokituksen kera. Session Manager edellyttää SSM-agenttia (joka on esiasennettu Amazon Linux- ja Windows Server -AMI:hin) sekä IAM-roolia, jolla on AmazonSSMManagedInstanceCore-käytäntö. Session Manager on tuotantoinstanssien suositeltu käyttötapa.

# Start a Session Manager session (no SSH needed)
aws ssm start-session --target i-0abcdef1234567890

EC2-instanssin metatiedot

EC2 Instance Metadata Service (IMDS) on HTTP-päätepiste osoitteessa 169.254.169.254, johon pääsee vain instanssin sisältä. Se tarjoaa ajonaikaisia tietoja, kuten instanssin tunnuksen, AMI-tunnuksen, julkisen IP-osoitteen, IAM-roolin tunnistetiedot ja saatavuusalueen. IMDSv2 (nykyinen suositeltu käytäntö) edellyttää istuntokohtaista tunnistetta, mikä estää palvelinpuolen pyyntöjen väärentämiseen (SSRF) perustuvia hyökkäyksiä lukemasta metatietoja haavoittuvan sovelluksen kautta. Määritä instanssit aina vaatimaan IMDSv2:ta.

# Get instance ID using IMDSv2
TOKEN=$(curl -X PUT 'http://169.254.169.254/latest/api/token' \
  -H 'X-aws-ec2-metadata-token-ttl-seconds: 21600' -s)
curl -H "X-aws-ec2-metadata-token: $TOKEN" -s \
  http://169.254.169.254/latest/meta-data/instance-id

Sijoitteluryhmät

Sijoitteluryhmät määrittävät, miten instanssit jaetaan taustalla olevan laitteiston kesken. Cluster: sijoittaa instanssit lähelle toisiaan yhteen saatavuusalueeseen erittäin pienen verkkoviiveen ja suuren kaistanleveyden saavuttamiseksi — ihanteellinen HPC:lle. Spread: sijoittaa kukin instanssi erilliselle laitteistolle korreloituneiden häiriöiden vähentämiseksi — ihanteellinen pienille kriittisille instanssiryhmille (enintään 7 instanssia saatavuusaluetta kohden). Partition: jakaa instanssit loogisiin osioihin erillisillä palvelinkaapeilla — ihanteellinen suurille hajautetuille järjestelmille, kuten Hadoopille ja Cassandralla, joissa palvelinkaappitietoisuus on tärkeää.

# Create a cluster placement group
aws ec2 create-placement-group \
  --group-name HighPerfCluster \
  --strategy cluster

EC2:n lopetussuojaus

Lopetussuojaus estää instanssin tahattoman lopettamisen konsolin, CLI:n tai API:n kautta. Ota se käyttöön, kun käynnistät kriittisiä instansseja. Huomaa, että vaikka lopetussuojaus olisi käytössä, Auto Scaling Groups voi silti lopettaa instansseja skaalauksen pienentämisen yhteydessä, ellet määritä instanssisuojausta erikseen. Juuri-EBS-taltion DeleteOnTermination-määrite määrittää, poistetaanko taltio automaattisesti instanssin lopettamisen yhteydessä — suositeltu käytäntö on true juuritaltioille ja false säilytettäville datatal t ioille.

# Enable termination protection
aws ec2 modify-instance-attribute \
  --instance-id i-0abcdef1234567890 \
  --disable-api-termination

Pikatarkistus

Testaa tämän oppitunnin AWS Solutions Architect (SAA-C03) -käsitteiden ymmärtämisesi.

Oppitunnin yhteenveto

Tässä oppitunnissa opit, että EC2-instanssit käynnistetään AMI:sta, ja niille valitaan instanssityyppi, avainpari, suojausryhmä ja valinnaiset käyttäjätiedot, Elastic IP:t tarjoavat pysyvät julkiset osoitteet, kun taas tavalliset julkiset IP-osoitteet vaihtuvat pysäytyksen ja käynnistyksen yhteydessä ja Systems Manager Session Manager on tuotantoinstanssien suositeltu käyttötapa SSH:n sijaan. Seuraavaksi vertailemme instanssityyppejä ja hinnoittelumalleja.

Aloita maksutta

Opi Cloud & IT Cert Prep tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
150
Oppitunnit
600

Usein kysytyt kysymykset

Onko oppitunti ”Ensimmäisen EC2-instanssin käynnistäminen” ilmainen?

Kyllä – oppitunnin ”Ensimmäisen EC2-instanssin käynnistäminen” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Cloud & IT Cert Prep-kurssin, päivitä CoddyKit PROhon. Cloud & IT Cert Prep-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Ensimmäisen EC2-instanssin käynnistäminen”?

Käytte läpi käynnistystoiminnon, valitsette AMI:n ja instanssityypin, määritätte avainparit ja muodostatte yhteyden SSH:lla. Harjoittelet Cloud & IT Cert Prep-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Cloud & IT Cert Prep-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Cloud & IT Cert Prep-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.

Kuinka kauan ”Ensimmäisen EC2-instanssin käynnistäminen”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Cloud & IT Cert Prep-oppitunnilla?

Kyllä. Jokainen Cloud & IT Cert Prep-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Ensimmäisen EC2-instanssin käynnistäminen
  2. Instanssityypit ja hinnoittelumallit
  3. Security Groupit ja avainparit
  4. EC2-tallennus: Instance Store ja EBS
← Takaisin: Cloud & IT Cert Prep