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
おれのAWSがこんなに辛い訳がない!!
Search
akira345
December 03, 2021
Technology
56
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
74
インシデント対応
akira345
0
480
えれくら!〜電気電子工作系制作・交流会〜#29
akira345
0
48
脱・同期処理!マイクロサービスにおける負荷分散の勘所
akira345
0
140
AWSデプロイツール紹介
akira345
0
86
40歳でやったこと
akira345
0
61
回路を読むために必要なこと
akira345
0
52
Dockerを触ってみよう
akira345
0
120
アラフォー世代が基板を作ってみた(公開用)
akira345
0
170
Other Decks in Technology
See All in Technology
Oracle AI Database@Azure:サービス概要のご紹介
oracle4engineer
PRO
6
1.9k
JSAI2026 オーガナイズドセッションOS-27「不動産とAI」趣旨説明 / JSAI2026 Organized Session OS-27 “Real Estate and AI”: Statement of Purpose
ykiyota
0
220
Chainlitで作るお手軽チャットUI
ynt0485
0
170
脆弱性対応、どこで線を引くか
rymiyamoto
0
350
RSA暗号を手計算したくなること、ありますよね?? (20260615_orestudy6_rsa)
thousanda
0
180
AI Engineering Summit Tokyo 2026 AIの前に、やることがある 〜医療データ企業の4フェーズ〜
dtaniwaki
0
2.5k
Agentic ERPをどう設計するか ー 受発注エージェントを動かす、現場の知見と設計思想ー
recerqainc
1
2.2k
AGENTS.mdとSkillsで始めるAIエージェント活用
sonoda_mj
2
190
MCP Appsを作ってみよう
iwamot
PRO
4
480
なぜ Platform Engineering の土台に Kubernetes を選ぶのか
r4ynode
1
560
ポケモンの型をTypeScriptの型システムで表現してみた
subroh0508
0
370
スキルと MCP ツール、責務をどう分けるか? AI が迷わないインターフェース設計の戦略
cdataj
1
920
Featured
See All Featured
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.5k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
210
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.4k
Abbi's Birthday
coloredviolet
2
8k
First, design no harm
axbom
PRO
2
1.2k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.1k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
160
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
280
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.5k
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は物理のネットワークや運用経験がない と辛い • サーバレスになるとその辺りは幾分楽 • 課金ゲーなので金でわりかし何とかなる • クラウドになるから永久に持つ訳じゃない。むしろオン
プレより寿命が短いので、数年でリプレイスを計画に入 れるべし。 • 特にサーバレスは半強制的にバージョンアップ • 作り変えるのが面倒になった段階で爆弾を抱えている • それ本当にクラウドじゃないとだめですか?