Skip to content
Amuradon edited this page Oct 12, 2026 · 5 revisions

Připojení k EC2 a web

Protože je instance i-08fe8a64d89f05ea9 (eu-west-1) zabezpečena podle AWS best practices pomocí AWS Systems Manager (SSM) Session Manageru (nemá do internetu otevřený SSH port 22, takže na ni nemohou útočit botnety a nemusíte spravovat .pem klíče), můžete se k ní připojit třemi způsoby:


1. Nejrychlejší způsob: Přímo v prohlížeči přes AWS Console (bez instalace čehokoliv)

  1. Otevřete AWS Console a přepněte se do zvoleného regionu Ireland (eu-west-1): 👉 https://eu-west-1.console.aws.amazon.com/ec2/home?region=eu-west-1#Instances:instanceId=i-08fe8a64d89f05ea9
  2. Označte instanci polymarket-bot-data-instance (i-08fe8a64d89f05ea9) a klikněte vpravo nahoře na Connect.
  3. Vyberte záložku Session Manager a klikněte na oranžové tlačítko Connect.
  4. V novém okně prohlížeče se vám ihned otevře interaktivní bash terminál přímo na EC2 instanci.

2. Z lokálního terminálu (PowerShell / Windows Terminal) přes AWS CLI

Pokud se chcete připojovat přímo ze svého počítače z PowerShellu:

  1. Jednorázová instalace SSM pluginu pro AWS CLI (pokud jej ještě nemáte):

    winget install Amazon.SessionManagerPlugin

    (Po instalaci restartujte okno PowerShellu.)

  2. Připojení k interaktivnímu terminálu instance:

    aws ssm start-session --region eu-west-1 --target i-08fe8a64d89f05ea9

3. Zpřístupnění REST API (:8084) na váš localhost (Port Forwarding přes SSM)

Pokud si chcete ze svého PC v prohlížeči nebo přes curl zobrazit http://localhost:8084/api/collector/status (bez otevírání portu do internetu):

aws ssm start-session `
  --region eu-west-1 `
  --target i-08fe8a64d89f05ea9 `
  --document-name AWS-StartPortForwardingSession `
  --parameters '{\"portNumber\":[\"8084\"],\"localPortNumber\":[\"8084\"]}'

Dokud necháte tento příkaz běžet, máte v prohlížeči na svém PC dostupný stav kolektoru na adrese: 👉 http://localhost:8084/api/collector/status


Užitečné příkazy po připojení na instanci

Po připojení přes Session Manager (bod 1 nebo 2) se přepněte na ec2-user nebo root (sudo su -) a můžete používat:

  • Živý výpis logů aplikace Data Collector:
    sudo docker logs -f --tail 100 polymarket-bot-data
  • Kontrola stavu všech streamů a počtu zapsaných záznamů:
    curl -s http://localhost:8084/api/collector/status | jq .
  • Kontrola nasbíraných .jsonl.zst souborů na 50 GB EBS disku:
    ls -lhR /mnt/ebs/polymarket-data/collector
  • Kontrola volného místa na EBS disku:
    df -h /mnt/ebs/polymarket-data

Stažení data souborů

Samotný aws ssm start-session je textový terminál, takže pro přenos binárních .jsonl.zst souborů z /mnt/ebs/polymarket-data/collector na váš lokální disk (např. do D:\Crypto\data\Polymarket\collector) máte 3 možnosti podle velikosti dat a toho, jak často chcete stahovat (všechny zachovávají uzavřený firewall bez veřejného portu 22):


Možnost 1: Standardní scp tunelované přes SSM (bez otevírání portu 22 v Security Group)

