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
0
3
おれのAWSが こんなに辛い訳がない!!
JAWS-UG広島 第18回勉強会 で発表したスライドです。
akira345
December 03, 2021
Tweet
Share
More Decks by akira345
See All by akira345
AWSデプロイツール紹介
akira345
0
5
40歳でやったこと
akira345
0
5
回路を読むために必要なこと
akira345
0
2
Dockerを触ってみよう
akira345
0
65
アラフォー世代が基板を作ってみた(公開用)
akira345
0
130
ESP-WROOM-02でプチIoT
akira345
0
91
トランジスタの働き(超入門編)
akira345
0
2
基板から回路図を起こしてみよう
akira345
0
1.3k
OSS翻訳プロジェクトに参加してみた
akira345
0
100
Other Decks in Technology
See All in Technology
Claude Code Actionを使ったコード品質改善の取り組み
potix2
PRO
6
2.6k
Should Our Project Join the CNCF? (Japanese Recap)
whywaita
PRO
0
290
Connect 100+を支える技術
kanyamaguc
0
150
Lazy application authentication with Tailscale
bluehatbrit
0
110
ネットワーク保護はどう変わるのか?re:Inforce 2025最新アップデート解説
tokushun
0
150
生成AIで小説を書くためにプロンプトの制約や原則について学ぶ / prompt-engineering-for-ai-fiction
nwiizo
4
3.6k
モバイル界のMCPを考える
naoto33
0
360
ビギナーであり続ける/beginning
ikuodanaka
2
260
あなたの声を届けよう! 女性エンジニア登壇の意義とアウトプット実践ガイド #wttjp / Call for Your Voice
kondoyuko
4
510
20250625 Snowflake Summit 2025活用事例 レポート / Nowcast Snowflake Summit 2025 Case Study Report
kkuv
1
370
ハッカソン by 生成AIハッカソンvol.05
1ftseabass
PRO
0
140
Understanding_Thread_Tuning_for_Inference_Servers_of_Deep_Models.pdf
lycorptech_jp
PRO
0
150
Featured
See All Featured
Become a Pro
speakerdeck
PRO
28
5.4k
Art, The Web, and Tiny UX
lynnandtonic
299
21k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
720
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.8k
For a Future-Friendly Web
brad_frost
179
9.8k
Build The Right Thing And Hit Your Dates
maggiecrowley
36
2.8k
Designing for Performance
lara
609
69k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
What's in a price? How to price your products and services
michaelherold
246
12k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
357
30k
RailsConf 2023
tenderlove
30
1.1k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
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は物理のネットワークや運用経験がない と辛い • サーバレスになるとその辺りは幾分楽 • 課金ゲーなので金でわりかし何とかなる • クラウドになるから永久に持つ訳じゃない。むしろオン
プレより寿命が短いので、数年でリプレイスを計画に入 れるべし。 • 特にサーバレスは半強制的にバージョンアップ • 作り変えるのが面倒になった段階で爆弾を抱えている • それ本当にクラウドじゃないとだめですか?