AWS 昔ばなし

EC2-Classic の時代から VPC がデフォルトになるまで

松井基勝
JAWS-UG 横浜 #100 記念LT
2026-04-18

JAWS-UG 横浜 #100

自己紹介

  • 松井基勝(まついもとかつ)
  • CTO of Japan at Soracom (ex: AWS 2010-2015)
  • X: @j3tm0t0
  • AWS を触り始めたのは 2008年頃に EC2 を触ったのが最初
    • 多分この記事を見て https://gigazine.net/news/20080427_rightscale/
      (当時は Management Console がなく、3rd party 製のコンソールがあった)
    • 当時インフラエンジニアだった自分は、数分でサーバ立ち上がるなんて、自分の仕事がなくなっちゃう!と焦ってクラウド業界を目指したのであった

今日はちょっと昔話をしにきました

@j3tm0t0
JAWS-UG 横浜 #100

JAWS-UG 横浜 #100

おめでとうございます🎉

@j3tm0t0
JAWS-UG 横浜 #100

今日のテーマ

「あの頃の AWS、覚えてますか?」

  • EC2-Classic の時代
  • VPC 黎明期 時代
  • 今となっては語り草になったあれこれ
@j3tm0t0
JAWS-UG 横浜 #100

第1章

EC2-Classic

@j3tm0t0
JAWS-UG 横浜 #100

EC2-Classic とは

  • VPC が登場するの EC2
  • 全ユーザー共通のフラットなネットワーク (AZは選べるが、Subnet はない)
    • 大部屋に雑魚寝状態
  • 起動すると Private IP(10.0.0.0/8)が勝手に付く
    • 自分で指定できない(今の VPC との大きな違い)
  • Public IP はインスタンスの外で NAT される(これは今も同じ)
  • Security Group でインスタンス間のアクセス制御する
  • VPN を使って classic 内にオーバーレイ的に閉域を組んでる猛者もいた
@j3tm0t0
JAWS-UG 横浜 #100

EC2-Classic あるある:三層構成の事故

  • frontend / backend / database の三層構成はよくあった
  • backend を起動し直すと IP が変わる
    • Stop→Start でも Private IP が変わる
  • frontend が IP をキャッシュして名前を引き直さない実装だと…
    • → backend が迷子になって障害
  • クラウド内では「DNS 名で喋ろう、TTL を短くしよう」の原体験

インスタンス起動直後、別の会社の人気サイトの frontend サーバから、backend にめちゃくちゃアクセスされるというトラブルもありました

@j3tm0t0
JAWS-UG 横浜 #100

第2章

VPC 黎明期

@j3tm0t0
JAWS-UG 横浜 #100

VPC 黎明期(2009〜)

  • 2009年末に Virtual Private Cloud が登場
  • ただし Internet Gateway は存在しなかった!
  • 当初は VPN 接続前提の "プライベートなクラウド"
    • 外に出るには VGW + VPN 経由で、自社拠点を経由
  • VPN 接続テストのために、秋葉原で 中古 VPN ルーター (YAMAHA RTX1100 とか)を買い漁ったり、自宅の ISP を 固定 IP にしたりして、ラボを作ってました

VPC = 「オンプレの延長との隔離された空間」ということでこんな事が起きた

@j3tm0t0
JAWS-UG 横浜 #100

ENI 2枚挿しアンチパターン

  • VPC ならではの機能:ENI (Elastic Network Interface) を付け外し
  • オンプレ脳で「DMZ 用と内部用で NIC 分けなきゃ!」と 2 枚挿しがち
    • でも VPC は subnet 間は標準でルーティングされるし、制御は SG / NACL でできる
    • つまり そもそも 2 枚挿す意味がほぼない
  • それでも挿して沼にハマる人が続出
    • 両 NIC にデフォルト GW が設定されて、ルーティングが壊れて通信不能
    • Src/Dst Check に引っかかって、想定と違う NIC から出たパケットが Drop
    • OS が 2枚目を自動認識してくれない → 手で ifcfg-eth1 を書く羽目に

VPC の作法に慣れるまでは、オンプレの常識が罠になる

@j3tm0t0
JAWS-UG 横浜 #100

その後 IGW が登場(2011年頃)

  • ようやく VPC 単体でインターネットに出られるように
  • Default VPC は 2013年から(リージョンによる)
    • それまではまず VPC を作るのが普通だった
    • うっかり Default VPC を消してしまった人、手を挙げて!
  • IPv4 は無料だった! (EIP もアタッチしてれば無料)
    • だから、Public IP を付けっぱなしにしてる人が多かった
    • 今は EIP を付けっぱなしにすると課金されるので、
      Public IP は必要なときだけの運用が当たり前に

そんな時必要になるのは...

@j3tm0t0
JAWS-UG 横浜 #100

NAT インスタンス

  • NAT を行うインスタンスを自分で立てて運用
    • Amazon Linux の AMI に nat 付きがあった(まだあるっけ?)
  • 落ちたら外に出られなくなる 完全SPOF
  • HA にするには自作スクリプトで routeTable を書き換え
    • これを書いたブログ記事がよく読まれました
  • NAT Gateway が出るまではこれしかなかった

リージョナル NAT Gateway、ありがたい(もう少し安いといいけど)

@j3tm0t0
JAWS-UG 横浜 #100

ちなみに…

@j3tm0t0
JAWS-UG 横浜 #100

そのほかの "昔はね…" 集

  • 日本にリージョンがなかった時代、us-west-1 や us-east-1 を使ってた
  • インスタンスを止めると データがロスト するのが当たり前だった
    • EBS が出る前は、S3 や SimpleDB にデータを永続化するのが推奨
    • まさか公式で s3fs モドキが出るとは思わなかったぜ
  • 各種 CLI が基本 Java で書かれてて、起動がめっちゃ遅かった
    • しかも API レスポンスも JSON じゃなくて、XML で扱いづらかった
  • CloudFormation もなかったので、構築はポチポチか 自作スクリプト

もっと聞いてみたい人、もっと語りたい人、あとで話しましょう!

@j3tm0t0
JAWS-UG 横浜 #100

まとめ

  • AWS はものすごい速度で進化してきた

  • 当時の "不便" は今ではマネージドサービス

  • 今日の "当たり前" も、10年後には昔話になるはず

  • 変わらないのは、不便さを創意工夫して乗り越える 「ないなら作る」 の精神

    • AI 時代に一番大事な 「スキル」 だと思う

次の100回も、歴史を作っていってください!

@j3tm0t0

ありがとうございました

Happy 100th, JAWS-UG 横浜!

5分なので、ポイントを絞ってテンポ良く

TODO: 自分が踏んだ落とし穴があればここに

TODO: 時間があれば1〜2個ピックアップして話す