SSM umí tunelovat SSH/SCP provoz přes AWS-StartSSHSession. Stačí jednorázově nahrát váš lokální veřejný SSH klíč (~/.ssh/id_rsa.pub nebo ~/.ssh/id_ed25519.pub) na instanci a pak můžete spouštět běžné scp -r:

  1. Jednorázové přidání vašeho SSH klíče na EC2 přes SSM (spusťte v PowerShellu):

    # Pokud ještě nemáte lokální SSH klíč, vygenerujte si ho: ssh-keygen -t ed25519
    $pubKey = (Get-Content "$HOME\.ssh\id_ed25519.pub" -Raw).Trim()
    aws ssm send-command `
      --region eu-west-1 `
      --instance-ids "i-08fe8a64d89f05ea9" `
      --document-name "AWS-RunShellScript" `
      --parameters "commands=['mkdir -p /home/ec2-user/.ssh && echo `"$pubKey`" >> /home/ec2-user/.ssh/authorized_keys && chown -R ec2-user:ec2-user /home/ec2-user/.ssh && chmod 600 /home/ec2-user/.ssh/authorized_keys']"
  2. Jednorázové nastavení ~/.ssh/config na vašem Windows PC: Přidejte do souboru C:\Users\marti\.ssh\config:

    Host i-* mi-*
        User ec2-user
        IdentityFile ~/.ssh/id_ed25519
        ProxyCommand C:\Program Files\Amazon\SessionManagerPlugin\bin\session-manager-plugin.exe "%h" eu-west-1 StartSession AWS-StartSSHSession "{\"portNumber\":[\"%p\"]}"
  3. Stažení všech .jsonl.zst souborů jedním příkazem scp:

    scp -r i-08fe8a64d89f05ea9:/mnt/ebs/polymarket-data/collector D:\Crypto\data\Polymarket\

Možnost 2: AWS Best Practice pro objemná data — Přes S3 (aws s3 sync)

Samotný SSM kanál má omezenou propustnost (řádově jednotky MB/s). Protože depthDiff a CLOB streamy vygenerují stovky MB denně, nejrychlejší a nejspolehlivější způsob v AWS je:

  • Přenos mezi EC2 a S3 ve stejném regionu (eu-west-1) je zdarma a běží rychlostí stovek MB/s.
  • Na EC2 běží jednoduchý cron (nebo jednorázový SSM příkaz) aws s3 sync /mnt/ebs/polymarket-data/collector s3://<bucket>/collector.
  • Na svém PC pak kdykoliv spustíte:
    aws s3 sync s3://<bucket>/collector D:\Crypto\data\Polymarket\collector --region eu-west-1

(Pokud chcete tuto variantu, mohu vám privátní S3 bucket a oprávnění rovnou přidat do CloudFormation šablony data-collector-ec2.yaml a připravit lokální skript.)


Možnost 3: Okamžité stažení menšího objemu dat přímo přes aws ssm send-command (bez session-manager-plugin a bez S3)

Pokud si chcete hned teď stáhnout aktuální .jsonl.zst soubory bez instalace pluginu, tento PowerShell skript zabalí adresář /mnt/ebs/polymarket-data/collector na EC2 do .tar, přenese jej přes SSM a rozbalí na váš disk:

$targetDir = "D:\Crypto\data\Polymarket\collector-download"
New-Item -ItemType Directory -Force -Path $targetDir | Out-Null

$cmdId = aws ssm send-command `
  --region eu-west-1 `
  --instance-ids "i-08fe8a64d89f05ea9" `
  --document-name "AWS-RunShellScript" `
  --parameters 'commands=["tar -cf - -C /mnt/ebs/polymarket-data collector | base64 -w 0"]' `
  --query "Command.CommandId" --output text

aws ssm wait command-executed --region eu-west-1 --command-id $cmdId --instance-id "i-08fe8a64d89f05ea9"
$b64 = aws ssm get-command-invocation --region eu-west-1 --command-id $cmdId --instance-id "i-08fe8a64d89f05ea9" --query "StandardOutputContent" --output text

$tarFile = Join-Path $targetDir "collector.tar"
[IO.File]::WriteAllBytes($tarFile, [Convert]::FromBase64String($b64.Trim()))
tar -xf $tarFile -C $targetDir
Remove-Item $tarFile

(Poznámka: Možnost 3 funguje pouze do limitu výstupu SSM příkazu, tj. zhruba do ~18 KB po Base64 u standardního výstupu; pro reálné několikamegabajtové denní soubory použijte Možnost 1 (scp přes SSM) nebo Možnost 2 (aws s3 sync).)

WinSCP

  1. V PowerShellu spusťte SSM port-forwarding z lokálního portu 2222 na port 22 na EC2:
    aws ssm start-session `
      --region eu-west-1 `
      --target i-08fe8a64d89f05ea9 `
      --document-name AWS-StartPortForwardingSession `
      --parameters '{\"portNumber\":[\"22\"],\"localPortNumber\":[\"2222\"]}'
  2. Ve WinSCP se pak připojte na:
    • Host name: localhost
    • Port number: 2222
    • User name: ec2-user
    • Private key file (Advanced → SSH → Authentication): C:\Users\marti\.ssh\id_ed25519.ppk (převedený z id_ed25519)

ZStandard

Spusť PowerShell jako správce

choco install zstandard

Extrakce

zstd -d .\BTCUSDT-aggTrades-2026-10-12.jsonl.zst -o .\BTCUSDT-aggTrades-2026-10-12.jsonl