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
saramune
March 14, 2021
Technology
2
660
脱・初心者!AWSコンピューティング・ネットワークのテクニック集
JAWS DAYS 2021プレイベントの登壇資料です。
https://jawsdays2021.jaws-ug.jp/pre-event-timetable/
saramune
March 14, 2021
Tweet
Share
More Decks by saramune
See All by saramune
self-hosted runnersでAWSコスト削減?
saramune
0
67
業務効率向上としての分割キーボード
saramune
0
88
インフラ観点で見るセキュリティ〜4Cモデルに倣って〜
saramune
0
4
適材適所
saramune
1
68
ChatworkのSRE部って実は 半分くらいPlatform Engineering部かもしれない
saramune
0
500
週刊AWSキャッチアップ(2024/03/25週)
saramune
0
85
なんでもかんでもコンテナ化すればいいってもんでもないけど なんでもかんでもコンテナ化したらスッキリしました
saramune
2
320
ACKを活用して 使い捨てAWS検証環境を構築している話
saramune
0
1k
KubernetesとTerraformのセキュリティ/ガバナンス向上委員会 with OPA
saramune
2
1.4k
Other Decks in Technology
See All in Technology
TanStack Routerに移行するのかい しないのかい、どっちなんだい! / Are you going to migrate to TanStack Router or not? Which one is it?
kaminashi
0
600
これまでの計測・開発・デプロイ方法全部見せます! / Findy ISUCON 2024-11-14
tohutohu
3
370
Shopifyアプリ開発における Shopifyの機能活用
sonatard
4
250
OTelCol_TailSampling_and_SpanMetrics
gumamon
1
190
第1回 国土交通省 データコンペ参加者向け勉強会③- Snowflake x estie編 -
estie
0
130
BLADE: An Attempt to Automate Penetration Testing Using Autonomous AI Agents
bbrbbq
0
320
開発生産性を上げながらビジネスも30倍成長させてきたチームの姿
kamina_zzz
2
1.7k
マルチプロダクトな開発組織で 「開発生産性」に向き合うために試みたこと / Improving Multi-Product Dev Productivity
sugamasao
1
310
iOS/Androidで同じUI体験をネ イティブで作成する際に気をつ けたい落とし穴
fumiyasac0921
1
110
10XにおけるData Contractの導入について: Data Contract事例共有会
10xinc
6
650
Flutterによる 効率的なAndroid・iOS・Webアプリケーション開発の事例
recruitengineers
PRO
0
110
VideoMamba: State Space Model for Efficient Video Understanding
chou500
0
190
Featured
See All Featured
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
720
Speed Design
sergeychernyshev
25
620
Fireside Chat
paigeccino
34
3k
Gamification - CAS2011
davidbonilla
80
5k
Adopting Sorbet at Scale
ufuk
73
9.1k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
229
52k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
44
2.2k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.4k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
329
21k
A Tale of Four Properties
chriscoyier
156
23k
Transcript
JAWS DAYS 2021 プレイベント 脱・初心者! AWSコンピューティング・ ネットワークのテクニック集
• 古屋 啓介 • アイレット株式会社cloudpack所属 • AWSとイチャイチャするひと 自己紹介
AWSイチャイチャ集団アイレット cloudpack お客様 定額課金・請求書払い 24時間365日の監視運用保守
• お話すること ◦ 現役AWSイチャイチャエンジニアがよくする設定 ◦ VPC, EC2, RDSを設計・構築するポイント • お話しないこと
◦ クラウド/AWSとは? ◦ アカウントの作り方等→ はじめに
• あとで見返してください! ◦ AWSこれから触る方 • 極端に間違ったこと言ってたらあとで刺してください! ◦ AWSイチャイチャエンジニアの方 • 知らないことがあったらぜひ実践してください!
◦ AWS触り始めたよという方 ◦ 個人では使ってるけど業務としてはこれからの方 みなさまへのおねがい
もちべーしょん(1/2) Private Link、よき... JAWS DAYSはそこからひとネタ? ネットワーク系のオススメ機能? 加えてベスプラ系オススメ設定? コンピューティングもいく? むしろ初心者向けコスパ高いオススメ設定?
• 自分が初心者だった頃を思い出す ◦ VPC, EC2なんとなくでもできてしまう ◦ ベスプラが欲しい • “なんとなく”→”理解して設定する”のお手伝いになればいいかな もちべーしょん(2/2)
• 1. ネットワーク ◦ VPC • 2. コンピューティング ◦ EC2,
ALB • 3. データベース ◦ RDS 対象とするサービス
抽象化して 備えて 楽をする 今日のポイント
1. ネットワーク
対象範囲 • リージョン • Availability Zone • VPC • Subnet
• Internet Gateway • NAT Gateway
• リージョン ◦ 地理的に離れたデータセンタ領域 ◦ 祝!大阪リージョン! ◦ 例: 東京(ap-northeast-1), 大阪(ap-northeast-3)
リージョン、Availability Zoneとは(1/3)
リージョン、Availability Zoneとは(2/3) https://aws.amazon.com/jp/about-aws/global-infrastructure/
• Availability Zone(AZ) ◦ リージョン内の独立した場所 ◦ 各AZは立地・電源が別の複数のデータセンタ群 リージョン、Availability Zoneとは(3/3)
• 利用するIPの範囲(CIDR)を定義可能な仮想ネットワーク • リージョン単位で定義、全AZを含む • VPC内にしか構築できないリソースあり(EC2, RDSなど) VPCとは
進捗
• AZ単位でCIDRを定義したもの ◦ AZをまたぐことはできない • VPCのCIDR内である必要あり ◦ 作成可能なサブネット数はVPCのCIDRに依存する ◦ 例:VPCが10.0.0.0/16の場合
▪ /17なら2個、/18なら4個... サブネットとは
• AWSのリソースとして存在するわけではない ◦ 便宜上そう呼んでいるだけ • どこへ/から疎通可能か、で区別する ◦ Public: インターネットへ/から疎通可能 ◦
Private: インターネットへ疎通可能 ◦ Isolate: VPC内部のみ疎通可能 Public, Private, Isolateサブネットとは(1/2)
• 実際の違いはルートテーブルの中身 ◦ Publicサブネット ▪ 0.0.0.0/0がInternet Gatewayに向かうように設定する ◦ Privateサブネット ▪
0.0.0.0/0がNAT Gatewayに向かうように設定する ◦ Isolateサブネット ▪ 上記のルートなし(VPC内通信のみ) Public, Private, Isolateサブネットとは(2/2)
• インターネットへの出入り口 ◦ VPCに1つ作成するもの ◦ 作ってVPCと紐付ければOK Internet Gateway
• Privateサブネット→インターネットへの出口 ◦ Publicサブネットに作成、Elastic IPが必要 ◦ AZ障害に備えて冗長化の検討余地あり(コストとの天秤) NAT Gateway or
進捗
• [備]CIDR設計 • [楽]Public IPの有効化 • [楽]テンプレートの活用 作るときのテクニック
• オンプレ等他のネットワークと接続する予定があるか? ◦ 接続先とCIDRが重複していると接続できない • どのレンジ使う? ◦ RFC1918準拠で ◦ 10.0.0.0/8,
172.16.0.0/12, 192.168.0.0/16 [備]CIDR設計(1/2)
• サブネット数足りてる? ◦ ALB使う場合はAZを別にした2つ以上のサブネットが必要 ◦ RDS(Multi-AZ)したい場合も同様 • Private IP数は足りてる? ◦
サブネットはAWS予約で5つ、ELB使うなら更に8つ予約される ◦ VPC内で使うサービスが増えるとIPもそれだけ消費する [備]CIDR設計(2/2)
• サブネット内に構築するEC2にPublic IPを付与するか否か ◦ 構築時に設定可能だが、サブネット単位でデフォルトを決めれる • やり方 ◦ 「自動割り当てIP設定の変更」から設定する [楽]Public
IPの有効化
• VPC作成ウィザード ◦ Public/Privateサブネット1つずつ、NATも作成してくれる [楽]テンプレートの活用(1/2)
• CloudFormation, terraform等のIaCツール ◦ よく使う(そしてあまり変化のない)ものはコード化してしまう [楽]テンプレートの活用(2/2) ぽちっとな、で作成→
• [備]VPC Flow Logs ◦ VPC内の通信ログ ◦ VPC全体、またはサブネット単位で設定可能 ◦ 監査やトラブルシューティングで活躍
• やり方 ◦ VPCまたはサブネットで「フローログの作成」 作ったあとのテクニック
• 中途採用説明会 ◦ 3/23(火) 20:00〜 ◦ オンライン • 公式YouTubeチャンネル ◦
社外向け技術勉強会 CM
2. コンピューティング
対象範囲 • EC2 • ALB
• おなじみのコンピューティングサービス ◦ 様々なプロセッサ ◦ 様々なタイプ(CPU, メモリ) ◦ 様々なOS(Linux, Windows,
Mac) • いわゆるVMインスタンス EC2とは
• [備]削除保護 • [楽]EBSをあわせて削除 作るときのテクニック
• 予期せぬ削除を防止してくれる ◦ 削除保護を解除しないと削除できない • やりかた ◦ チェックいれるだけ [備]削除保護(終了保護)
• EC2削除時にEBSを一緒に削除してくれる設定 ◦ 設定しないとEBSだけが残り続ける = 料金ががが ◦ もちろんバックアップとして残す場合は別 • やりかた
◦ チェックいれるだけ ▪ ルートはデフォルトでON ▪ それ以外はデフォルトでOFF [楽]EBSをあわせて削除
• [抽]Elastic IPの付与 • [備]Auto Recovery設定 • [楽]AWS Systems Manager設定
• [備]AWS Backup 作ったあとのテクニック
• 固定Public IP • “稼働している”インスタンスへの付与であればタダ ◦ 外部からアクセスするEC2はとりあえずつけておく ◦ 停止すると課金されちゃうので注意 •
インスタンスの抽象度UP ◦ IPそのままにインスタンスだけ入れ替えることが可能に [抽]Elastic IPの付与(1/2)
• やりかた ◦ EC2メニューでElastic IP→Elastic IPアドレスの割り当て ◦ 払い出されたIPを選択してElastic IPアドレスの関連付け [抽]Elastic
IPの付与(2/2)
• インスタンス障害時に自動復旧させる設定 • ちゃんと動きます(当たり前だけど) ◦ 担当案件で事例あり ◦ 検知から復旧まで数分 [備]Auto Recovery設定(1/3)
• やりかた ◦ ステータスチェックアラームを作成 [備]Auto Recovery設定(2/3)
• やりかた ◦ アラームアクションを「復旧」に [備]Auto Recovery設定(3/3)
• AWS Systems Manager(ASM)の各機能を使えるようにする • ASMとは? ◦ AWSインフラ管理のお助けツール ◦ 自動化
◦ 見える化 [楽]AWS Systems Manager設定(1/3)
• ASMよく使う機能 ◦ Run Command ▪ ログインなしで任意のコマンド(shell/power shell)を実行可能 ◦ Session
Manager ▪ TCP22あいてなくても、Public IPがないEC2でもssh可能 [楽]AWS Systems Manager設定(2/3)
• やりかた ◦ EC2へAWS SSM Agentのインストール ◦ EC2用IAMロールの作成とアタッチ ▪ AmazonSSMManagedInstanceCoreポリシーを付与
[楽]AWS Systems Manager設定(3/3)
• EC2(AMI)バックアップサービス • バックアップ、大事 ◦ このタグついてるやつ全部!など柔軟に対象を指定可能 ◦ 時間にはやや幅がある • VSSが使える
◦ Windowsユーザには嬉しい [備]AWS Backup(1/2)
• やりかた ◦ AWS Backupコンソールにて、以下を作成 ▪ バックアッププラン ▪ バックアップルール(いつ、どれくらい) ▪
リソースの割り当て(リソースID、タグ) [備]AWS Backup(2/2)
• [備]Security Group設計・運用 • [抽]EC2 1台でもELBを置いておく よりよくする
• 役割ベース ◦ ELB ▪ 0.0.0.0/0からHTTP/Sを許可 ◦ EC2(WebAPサーバ) ▪ ELBのSGからのみHTTPを許可
◦ RDS ▪ EC2(WebAPサーバ)のSGからのみ3306を許可 [備]Security Group設計・運用(1/4)
• アクセス元ベース ◦ 事業者ごと • 今後のことを考えて影響が少なくなるようにする ◦ 触るのは関係のあるSGだけ! ▪ 事業者・拠点が変わるとか
[備]Security Group設計・運用(2/4)
• 運用はコードベースで管理すると楽 ◦ piculetなど ◦ 嬉しいポイント ▪ バージョン管理できる! ▪ すっきりシンプルにまとめれる!
[備]Security Group設計・運用(3/4)
• 触って覚えたい!そんなあなたに [備]Security Group設計・運用(4/4)
• インスタンスの抽象度UP ◦ インスタンスが入れ替わってもアクセス先(ELB)の変更なし • 多機能 ◦ SSL Accelerator ◦
認証 ◦ WAFとの連携 [抽]EC2 1台でもELBを置いておく
3. データベース
対象範囲 • RDS
• マネージドなRDBMS ◦ バックアップや冗長化をAWSにおまかせ • いろんなエンジン ◦ MySQL, PostgreSQL, Oracle,
SQL Server, etc RDSとは
• [備]削除保護 • [備]パラメータ/オプショングループ • [備]Performance Insights 作るときのテクニック
• EC2の削除保護とおなじ • やりかた ◦ チェックいれるだけ [備]削除保護
• インスタンス作る前にパラメータ/オプショングループを作る! ◦ デフォルトのパラメータ/オプションは値を変更できない • やりかた ◦ 希望のファミリーで作成しておく ◦ インスタンス作成時に作ったパラメータ/オプションを設定する
[備]パラメータ/オプショングループ
• DBのパフォーマンスチューニングとモニタリング ◦ なんかあったときの調査材料になる • やりかた ◦ チェックいれるだけ [備]Performance Insights
とゆーわけで
• 抽象化する • 備える • 楽にする 今日お話したテクニック
• 特定のリソースに依存させず、変更をしやすくする ◦ EC2: Elastic IPの付与 ◦ EC2: 1台でもELBを置いておく 抽象化する
• 備えよ常に ◦ VPC: VPC Flow Logs ◦ EC2: Auto
Recovery設定 ◦ EC2: AWS Backup ◦ EC2, RDS: 削除保護 ◦ RDS: パラメータ/オプショングループ ◦ RDS: Performance Insights 備える
• 今後や運用を見据えて、使えるものは使えるように ◦ VPC: Public IPの有効化 ◦ VPC: テンプレートの活用 ◦
EC2: AWS Systems Manager設定 楽をする
• ベストプラクティスの宝石箱 ◦ Well-Architected Tool ◦ Blackbelt資料集 もっと知りたい!
抽象化して 備えて 楽をしよう!!! Everybody say