Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
おれのAWSがこんなに辛い訳がない!!
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
akira345
December 03, 2021
Technology
67
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
おれのAWSが こんなに辛い訳がない!!
JAWS-UG広島 第18回勉強会 で発表したスライドです。
akira345
December 03, 2021
More Decks by akira345
See All by akira345
回路設計のバイブコーディング
akira345
0
180
ビジネス要件から逆算するマイクロサービスアーキテクチャ選定の「思考プロセス」
akira345
0
95
インシデント対応
akira345
0
600
えれくら!〜電気電子工作系制作・交流会〜#29
akira345
0
70
脱・同期処理!マイクロサービスにおける負荷分散の勘所
akira345
0
170
AWSデプロイツール紹介
akira345
0
97
40歳でやったこと
akira345
0
75
回路を読むために必要なこと
akira345
0
76
Dockerを触ってみよう
akira345
0
140
Other Decks in Technology
See All in Technology
How to Design Configuration for Rails Applications
willnet
1
480
Running Kotlin + Quarkus with Lambda
nealle
1
1.1k
アウトプット初心者、半年間のふりかえり
4o1sobblue
0
360
全PRの83%が AIレビューだけでマージできるようになった開発組織は その後どうなったか @2026/10
athug
0
150
事業成長とデータ活用を止めないためのマネジメントへ挑戦
hiracky16
0
350
Refining Active Record
shugo
0
110
JAWSUG TOHOKU 青森支部 「LoGoチャット」のAWS移行で 乗り越えたこと
taketakekaho
0
260
UniFi(ユニファイ)AIカメラの現場活用
ludicmind
1
430
AIがコードを書く時代に、エンジニアは何で自分の価値を証明するのか / In an era where AI writes code how do engineers prove their value
carta_engineering
3
970
使いこなすために知っておきたい Azure SRE Agent アンチパターン
torumakabe
2
500
LambdaWebFunctionsを試してみた / exploring-lambda-web-functions
koukihosaka
0
200
Conditional PED-ANOVA: Hyperparameter Importance in Hierarchical & Dynamic Search Spaces
pfn
PRO
0
120
Featured
See All Featured
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Everyday Curiosity
cassininazir
0
350
Statistics for Hackers
jakevdp
799
230k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
330
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
18k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
430
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
270
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
780
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
630
Practical Orchestrator
shlominoach
192
12k
Transcript
おれのAWSが こんなに辛い訳がない!! JAWS-UG広島 第18回勉強会
自己紹介 金田 晃(HN) 所属:某株式会社 I like Cloud . I like
AWS AWS SDK for JavaScript 興味のあること nodeJS 電子工作(分解・破壊・修理) Kintone API 自宅(Docker)サーバ
障害に始まり 障害に終わる
• AWSを使っていく中で知見不足、経験不足 など様々やらかしてきました • その中で軽めのものを10個ピックアップ • 大人の事情でナレッジ的なものは別の機会 に・・・
やらかしNO1 AWSサポートに加入しない • 大人の事情で(ry • 世の中にはNDAというものがあるので勉強会とかで気軽に聞 けない • 大事なことはググれないと知れ •
クラメソブログで知った気になってませんか? • それ実際やってみました? • 担当営業に聞きまくると返事が来なくなる • 基本インフラって死にゲーだし・・・ねぇ
解決策 AWSサポートに加入する • 実際にやってみる(AWS全般そうですけど) • 会社で自由に使えるアカウントを付与する • クラメソブログは書き手によっては内容が微妙省略されている • AWS公式ドキュメントを読む
• 日本語のドキュメントは古かったり翻訳が微妙だったりす る • 良く分からないブログやQiitaは鵜呑みにしないこと • 前提となる環境や条件が不明なので・・・
やらかしNO2 RDS文字コード未設定 • RDSのデフォルト文字コードはMySQLだとLaten 1、 PostgreSQLだとen_US-UTF8 • XAMPとか物理だと設定コピペであまり意識しない • 21世紀なんだしクラウドなんだからデフォルトUTF8だろ!!
• 実はアプリ側は気づいていたようだが、そんなもんと思って いたらしく(途中から)アプリ側で変換していたらしい・・ • っが、後にソート順がおかしいとお客さんからクレームにOrz • ダンプから戻すのに異なる文字コードが混入・・無事死亡
解決策 パラメタグループ作成してから作れ!! • RDSでデータベース作成する前にパラメタグループを作る • デフォルトパラメータグループを使うな! • 開発環境などでちゃんと構築練習すること • DBパラメタはシステム構築時に検討すること
• RDSでは一部変更不可のものがある • DBは罠が多いうえに切り替えは死ぬので検討に時間をかけろ • EC2上に作るのはオススメしない
やらかしNO3 RDSタイムゾーン未設定 • リージョンによるのか?と思ったそんなこともなく • 文字コードと一緒でオンプレでは意識しなかった • アプリ側も意識していないことが多いので意外と盲点になる
解決策 仕様検討時に盛り込んで必ず実験する • 日中に検証すると9時間ずれても気づかないことがある • ブラウザのタイムゾーンやOSの設定で良しなに動くことがある • アプリ側と認識を合わせる事 • 検証可能な環境の準備、テスト項目の列挙
• レビュー時にチェックすること
やらかしNO4 メンテナンスタイムで死亡 • 何故か妥協を許さないコスト重視のお客さんほどEC2単品、 RDS単品なのに完全無停止を求められる • 妥協して深夜にメンテナンスタイムを設定、自動適用にする • 翌朝画面が真っ白で怒られる・・・ •
完全無停止なんて幻想なんだから、がっつり止めさせろ!
解決策 完全無停止の幻想を捨てろ! • お客様との合意事項に計画停止、緊急時適用事項などを盛り 込む • 脆弱性がらみの緊急パッチ適用やインスタンス不良はある • 何十億円かけて作った銀行システムでも止まる •
止まったときのサブプランを持っておく • 復旧させられる障害レベルの想定と復旧手段、避難訓練的な 検証をしておく
やらかしNO5 EC2インスタンスが古い。マイクロばかり。 • 古いインスタンスはやがて処分される • (クラウドの裏は物理です!!) • リタイヤインスタンス続出→再起動後起動しないものがぽつぽ つ •
PV→HVMの時はインスタンスタイプの切り替えが出来なかった • 移行がとても手間、ダウンタイム・・・ • (大人の事情で)マイクロばかりでスワップで頑張る。 • 空きメモリが数メガバイト→辛い・・とても辛い・・
解決策 リプレイス計画を盛り込んでおく • クラウドの実態は巨大なオンプレ • クラウドといえどリプレイスからは免れられない • 予算と時間と人を構築時から計画しておく • 場合によってはコンテナ、サーバレス等も設計時検討する
• 構築時にインスタンス移行を検討、実験してみると安心 • お金かけてEC2複数台構成にしておく • インスタンスサイズは余裕をもって!!
やらかしNO6 ElastiCache(Memcached)の選定時 メモリしか見なかった • ElastiCacheの選定時、メモリしか見ず、マイクロでいいだろ と選定 • 負荷テスト時、なぜかパフォーマンスが上がらない • EC2やRDSも負荷が上がらず、ElastiCacheの空きもある
• おそらくインスタンスサイズによる帯域が頭打ちになった • せめてインスタンスごとの最低帯域載せませんか?
解決策 必要なネットワーク帯域を意識する • 正直厳しい • 帯域保証のインスタンスは無い(よね?) • クラウドの裏側は仮想ネットワークが張り巡らされている • パフォーマンスが出ないときの検討事項として頭に入れとく
やらかしNO7 本番環境で引っかかるAPI制限 • AWSには様々なAPI制限がある • 今どれくらい使っているのか簡単に知る方法がほぼない • EC2とか一部はコンパネができた • 本番環境でかつ最大アクセス数の負荷テストをするのは困難
• 引っかかったAPIが緩和不可の場合構成から見直しになるので 詰む • 緩和申請がなかなか交渉と時間がかかる • せっかくのクラウドなのにスケールの足を引っ張るのでほん と何とかしてほしい!
解決策 AWSサポートにアドバイスをもらう • 正直開発時に制限を意識するのは無理 • ミニマムスタートの場合かなり辛い • 可能なら負荷テストをして炙り出す • ちゃんとエラーログを吐く、通知をする!
• CloudTrail・・・ • 制限値については英語のドキュメントを読むこと!
やらかしNO8 インスタンス在庫切れ • アクセス集中の時刻に合わせてインスタンスサイズを変更 • しかしインスタンスの在庫切れで失敗!! • 迫る時刻、より上位のインスタンスは費用増加なので上長の 承認が・・・ •
リザーブドは事実上の資産管理を強いられるので辛い
解決策 スケールアウトの構成にする • リザーブドインスタンスで確保する手もあるが・・・ • インスタンスが売り切れるってのを知らない人が意外と多 い? • 様々な理由で単一インスタンス、スケールアップしか手段が 取れない場合、売り切れた場合の想定をしておきましょう。
• インスタンスサイズによってエフェメラル領域があったりな かったりするので注意!(SWAPとか)
やらかしNO9 便利な自動化も時には・・・ • サーバレスで構成する場合、構成要素が多いのでデプロイ自動化 はほぼ必須 • しかし、残念ながらすべてが自動化できるわけではない • すべての操作がAPIやCloudFormation化できない •
手動で作成する部分、デプロイ手順を記録に残さないといけない • 自動化した場合、自動化する環境自身が陳腐化してしまい、現代 で動かせない&ブラックボックスで中身が分からんとかに • DBは他のリソースと一緒に構築してはいけない!!!!
解決策 リプレイスする気合を取っておく • 構成管理や自動化はあくまで手段 • ドキュメントを手厚く作っておく • 構成管理の設定ファイルなどにはコメントを沢山入れておく • 最悪時間がかかっても手動で構築出来るようにしておく
• ツールは流行り廃りが早い。情報のキャッチアップを! • オレオレ構成管理ツールは担当者がリプレイスされることがある ぞ!
やらかしNO10 マスタアカウントで動く夜間バッチ • AWSが出始めた頃、マスタアカウントで何でも動かす • IAM is 何?良く分からないものは触らない方がいい・・ • 後にこれはアカンとIAMを作る
• 気が付くとIAMが30個とかに膨れる • アカウントの棚卸をしないと・・ • 何故かマスタアカウントで深夜にS3アクセスしているの がいるのですが・・どこ??(涙 • 今は対策されています。
解決策 AWSアカウントを分離する • 1つのAWSアカウント内に全部を詰め込まない • サポート費用を節約する以上のリスクが潜在してない? • Organizations等を使いAWSアカウントを分離 • そのうえでIAMを作る
• IAMではなく、IAMロールを使うといい場合がある • 共用アカウントをやめろ • アカウント発行前に使用用途を聞く • クロスアカウントを作る • いっその事外部からAWSを調達する
まとめ • ぶっちゃけAWSは物理のネットワークや運用経験がない と辛い • サーバレスになるとその辺りは幾分楽 • 課金ゲーなので金でわりかし何とかなる • クラウドになるから永久に持つ訳じゃない。むしろオン
プレより寿命が短いので、数年でリプレイスを計画に入 れるべし。 • 特にサーバレスは半強制的にバージョンアップ • 作り変えるのが面倒になった段階で爆弾を抱えている • それ本当にクラウドじゃないとだめですか?