SlideShare a Scribd company logo
インフラセキュリティ
ブートキャンプ
株式会社WHERE
IoT基盤センター サービスプロデューサー
兼 情報システム室 インフラエンジニア
仲山 昌宏 ( @nekoruri )
講師プロフィール
• 仲山昌宏
• いわゆるインフラエンジニア+ウェブアプリ開発者
• 秋葉原生まれ大手町育ちの
歌って踊れる江戸っ子インフラエンジニア
• 株式会社WHERE
IoT基盤センター サービスプロデューサー
兼 情報システム室 インフラエンジニア
2
経歴
• 2003-09~2005-03 大学院ネットワーク管理
• 2004-03~2010-06 WIDE Project irc.fujisawa.wide.ad.jp運用
• 2004-09~2005-10 国際大学GLOCOM (研究アシスタント)
• 2005-08~2008-09 AIP
• 2008-10~2009-12 KBB, I&D
• 2010-01~2013-06 Xtone
• 2013-07~2016-01 CyberAgent (パシャオク⇒Ameba⇒DC運用)
• 2016-02~現職 WHERE (測位技術スタートアップ) ⬅今ここ
学
生
社
会
人
1999-04
↓
2006-03
2006-03
↓
主なスキルセット
• システム設計
• クラウドとIoTデバイス組み合わせて
良い感じのシステム
• ウェブアプリの内部アーキテクチャ
• アプリケーション開発
• メインはサーバサイド
Perl、Ruby、Python、JS、PHP
• 過去にはWindowsとかも
• 最近IoTデバイスの内蔵マイコンにも
手を出し始めた
• 情報システム
• 社内ITシステムの設計、運用
• 情報セキュリティマネジメント
• サーバ/ネットワーク運用
• サーバHW(特にストレージ)周り
• IPネットワーク
• 「必要があればなんでもやる」
4
この講義の目的
• セキュアなWebサービスインフラの構築・運用技術
• クラウド時代のサービス運用のポイント
• コードで管理されたサーバインフラの運用
• アプリケーションコンテナの活用
• サーバレスアーキテクチャ
• 負荷試験
5
進め方
• 基礎知識・ポイントの解説
• グループワーク
• 3人1グループでシステムを一つ作ってもらいます
• seccamp Slackでプライベートグループを作り、
作業内容を逐次そこに報告してください
• 最後に個人ごとに各自3分くらいの発表
6
サービスの運用とは
• 目的:
• ITを使って「お金を稼ぐ」
• 手段:
• お客さんにサービスを提供し、その対価を受け取る
(直接部門)
• 従業員にサービスを提供し、生産性を向上させる
(間接部門)
7
サービスの価値
• 使いたいときに使える(落ちない)こと
• いわゆる「サービスの品質」
• そもそも:
• サービスの内容がお客さんの期待を満たすこと
8
サービスの価値
• 使いたいときに使える(落ちない)こと
• いわゆる「サービスの品質」
• そもそも:
• サービスの内容がお客さんの期待を満たすこと
し続けること
9
サービスインフラの使命
• サービスの価値を利用者に届け続ける
• 新しい機能をすぐに届ける
• 既存の機能も安定して届け続ける
• クラウドの活用で実現
10
DevOps
• 過去:
• 新しい機能をすぐに届ける → 開発者(Dev)の仕事
• 既存の機能も安定して届け続ける → 運用者(Ops)の仕事
• 新しい機能に不具合が多いとシステムは安定しない
⇒ DevとOpsで利害の対立、意思決定の分離
• DevOps:
• クラウドの活用で、意思決定を一つに
11
クラウドのサービス分類
• いわゆるIaaS
• サーバ単位で借りる
• いわゆるPaaS
• 機能単位で借りる
• Heroku、AWS Lambdaのような実行環境
• Amazon RDSやAWS IoTのような具体的な機能
12
IaaSの利用
• サーバを自前で用意せずクラウドで借りる
• 大きな変化は無いが、
スケールアップ(性能を上げる)
スケールアウト(台数を増やす)
のようなメリットは得られる
13
PaaSの活用
• 「ありもの」を組み合わせる
• 餅は餅屋モデル
• 「EC2使ったら負け」
• アプリケーション開発自体の変化が強いられる
• 上手くはまる=最適化できると画期的なコスト減も
14
Amazon Web Services
• 世界で一番大規模なクラウド事業者
• 対抗馬はMicrosoft Azure
• シェアはまだ大きな差がある
• 機能面では追いつきつつある(部分的に先行)
15
AWSの特徴
• 責任共有モデル
• OSから上を利用者が責任を持つ
(アマゾンは責任を持たない)
• OSから下はアマゾンが責任を持つ
• 独特な冗長化設計
• リージョンとアベイラビリティゾーン
16
リージョンとアベイラビリティゾーン
• リージョン(Region)
• 一つの地域に置かれ、システム的に独立したまとまり
• 「東京」「オレゴン」「北カリフォルニア」
• アベイラビリティゾーン(AZ)
• 1つのリージョン内に複数設置されたまとまり
• 一つの故障が複数のAZで併発しないように分離
• 個別のデータセンターを想定
17
AWSでの冗長化の基礎
同じ役割のサーバを、各AZで半々に設置
18
ap-northeast-1a ap-northeast-1c
Web Web
DBDB
ap-northeast-1
AWSでの冗長化の基礎
• 「サーバ」という枠がないもの
• Elastic Load Balancer (ロードバランサー)
• DynamoDB (NoSQLデータベース)
• などなど
• これらはAZを意識せずに冗長化されている
• これらの活用が運用を楽にする勝利の鍵
19
Amazon VPC
• AWS内に「自分のネットワーク」を確保する枠組み
• あえて作らなくても「デフォルト」のVPCが存在する
• VPCのIPアドレスブロック 例:10.0.0.0/16
• AZごとのサブネット 例:10.0.1.0/24
• AZごとのサブネット 例:10.0.2.0/24
20
サーバインフラのコード化
• 「Infrastructure as Code」
• サーバ構成をコード(具体的にはJSONやRubyベースの
DSLなど)で実装し、それをもとにAPIをたたいて展開
21
HashiCorp
• クラウドを管理するツールの開発会社
• OSSでツールを提供
• Vagrant、Packer、Terraform、Serf、Consul、Vault……
22
Terraform
• AWSやAzureの構成をコード化
• コードに合わせて必要なサーバやコンポーネントを作成
• 不必要になったら削除
• JSONで書く
• 今回はTerraformでAWSを操作してもらいます
23
Terraformの使い方
• 公式ドキュメントのIntroduction参照
• https://www.terraform.io/intro/getting-started/install.html
• DESTROY INFRASTRUCTUREまででOK
24
演習の準備
• Slackの準備
• seccamp Slackに登録
• ユーザ名を教えてください
• private channneに招待します
• GitHubの準備
• GitHubのユーザが無い人は登録
• ユーザ名を教えてください
• プライベートレポジトリに招待します。
• 別にプライベートレポジトリが必要になったら声を掛けてください。
25
演習 #01
• Terraformで、以下をやってみる
• VPCを作成
• VPC内部にサブネットを二つ作成
• Internet Gateway、Route table、Route table associationを追加
• セキュリティグループを設定(外部から22,80を公開、外向きに全ポートを開放)
• 各サブネットにAmazon Linuxでサーバを1台ずつ作成
• ひとまず個別にログインしてApacheインストール
• ELBを作成して、アクセスを振り分け
• 一手順ごとにGitHubにcommit
• AWSのアクセスキー自体をcommitしないように!
• Branchを切ってPullReqしたものを別の人がレビューしてマージする
26
前半おさらい
• Terraform
• ネットワーク構成などの自動化
• Docker
• アプリケーションを丸ごとパッケージ
• DockerHubで共有できる
27
後半
後半のゴール
• Dockerでアプリを立ち上げてみる
• サーバレスアーキテクチャに触れてみる
Docker
• アプリケーションコンテナの実行環境+α
30
アプリケーションコンテナ
• アプリケーションの実行環境をパッケージにしたもの
• ファイルシステム一式
• OS環境
• 必要なライブラリ・ミドルウェア
• アプリケーション本体
• コンテナ起動時に実行するコマンドライン
• 外部に公開する(LISTENする)TCPポート番号
• 外部と共有するファイルシステムのパス
31
Docker
• アプリケーションコンテナの実行環境+α
• DockerHubから取ってきて立ち上げる
• 複数のコンテナを同時に管理する docker-compose
• その他様々な管理ツールの集合体
32
演習 #02
• 先ほどのAmazonLinux上に、Dockerをインストール
• Dockerでオープンソースのアプリを動かしてみる
• http://qiita.com/y_hokkey/items/406b5a8c4bc15354d069
• このあたりから適当に選んでください。
参考までに「Reichat」の作者はセキュキャン勢です。
• ELB経由で見えるようにする
• (もう1台はいったんLBから抜いてください)
33
サーバレスアーキテクチャ
• 最近流行りのキーワード
34
二つのサーバレスアーキテクチャ
• アプリケーション実行環境としてのサーバレス
• アプリケーションサーバという役割としてのサーバレス
サーバレスなアプリケーション実行環境
• 「フルマネージドなPaaS」の発展系
• 短時間で起動する
• 実際の実行時間で課金される
• 利用者にとって「サーバ」という管理単位がなくなる
「アプリケーションサーバ」レス
• モノリシックな「アプリケーションサーバ」
• デーモンとして常に起動してポートをLISTEN
• リクエストをハンドリング
• バッチ処理なども
• 細かい「マイクロサービス」の集合に分割
• 一つの大きな「アプリケーションサーバ」が消失
リアクティブアーキテクチャ
リアクティブ宣言:近代的なシステムを実現するための設計原則
1. 即応性(実現したい価値)
• システム全体として素早く、かつ安定した応答時間を保つ。
2. 耐障害性(非機能要件)
• 障害が発生しても、それをコンポーネント内部に影響を隔離することで、システム全体としての即応性を保つ。
3. 弾力性(非機能要件)
• 負荷の増減があっても、ボトルネックを排除し、割り当てるリソースを調整することで、即応性を保つ。
4. メッセージ駆動(アーキテクチャ構成要件)
• 各コンポーネント間を、非同期なメッセージ配信で疎結合に保つ。
リアクティブアーキテクチャ
• 超ざっくり言うと、
• 小さなプログラムを
• メッセージ駆動で
• 繋いでいく
• というアーキテクチャが良い、というものです。
39
演習
• AWS LambdaのBlueprintから一つ動かしてみる
• hello-world系を除く
• おすすめはslack-echo-command
40
発表
• 9人それぞれ、
• どこまでできたか
• どこで苦労したか
• どんな発見があったか
• それぞれ3分くらいで発表してください。
後半おさらい
• サーバレスアーキテクチャ
• リアクティブシステム
• AWS Lambda
• Docker
• アプリケーションを丸ごとパッケージ
• DockerHubで共有できる
42

