Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ALBの疎通確認をWebサーバーなしでやる
Search
jhashimoto
June 18, 2026
Technology
120
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ALBの疎通確認をWebサーバーなしでやる
JAWS-UG 群馬 #35登壇資料
jhashimoto
June 18, 2026
More Decks by jhashimoto
See All by jhashimoto
SteampipeとExcel Power QueryでAWS構成定義書の作成を自動化する
jhashimoto
0
530
EdgeプロファイルでAWSアカウントを安全に使い分ける
jhashimoto
0
190
初めてのAWS / The first AWS
jhashimoto
0
320
AWS Data Pipelineを本番投入してみた話
jhashimoto
1
1.2k
AWS Lambdaで始めるサーバーレスアーキテクチャ
jhashimoto
0
280
Amazon S3の紹介
jhashimoto
0
310
クラウド最初の一歩
jhashimoto
0
430
Other Decks in Technology
See All in Technology
SmartHR Engineering Team Deck
smarthr
1
2.5k
LLM・AIエージェントシステムベストプラクティス
shibuiwilliam
6
1.4k
同じWAFが、攻撃の“形”は弾く── 正当な“形”の不正は通す
kuroneko13
0
230
【AG-UI × A2UI × MCP Apps】Generative UIをやさしく解説する
nrinetcom
PRO
1
140
QAエンジニア起点で進める、SmartHRにおける信頼性向上について
kaomi_wombat
1
150
【CEDEC2026】コードレビュー支援ツール開発から学ぶ:LLMを用いた業務システムの実践的な運用設計と誤出力対策
cygames
PRO
0
850
2026-08-05 IBM Z開発最前線!IBM Bob Premium Package for Zって何がすごいの?
yutanonaka
0
270
Kiro Crew入門 - 常駐エージェントの仕組みと使いどころ / Intro to Kiro Crew
k_adachi_01
1
400
認知負荷をGemini で溶かす — GKE 基盤「Orbit」における AI エージェントの実践
sansantech
PRO
1
320
私がブラウザを自作したくなった理由
supurazako
1
260
研究開発部の紹介 / Sansan R&D Profile
sansan33
PRO
4
24k
AIのためのEthernet技術動向 (SerDes)
markunet
1
210
Featured
See All Featured
WCS-LA-2024
lcolladotor
0
800
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
350
How to make the Groovebox
asonas
2
2.3k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
420
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
sira's awesome portfolio website redesign presentation
elsirapls
0
320
Making Projects Easy
brettharned
120
6.7k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
240
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
770
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
56k
Transcript
ALB の疎通確認をWeb サーバーなしでやる JAWS-UG 群馬 #35 10 分LT JAWS-UG 群馬
#35 1 / 14
発表者 橋本淳一 フリーランスのクラウドエンジニア 最近都内から栃木に引っ越しました 現在の仕事はEC サイトのインフラ運用 ポートフォリオ: https://lapras.com/public/jhashimoto JAWS-UG 群馬
#35 2 / 14
前提 インフラ担当とアプリ担当が別れている インフラ担当: ALB とEC2 の構築 アプリ担当: EC2 のOS より上のレイヤーを担当
インフラ担当としてALB -> EC2 の疎通確認をして引き渡したい JAWS-UG 群馬 #35 3 / 14
構成 以下の経路を想定。 クライアント │ HTTPS:443 ▼ ALB + ACM │
HTTP:8080 ▼ ターゲットグループ │ HTTP:8080 ▼ EC2インスタンス JAWS-UG 群馬 #35 4 / 14
目的 ALB にリクエストし、ターゲットからのレスポンスが返ることを確認したい ただし、Apache/Nginx 等のミドルウェアはインストールしたくない(インフラの 責務ではないから) テスト例: curl https://my-domain.com/ #
OK JAWS-UG 群馬 #35 5 / 14
問題 Web サーバーのミドルウェアがないとレスポンスが返せない ターゲットグループのヘルスチェックをパスする必要がある 例: ステータス200 を3 回連続で返したら、Healthy JAWS-UG 群馬
#35 6 / 14
案1: nc コマンド (1/2) nc コマンドのシンプルな使い方。 # サーバーで待ち受けておく nc -lk
8080 # クライアントからリクエスト echo "OK" | nc -q 0 {サーバーIP} 8080 -l : Listen モード -k : Keep inbound sockets open for multiple connects. 切断後も同じポートで次の 接続を待ち続ける -q 0 : quit after EOF on stdin and delay of secs. STDIN で EOF 後すぐに閉じる JAWS-UG 群馬 #35 7 / 14
案1: nc コマンド (2/2) 以下をターゲットで実行しておくと、ヘルスチェックをパスでき、リクエストに対し てレスポンスを返せる。 8080 でリッスンし、リクエストに対して200 を返す レスポンスを返した後も、リッスンが継続される
while true; do echo -e "HTTP/1.1 200 OK\r\nContent-Length: 3\r\n\r\nOK\n" | nc -l 8080 done # 以下のレスポンスを返す # HTTP/1.1 200 OK # Content-Length: 3 # # OK # JAWS-UG 群馬 #35 8 / 14
案2: Python でWeb サーバーを立てる (1/2) Python の組み込みHTTP サーバーなら、ワンライナーでHTTP サーバーを起動できる。 JAWS-UG
群馬 #35 9 / 14
案2: Python でWeb サーバーを立てる (2/2) PORT=8080 python3 -c " import
http.server, socketserver, os PORT = int(os.environ['PORT']) class Handler(http.server.BaseHTTPRequestHandler): def do_GET(self): self.send_response(200) self.end_headers() self.wfile.write(b'OK\n') def log_message(self, format, *args): pass # TCPサーバの終了直後にもう一度起動したときの「Address already in use」エラーを避ける # https://www.geekpage.jp/programming/winsock/so_reuseaddr.php socketserver.TCPServer.allow_reuse_address = True with socketserver.TCPServer(('', PORT), Handler) as httpd: print(f'Listening on port {PORT}') try: httpd.serve_forever() # Ctrl + C による KeyboardInterruptを抑制 except KeyboardInterrupt: pass " JAWS-UG 群馬 #35 10 / 14
補足: コマンド実行後にPORT 変数は参照されるか? A: 参照されないので、環境を汚さない コマンドの前に KEY=VALUE の形式で書くことを「パラメータ代入」と呼び(シェルの 機能) 、そのコマンドの実行中だけ環境変数として参照できる。
実験結果: $ PORT=8080 env | grep PORT # PORTを環境変数として参照できる PORT=8080 $ echo ${PORT} # コマンド実行後のシェル自身にはPORTが残っていない(何も出力されない) $ 参考: https://astro.uni-bonn.de/~sysstw/CompMan/gnu/bashref.html#TOC49 JAWS-UG 群馬 #35 11 / 14
リクエストしてみる ローカルホストにリクエストする。 curl http://localhost:8080/my-health-check-path # OK ターゲットのステータスが Healthy になったらドメインに対してリクエストする。 curl
https://my-domain.com/ # OK 確認が終わったら、ターミナルで Ctrl + C して HTTP サーバーを停止する。 JAWS-UG 群馬 #35 12 / 14
まとめ Web サーバーを構成していないターゲットでも、nc コマンドやPython の組み込み HTTP サーバーで疎通確認ができる nc コマンドは手軽だが、ヘルスチェックを通すにはHTTP レスポンスを自分で組み
立てる必要がある Python の組み込みHTTP サーバーなら、ワンライナーでもHTTP サーバーを起動でき る インフラ担当の責任範囲内(ミドルウェア追加なし)で、ALB -> EC2 の疎通確認 が完結できる JAWS-UG 群馬 #35 13 / 14
ありがとうございました JAWS-UG 群馬 #35 14 / 14