okashoi / isucon13-practice-20240629

0 stars 0 forks source link

ドキュメント要チェックっぽいポイント #2

Open okashoi opened 3 months ago

okashoi commented 3 months ago

1

https://gist.github.com/kazeburo/bccc2d2b2b9dc307b5640ae855f3e0bf

https://gist.github.com/kazeburo/70b352e6d51969b214f919bcf0794ba6

okashoi commented 3 months ago

セキュリティグループはいじってもいいがこいつらはいじらない

ただし、SSH(TCP/22)、HTTPS(TCP/443) および DNS(UDP/53) については競技に影響があり変更しないでください。

https://gist.github.com/kazeburo/bccc2d2b2b9dc307b5640ae855f3e0bf#:~:text=%E3%81%9F%E3%81%A0%E3%81%97%E3%80%81SSH(TCP/22)%E3%80%81HTTPS(TCP/443)%20%E3%81%8A%E3%82%88%E3%81%B3%20DNS(UDP/53)%20%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E3%81%AF%E7%AB%B6%E6%8A%80%E3%81%AB%E5%BD%B1%E9%9F%BF%E3%81%8C%E3%81%82%E3%82%8A%E5%A4%89%E6%9B%B4%E3%81%97%E3%81%AA%E3%81%84%E3%81%A7%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82

okashoi commented 3 months ago

変更してはいけない点

https://gist.github.com/kazeburo/bccc2d2b2b9dc307b5640ae855f3e0bf#%E5%A4%89%E6%9B%B4%E3%81%97%E3%81%A6%E3%81%AF%E3%81%84%E3%81%91%E3%81%AA%E3%81%84%E7%82%B9

okashoi commented 3 months ago

映像、サムネ画像配信自体はチューニングする対象ではない

映像とサムネイル画像の配信は主催者が提供するコンテンツ配信サービス media.xiii.isucon.dev から行われます。

https://gist.github.com/kazeburo/bccc2d2b2b9dc307b5640ae855f3e0bf#%E3%82%B3%E3%83%B3%E3%83%86%E3%83%B3%E3%83%84%E9%85%8D%E4%BF%A1%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6

okashoi commented 3 months ago

DNS サーバーが動いている

ポータルから負荷走行を実行した場合、指定したサーバー(IPアドレス)のDNSサーバー(53/UDP)に名前解決を行い、得られたIPアドレスに対してHTTPSでアクセスを行います。DNSサーバーが動作していない場合や、ポータルに登録されたサーバー3台のIPアドレス以外が名前解決の結果として得られた場合、ベンチマーカーが走行せず、エラーとなります。

詳細な説明があるので要チェックか

https://gist.github.com/kazeburo/bccc2d2b2b9dc307b5640ae855f3e0bf#dns%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6

okashoi commented 3 months ago

参考実装では PowerDNS は MySQL をバックエンドデータベースとして動作しています。

https://gist.github.com/kazeburo/bccc2d2b2b9dc307b5640ae855f3e0bf#powerdns%E3%81%AE%E8%A8%AD%E5%AE%9A

okashoi commented 3 months ago

スコアは一回の負荷走行中にISUPipeの投げ銭(Tip)機能により、送金・寄付された金額(ISUCON)の合計となります。

https://github.com/KOBA789/isunarabe-images/blob/19e69b2caec53f6948c4681d1f496419119d196a/isu13/manual.md#%E3%82%B9%E3%82%B3%E3%82%A2%E8%A8%88%E7%AE%97

okashoi commented 3 months ago

https://github.com/KOBA789/isunarabe-images/blob/19e69b2caec53f6948c4681d1f496419119d196a/isu13/manual.md#%E5%8F%8D%E6%98%A0%E3%81%BE%E3%81%A7%E3%81%AE%E7%8C%B6%E4%BA%88%E6%99%82%E9%96%93%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6

反映までの猶予時間について 一部APIのデータはリクエストへの反映までに許容される猶予時間があります。

okashoi commented 3 months ago

アイコン画像を返すのに If-None-Match ヘッダに基づく 304 レスポンスを返せる

https://gist.github.com/kazeburo/70b352e6d51969b214f919bcf0794ba6#%E3%82%A2%E3%82%A4%E3%82%B3%E3%83%B3%E7%94%BB%E5%83%8F%E9%85%8D%E4%BF%A1%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E3%81%AE%E7%89%B9%E8%A8%98%E4%BA%8B%E9%A0%85

アイコン画像が更新され、送信された icon_hash の値と一致しなくなった場合には、ステータスコード200でレスポンスし画像データを送信しなければなりません(MUST)。

APIで返却される icon_hash の値と GET /api/user/:username/icon で配信されるアイコン画像は、ユーザーのアイコン画像が更新された後、2秒以内に変更が反映されている必要があります(MUST)。

okashoi commented 3 months ago

ドキュメントから読み取った概念たち

image

okashoi commented 3 months ago

DNS 水責め攻撃について

負荷走行中、DNSサーバに対していわゆる「DNS水責め攻撃」が行われます。

DNS水責め攻撃はランダムなサブドメインを生成し、大量のアクセスを行うことでDNSサーバの応答に影響を与えることを目的とする攻撃手法です。

ベンチマーカーはDNS水責め攻撃およびスクレイピングを行い、名前解決ができると HTTPS によりアクセスを試みる動作を行います。失敗(NXDOMAINや応答なし)では来ません。

https://github.com/KOBA789/isunarabe-images/blob/19e69b2caec53f6948c4681d1f496419119d196a/isu13/manual.md#dns-%E6%B0%B4%E8%B2%AC%E3%82%81%E6%94%BB%E6%92%83%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6