More Related Content

PDF
クラウドセキュリティ基礎 #seccamp
PDF
クラウドセキュリティ基礎
PDF
クラウドセキュリティ基礎 @セキュリティ・ミニキャンプ in 東北 2016 #seccamp
PDF
次世代プラットフォームのセキュリティモデル考察(前編)
PDF
クラウドセキュリティ基礎 #seccamp
PDF
RubyでDSL
PPTX
Internet Week 2016 脆弱性スキャナによる対策支援の課題 Vuls
PDF
セキュアなソフトウェアアーキテクチャー
クラウドセキュリティ基礎 #seccamp
クラウドセキュリティ基礎
クラウドセキュリティ基礎 @セキュリティ・ミニキャンプ in 東北 2016 #seccamp
次世代プラットフォームのセキュリティモデル考察(前編)
クラウドセキュリティ基礎 #seccamp
RubyでDSL
Internet Week 2016 脆弱性スキャナによる対策支援の課題 Vuls
セキュアなソフトウェアアーキテクチャー

What's hot (17)

PPTX
他人事ではないWebセキュリティ
PDF
[デブサミ2012]趣味と実益の脆弱性発見
PDF
なぜ自社で脆弱性診断を行うべきなのか
PDF
Privacy by Design with OWASP
PPTX
DevSecOpsのユースケースとDevSecOpsがもたらす未来(20191126)
PPTX
Vuls×deep security
PPTX
Owasp top10 HandsOn
PPTX
20181108 Participation record SANS SEC545: Cloud Security Architecture and Op...
PDF
「DevSecOpsとは?」の一歩先 (CloudNative Days Tokyo 2021)
PDF
アプリケーションのシフトレフトを実践するには
PDF
20130719 CDP Night LightningTalk "Internal Port Concentrator"
PPTX
uroboroSQLの紹介 (OSC2017 Tokyo/Spring)
PDF
OWASPの歩き方(How to walk_the_owasp)
PPTX
「教養としてのサイバーセキュリティ」講座
PPTX
20161129_npstudy_JunosAutomation
PPTX
July Tech Festa 2020 AKSを活用した内製教育支援プラットフォームをリリースした話
PPTX
侵入防御の誤検知を減らすためのDeepSecurity運用
他人事ではないWebセキュリティ
[デブサミ2012]趣味と実益の脆弱性発見
なぜ自社で脆弱性診断を行うべきなのか
Privacy by Design with OWASP
DevSecOpsのユースケースとDevSecOpsがもたらす未来(20191126)
Vuls×deep security
Owasp top10 HandsOn
20181108 Participation record SANS SEC545: Cloud Security Architecture and Op...
「DevSecOpsとは?」の一歩先 (CloudNative Days Tokyo 2021)
アプリケーションのシフトレフトを実践するには
20130719 CDP Night LightningTalk "Internal Port Concentrator"
uroboroSQLの紹介 (OSC2017 Tokyo/Spring)
OWASPの歩き方(How to walk_the_owasp)
「教養としてのサイバーセキュリティ」講座
20161129_npstudy_JunosAutomation
July Tech Festa 2020 AKSを活用した内製教育支援プラットフォームをリリースした話
侵入防御の誤検知を減らすためのDeepSecurity運用
Ad

Similar to インフラセキュリティブートキャンプ #seccamp (20)

PDF
サーバーレス時代の システム設計ワークショップ
PDF
IoT時代のセキュアなクラウドインフラ構築術 #seccamp
PPTX
Step by stepで学ぶTerraformによる監視付きAWS構築
PDF
私がMuninに恋する理由 - インフラエンジニアでも監視がしたい! -
PPTX
今からでも間に合う!インフラ自動化超入門 @渋谷
PDF
[AWS Summit 2012] クラウドデザインパターン#8 CDP アンチパターン編
PDF
20100520 【qpstudy01】 チームでトライ!インフラ構築のススメ
PDF
クラウド時代のものづくり(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccamp
PDF
AWSマネージドサービスとOSSによるミッションクリティカルなシステムの実現
PDF
コンテナ時代にインフラエンジニアは何をするのか
PPTX
インフラ系自主トレするならAWS
PDF
イントロダクション(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccamp
PDF
20101029 open cloudcampus-1
PDF
試して学べるクラウド技術!Eucalyptus/GlusterFS
PDF
OSC 2020 Fukuoka IT運用自動化を支援する「運用レコメンドプラットフォーム」実現の舞台裏
PPTX
作られては消えていく泡のように儚いクラスタの運用話
PDF
Try andstudy cloud_20120509_nagoya
PDF
OSC2013 Tokyo Spring OpenStack Overview
PDF
AWSでアプリ開発するなら 知っておくべこと
PDF
2011-04-21 クラウド勉強会
サーバーレス時代の システム設計ワークショップ
IoT時代のセキュアなクラウドインフラ構築術 #seccamp
Step by stepで学ぶTerraformによる監視付きAWS構築
私がMuninに恋する理由 - インフラエンジニアでも監視がしたい! -
今からでも間に合う!インフラ自動化超入門 @渋谷
[AWS Summit 2012] クラウドデザインパターン#8 CDP アンチパターン編
20100520 【qpstudy01】 チームでトライ!インフラ構築のススメ
クラウド時代のものづくり(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccamp
AWSマネージドサービスとOSSによるミッションクリティカルなシステムの実現
コンテナ時代にインフラエンジニアは何をするのか
インフラ系自主トレするならAWS
イントロダクション(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccamp
20101029 open cloudcampus-1
試して学べるクラウド技術!Eucalyptus/GlusterFS
OSC 2020 Fukuoka IT運用自動化を支援する「運用レコメンドプラットフォーム」実現の舞台裏
作られては消えていく泡のように儚いクラスタの運用話
Try andstudy cloud_20120509_nagoya
OSC2013 Tokyo Spring OpenStack Overview
AWSでアプリ開発するなら 知っておくべこと
2011-04-21 クラウド勉強会
Ad

More from Masahiro NAKAYAMA (20)

PDF
ハッカソンについて(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccamp
PDF
めもおきば新刊のお知らせ サーバーレスでHelloWorldする25の方法 #ssmjp
PDF
クラウド時代における分散Webシステムの構成とスケーリング #seccamp
PDF
#ServerlessDays Tokyo 2019 「サーバーレス」な同人誌の紹介
PDF
#ssmjp 2018/12 技術系同人誌を手に入れよう
PDF
FaaSのインターフェースに見るサーバーレス #serverlessconf #serverlesstokyo
PDF
クラウドでハンズオンする話 #ssmjp
PPTX
SORACOMでデータ上げてクラウドで分析・可視化するハンズオン #SecHack365
PDF
Serverless book
PDF
クラウドではじめるリアルタイムデータ分析 #seccamp
PPTX
技術系同人誌を書こう #ssmjp
PDF
「サーバレスの薄い本」からの1年 #serverlesstokyo
PDF
BluetoothメッシュによるIoTシステムを支えるサーバーレス技術 #serverlesstokyo
PDF
IoT(Bluetooth mesh) × サーバーレス
PDF
Serverless Architecture Overview #cdevc
PDF
細かすぎて伝わらないSORACOM Funnelのオプション紹介 #soracomug
PDF
AWS LambdaとDynamoDBがこんなにツライはずがない #ssmjp
PDF
Mastdonインスタンス立ててみた in Azure #ssmjp
PDF
20分でおさらいするサーバレスアーキテクチャ 「サーバレスの薄い本ダイジェスト」 #serverlesstokyo
PDF
SORACOM Funnelで手抜きIoTプラットフォーム #ssmjp
ハッカソンについて(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccamp
めもおきば新刊のお知らせ サーバーレスでHelloWorldする25の方法 #ssmjp
クラウド時代における分散Webシステムの構成とスケーリング #seccamp
#ServerlessDays Tokyo 2019 「サーバーレス」な同人誌の紹介
#ssmjp 2018/12 技術系同人誌を手に入れよう
FaaSのインターフェースに見るサーバーレス #serverlessconf #serverlesstokyo
クラウドでハンズオンする話 #ssmjp
SORACOMでデータ上げてクラウドで分析・可視化するハンズオン #SecHack365
Serverless book
クラウドではじめるリアルタイムデータ分析 #seccamp
技術系同人誌を書こう #ssmjp
「サーバレスの薄い本」からの1年 #serverlesstokyo
BluetoothメッシュによるIoTシステムを支えるサーバーレス技術 #serverlesstokyo
IoT(Bluetooth mesh) × サーバーレス
Serverless Architecture Overview #cdevc
細かすぎて伝わらないSORACOM Funnelのオプション紹介 #soracomug
AWS LambdaとDynamoDBがこんなにツライはずがない #ssmjp
Mastdonインスタンス立ててみた in Azure #ssmjp
20分でおさらいするサーバレスアーキテクチャ 「サーバレスの薄い本ダイジェスト」 #serverlesstokyo
SORACOM Funnelで手抜きIoTプラットフォーム #ssmjp

インフラセキュリティブートキャンプ #seccamp