SlideShare a Scribd company logo
1 of 28
Copyright©NorthTorch inc. All rights reserved. 1
第18回 トーチの会
基礎教養としてのUbuntuサーバ
後編
Copyright©NorthTorch inc. All rights reserved. 2
はじめに
• 本資料の目的
• 本番サーバ納品や日々の開発でLinux(Ubuntu)に触れる機会が多い
• アプリケーションエンジニアとして、
基盤となるネットワーク・OS・ミドルウェアに関して、
広く浅く必要最低限の知識と経験を得ることを目的にする
• 資料に記載の内容は、わかりやすさ優先
→ ざっくりしすぎて不正確かも
→ 興味のある方は、自分で追加調査してみてね
Copyright©NorthTorch inc. All rights reserved. 3
Linuxのデーモン管理
Copyright©NorthTorch inc. All rights reserved. 4
Linuxのデーモン管理
• デーモンとは?
• バックグラウンドで動作するプロセス
• Windowsではサービスと呼ぶ
• 多くのLinuxディストリビューションではsystemdで管理されている
Copyright©NorthTorch inc. All rights reserved. 5
systemd①
• systemdとは?
• カーネルが起動する一番最初のプロセス(PID=1が期待される)
• WSL2のUbuntuではPID=1でないので動かない
• Ubuntu 22.04 では対応できているという情報も
https://qiita.com/shigeokamoto/items/ca2211567771cf40a90d
参考:https://dev.classmethod.jp/articles/systemd-getting-started/
Copyright©NorthTorch inc. All rights reserved. 6
データベース
Copyright©NorthTorch inc. All rights reserved. 7
リレーショナルデータベース(RDB)
• リレーショナルデータベースとは?
• データを保持するシステム
• データそのものとデータ同士の関連をあつかう
• SQLを使用して、データ同士を連結・集計できる
名称 管理者 概要
MS Access Microsoft MDBという単一のファイルで動作するRDB
ファイルサイズの壁があった
Oracle Oracle 世界一有名なDBサーバ。多機能。
MySql Oracle オープンソースのDBサーバ。Oracleに買収された。
PostgreSQL The PostgreSQL Global
Development Group
オープンソースのDBサーバ
MariaDB MariaDB Foundation オープンソースのDBサーバ。MySQLのクローン。
NorthTorchでは標準的に使用する。
SQLite SQLite Consortium オープンソースのDBサーバ。ファイルベースのRDB
Copyright©NorthTorch inc. All rights reserved. 8
MariaDBの設定で気を付けること
• 文字コードの設定
• Rootユーザのパスワード設定
• 匿名ユーザの削除
• リモートログインの遮断
• testデータベースの削除
• 新規ユーザの作成と権限の設定
mysql_secure_installationコマンドで
対話的に設定できる
参考:https://tadtadya.com/mariadb-things-to-do-right-after-installation/
Copyright©NorthTorch inc. All rights reserved. 9
標準的な権限設定
クライアント
サーバ
SSH SSH
サーバ
DB
サーバ
転送
クライアント
• サーバ外から直接DBに接続させない(FireWall, DBユーザ権限)
• SSHトンネル経由でアクセス
• 特定のユーザがアクセスできるテーブルの権限を絞る
Copyright©NorthTorch inc. All rights reserved. 10
Copyright©NorthTorch inc. All rights reserved. 11
Pythonとは
参考:https://www.itmanage.co.jp/column/osi-reference-model/
• インタープリタで動作
• インタープリタ言語としては高速(Pythonの皮をかぶったC言語)
• Duck Typing言語
• 非静的型付け言語。ヌルポが続発
→ MyPyとUTで別途品質保証する必要がある
• 外部ライブラリが豊富
• PyPIからライブラリ(パッケージ)をインストールすることができる
• バージョン間で非互換あり
• Python2系と3系で一部言語仕様が変わっている
Copyright©NorthTorch inc. All rights reserved. 12
Pythonのバージョン管理
参考:https://www.itmanage.co.jp/column/osi-reference-model/
• pyenv
• 複数のpythonバージョンを共存させる仕組み
• 仮想環境
• インストールされたライブラリのセット(=環境)を共存させる仕組み
Copyright©NorthTorch inc. All rights reserved. 13
Pythonの仮想環境について
参考:https://www.python.jp/install/windows/venv.html
• Python自身のバージョンとインストール済みパッケージ
• 複数の環境を併存させる仕組み
• Pythonインタープリタ自身を含めて特定のディレクトリ配下にため込む
• ライブラリを探すときにインタープリタ配下のディレクトリから探す
• シェルから「python」と叩いた時に
特定のインタープリタが呼び出されるようにする(activate)
Copyright©NorthTorch inc. All rights reserved. 14
Pythonのライブラリ管理について
参考:https://qiita.com/y-tsutsu/items/54c10e0b2c6b565c887a
https://zenn.dev/rihito/articles/1b096b1f695f06
https://tech.515hikaru.net/post/2019-11-23-pyproject/
• Python Package Index(PyPI)というサイトでパッケージを管理
• PyPIからパッケージがダウンロードできる
• パッケージの依存関係もPyPIで管理されている
• パッケージ管理コマンドを使用する
• pip, Pipenv, Poetry
名前 管理ファイル 特徴
pip Requirements.txt 標準ツール
インストール済の全パッケージのバージョンを一つのファイルで管理
Pipenv Pipfile, Pipfile.lock 明示的にインストールしたパッケージをPipfileで管理
インストール済の全パッケージのバージョンをPipfile.lockで管理
Poetry pyproject.toml 標準仕様のプロジェクトファイルを使用
その他ツールの設定値と共にパッケージ情報をpyproject.tomlで管理
インストール済の全パッケージのバージョンをpoetry.lockで管理
Copyright©NorthTorch inc. All rights reserved. 15
Pythonを使用した
Webアプリケーションの構成
Copyright©NorthTorch inc. All rights reserved. 16
Webアプリケーションの標準構成
Web
サーバ
WSGI
プロトコル
(TCP or
UnixSocket)
Application
サーバ
• NorthTorch社内のWebアプリケーションの標準構成
Database
サーバ
TCP
Copyright©NorthTorch inc. All rights reserved. 17
Webアプリケーションの標準構成
• uWSGI
• WebサーバからWSGIプロトコルでデータをバケツリレーするサーバ
• Django
• Pythonベースのフルスタックフレームワーク
• HTMLテンプレート機能
• ORM
Copyright©NorthTorch inc. All rights reserved. 18
WebサーバとDNS
Copyright©NorthTorch inc. All rights reserved. 19
Webサーバ
• http, httpsを通じた要求に対して応答するサーバ
• 静的ファイル(HTML, 画像ファイルetc.)をそのまま返す
• アプリケーションサーバに要求を転送する
• 他のwebサーバに要求を転送する(リバースプロキシ・ロードバランサ)
クライアント Webサーバ
クライアント Webサーバ Appサーバ
クライアント Webサーバ Webサーバ
クライアント Webサーバ Webサーバ
Webサーバ
Copyright©NorthTorch inc. All rights reserved. 20
ドメイン名とバケツリレー
クライアント DNSサーバ
https://www.northtorch.co.jp
• Domain Name Server(DNS)にドメイン名を問い合わせる
• DNSサーバは自分が知っているサーバだったらIPアドレスを答える
• 自分が知らないサーバの場合、上位のDNSサーバに問い合わせる
参考:https://www.itmanage.co.jp/column/tcp-ip-protocol/
DNSサーバ
northtorch.co.jpを
知っているDNSサーバ
IPアドレス
IPアドレス
Copyright©NorthTorch inc. All rights reserved. 21
httpとhttps
• http
• テキストベースの通信で暗号化されていない
• https
• 通信を暗号化する
• サーバ証明書によって対象のサーバが存在することを証明する
証明書には期限があり、定期的な更新が必要
• 最近のブラウザではhttpsでないと接続できないようになっている
参考:https://www.soumu.go.jp/main_sosiki/joho_tsusin/security/basic/structure/03.html
https://rainbow-engine.com/sslcert-ev-ov-dv-diff/
TLS/SSL証明書 認証の内容
Domain Validation 指定したドメイン名のサーバであること
Organization Validation 運営組織が正規に存在すること
Extended Validation 運営組織が正規に存在し、活動していること
Copyright©NorthTorch inc. All rights reserved. 22
Let’s EncryptによるSSL証明書の取得
• Let’ Encryptとは
• 無料のSSL証明書(DV)の発行機関
• certbotコマンドを使用して自動でSSL証明書が発行できる
参考:https://letsencrypt.org/ja/how-it-works/
• Certbot
• Let’s EncryptからSSL証明書を取得するためのコマンド
Copyright©NorthTorch inc. All rights reserved. 23
Certbotの仕組み
1. Webサーバ内でCertbotコマンドを起動
2. Certbotは適当な文字列を生成してWebサーバ上のURLパスに配置
3. Certbotは認証局に、URLパスと生成した文字列を伝える
4. 認証局はURLパスにアクセスし、伝えられた文字列が取得できることを確認
参考:https://letsencrypt.org/ja/how-it-works/
Copyright©NorthTorch inc. All rights reserved. 24
Certbotで証明書取得するためには
• CertbotがWebサーバの設定を変更できる必要がある
→ rootでcertbot実行する必要がある
• 認証局から指定したURLにアクセスできる必要がある
→ 不特定のアクセス元IPからURLアクセスできる必要がある
参考:https://letsencrypt.org/ja/how-it-works/
Copyright©NorthTorch inc. All rights reserved. 25
ワークショップ
Copyright©NorthTorch inc. All rights reserved. 26
実際にサーバをセットアップしてみましょう①
1. MariaDBのインストール
• 初期設定の実施
2. nginxのインストール
• ファイアウォールのポート開放
• 疎通確認
各自のサーバはDNSセットアップ済み
サーバ上で下記を実施し、確認する
Copyright©NorthTorch inc. All rights reserved. 27
実際にサーバをセットアップしてみましょう②
3. サンプルアプリの配置
• pyenvのインストール
• poetryのインストール
• ソースコードのclone
• pythonの仮想環境の作成
• nginxのサイト設定
• uWSGIのサービス化と起動
4. SSL証明書の取得
• certbotのインストール
• ブラウザでアクセス確認
基礎教養としてのUbuntuサーバ_後編.pptx

More Related Content

Similar to 基礎教養としてのUbuntuサーバ_後編.pptx

JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話Yahoo!デベロッパーネットワーク
 
NiosII と RTOS について
NiosII と RTOS についてNiosII と RTOS について
NiosII と RTOS についてryos36
 
ドキュメントの継続的改善―Sphinxを使いながら
ドキュメントの継続的改善―Sphinxを使いながらドキュメントの継続的改善―Sphinxを使いながら
ドキュメントの継続的改善―Sphinxを使いながらsoishino
 
Composer による依存管理 と Packagist によるライブラリの公開
Composer による依存管理 と Packagist によるライブラリの公開Composer による依存管理 と Packagist によるライブラリの公開
Composer による依存管理 と Packagist によるライブラリの公開Shogo Kawahara
 
Python languageupdate (2004)
Python languageupdate (2004)Python languageupdate (2004)
Python languageupdate (2004)泰 増田
 
GMO プライベート DMP 開発で 取り組んできた DevOps と今後の展望
GMO プライベート DMP 開発で 取り組んできた DevOps と今後の展望GMO プライベート DMP 開発で 取り組んできた DevOps と今後の展望
GMO プライベート DMP 開発で 取り組んできた DevOps と今後の展望Tetsuo Yamabe
 
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」ManaMurakami1
 
Open vSwitchソースコードの全体像
Open vSwitchソースコードの全体像 Open vSwitchソースコードの全体像
Open vSwitchソースコードの全体像 Sho Shimizu
 
【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作
【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作
【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作Yuki Okamoto
 
密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境Fumihito Yokoyama
 
ユーザ・デザイナーから見たPlone CMSのアピールポイント
ユーザ・デザイナーから見たPlone CMSのアピールポイントユーザ・デザイナーから見たPlone CMSのアピールポイント
ユーザ・デザイナーから見たPlone CMSのアピールポイントMasaki NIWA
 
PyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミングPyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミングRansui Iso
 
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」ericsagnes
 
Python界隈の翻訳プロジェクト
Python界隈の翻訳プロジェクトPython界隈の翻訳プロジェクト
Python界隈の翻訳プロジェクトTetsuya Morimoto
 
Python パッケージの影響を歴史から理解してみよう!
Python パッケージの影響を歴史から理解してみよう!Python パッケージの影響を歴史から理解してみよう!
Python パッケージの影響を歴史から理解してみよう!Kir Chou
 
ライブストリーミングの基礎知識
ライブストリーミングの基礎知識ライブストリーミングの基礎知識
ライブストリーミングの基礎知識kumaryu
 
Dockerの仕組みとIIJ社内での利用例
Dockerの仕組みとIIJ社内での利用例Dockerの仕組みとIIJ社内での利用例
Dockerの仕組みとIIJ社内での利用例maebashi
 

Similar to 基礎教養としてのUbuntuサーバ_後編.pptx (20)

JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
 
NiosII と RTOS について
NiosII と RTOS についてNiosII と RTOS について
NiosII と RTOS について
 
ドキュメントの継続的改善―Sphinxを使いながら
ドキュメントの継続的改善―Sphinxを使いながらドキュメントの継続的改善―Sphinxを使いながら
ドキュメントの継続的改善―Sphinxを使いながら
 
Composer による依存管理 と Packagist によるライブラリの公開
Composer による依存管理 と Packagist によるライブラリの公開Composer による依存管理 と Packagist によるライブラリの公開
Composer による依存管理 と Packagist によるライブラリの公開
 
Python languageupdate (2004)
Python languageupdate (2004)Python languageupdate (2004)
Python languageupdate (2004)
 
GMO プライベート DMP 開発で 取り組んできた DevOps と今後の展望
GMO プライベート DMP 開発で 取り組んできた DevOps と今後の展望GMO プライベート DMP 開発で 取り組んできた DevOps と今後の展望
GMO プライベート DMP 開発で 取り組んできた DevOps と今後の展望
 
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」
 
Open vSwitchソースコードの全体像
Open vSwitchソースコードの全体像 Open vSwitchソースコードの全体像
Open vSwitchソースコードの全体像
 
Introduction Pycon2010
Introduction Pycon2010Introduction Pycon2010
Introduction Pycon2010
 
200527 ur
200527 ur200527 ur
200527 ur
 
【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作
【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作
【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作
 
密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境
 
ユーザ・デザイナーから見たPlone CMSのアピールポイント
ユーザ・デザイナーから見たPlone CMSのアピールポイントユーザ・デザイナーから見たPlone CMSのアピールポイント
ユーザ・デザイナーから見たPlone CMSのアピールポイント
 
PyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミングPyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミング
 
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」
 
Python界隈の翻訳プロジェクト
Python界隈の翻訳プロジェクトPython界隈の翻訳プロジェクト
Python界隈の翻訳プロジェクト
 
Python パッケージの影響を歴史から理解してみよう!
Python パッケージの影響を歴史から理解してみよう!Python パッケージの影響を歴史から理解してみよう!
Python パッケージの影響を歴史から理解してみよう!
 
ライブストリーミングの基礎知識
ライブストリーミングの基礎知識ライブストリーミングの基礎知識
ライブストリーミングの基礎知識
 
最新UE4タイトルでのローカライズ事例 (UE4 Localization Deep Dive)
最新UE4タイトルでのローカライズ事例 (UE4 Localization Deep Dive)最新UE4タイトルでのローカライズ事例 (UE4 Localization Deep Dive)
最新UE4タイトルでのローカライズ事例 (UE4 Localization Deep Dive)
 
Dockerの仕組みとIIJ社内での利用例
Dockerの仕組みとIIJ社内での利用例Dockerの仕組みとIIJ社内での利用例
Dockerの仕組みとIIJ社内での利用例
 

Recently uploaded

デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 

Recently uploaded (14)

デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 

基礎教養としてのUbuntuサーバ_後編.pptx

  • 1. Copyright©NorthTorch inc. All rights reserved. 1 第18回 トーチの会 基礎教養としてのUbuntuサーバ 後編
  • 2. Copyright©NorthTorch inc. All rights reserved. 2 はじめに • 本資料の目的 • 本番サーバ納品や日々の開発でLinux(Ubuntu)に触れる機会が多い • アプリケーションエンジニアとして、 基盤となるネットワーク・OS・ミドルウェアに関して、 広く浅く必要最低限の知識と経験を得ることを目的にする • 資料に記載の内容は、わかりやすさ優先 → ざっくりしすぎて不正確かも → 興味のある方は、自分で追加調査してみてね
  • 3. Copyright©NorthTorch inc. All rights reserved. 3 Linuxのデーモン管理
  • 4. Copyright©NorthTorch inc. All rights reserved. 4 Linuxのデーモン管理 • デーモンとは? • バックグラウンドで動作するプロセス • Windowsではサービスと呼ぶ • 多くのLinuxディストリビューションではsystemdで管理されている
  • 5. Copyright©NorthTorch inc. All rights reserved. 5 systemd① • systemdとは? • カーネルが起動する一番最初のプロセス(PID=1が期待される) • WSL2のUbuntuではPID=1でないので動かない • Ubuntu 22.04 では対応できているという情報も https://qiita.com/shigeokamoto/items/ca2211567771cf40a90d 参考:https://dev.classmethod.jp/articles/systemd-getting-started/
  • 6. Copyright©NorthTorch inc. All rights reserved. 6 データベース
  • 7. Copyright©NorthTorch inc. All rights reserved. 7 リレーショナルデータベース(RDB) • リレーショナルデータベースとは? • データを保持するシステム • データそのものとデータ同士の関連をあつかう • SQLを使用して、データ同士を連結・集計できる 名称 管理者 概要 MS Access Microsoft MDBという単一のファイルで動作するRDB ファイルサイズの壁があった Oracle Oracle 世界一有名なDBサーバ。多機能。 MySql Oracle オープンソースのDBサーバ。Oracleに買収された。 PostgreSQL The PostgreSQL Global Development Group オープンソースのDBサーバ MariaDB MariaDB Foundation オープンソースのDBサーバ。MySQLのクローン。 NorthTorchでは標準的に使用する。 SQLite SQLite Consortium オープンソースのDBサーバ。ファイルベースのRDB
  • 8. Copyright©NorthTorch inc. All rights reserved. 8 MariaDBの設定で気を付けること • 文字コードの設定 • Rootユーザのパスワード設定 • 匿名ユーザの削除 • リモートログインの遮断 • testデータベースの削除 • 新規ユーザの作成と権限の設定 mysql_secure_installationコマンドで 対話的に設定できる 参考:https://tadtadya.com/mariadb-things-to-do-right-after-installation/
  • 9. Copyright©NorthTorch inc. All rights reserved. 9 標準的な権限設定 クライアント サーバ SSH SSH サーバ DB サーバ 転送 クライアント • サーバ外から直接DBに接続させない(FireWall, DBユーザ権限) • SSHトンネル経由でアクセス • 特定のユーザがアクセスできるテーブルの権限を絞る
  • 10. Copyright©NorthTorch inc. All rights reserved. 10
  • 11. Copyright©NorthTorch inc. All rights reserved. 11 Pythonとは 参考:https://www.itmanage.co.jp/column/osi-reference-model/ • インタープリタで動作 • インタープリタ言語としては高速(Pythonの皮をかぶったC言語) • Duck Typing言語 • 非静的型付け言語。ヌルポが続発 → MyPyとUTで別途品質保証する必要がある • 外部ライブラリが豊富 • PyPIからライブラリ(パッケージ)をインストールすることができる • バージョン間で非互換あり • Python2系と3系で一部言語仕様が変わっている
  • 12. Copyright©NorthTorch inc. All rights reserved. 12 Pythonのバージョン管理 参考:https://www.itmanage.co.jp/column/osi-reference-model/ • pyenv • 複数のpythonバージョンを共存させる仕組み • 仮想環境 • インストールされたライブラリのセット(=環境)を共存させる仕組み
  • 13. Copyright©NorthTorch inc. All rights reserved. 13 Pythonの仮想環境について 参考:https://www.python.jp/install/windows/venv.html • Python自身のバージョンとインストール済みパッケージ • 複数の環境を併存させる仕組み • Pythonインタープリタ自身を含めて特定のディレクトリ配下にため込む • ライブラリを探すときにインタープリタ配下のディレクトリから探す • シェルから「python」と叩いた時に 特定のインタープリタが呼び出されるようにする(activate)
  • 14. Copyright©NorthTorch inc. All rights reserved. 14 Pythonのライブラリ管理について 参考:https://qiita.com/y-tsutsu/items/54c10e0b2c6b565c887a https://zenn.dev/rihito/articles/1b096b1f695f06 https://tech.515hikaru.net/post/2019-11-23-pyproject/ • Python Package Index(PyPI)というサイトでパッケージを管理 • PyPIからパッケージがダウンロードできる • パッケージの依存関係もPyPIで管理されている • パッケージ管理コマンドを使用する • pip, Pipenv, Poetry 名前 管理ファイル 特徴 pip Requirements.txt 標準ツール インストール済の全パッケージのバージョンを一つのファイルで管理 Pipenv Pipfile, Pipfile.lock 明示的にインストールしたパッケージをPipfileで管理 インストール済の全パッケージのバージョンをPipfile.lockで管理 Poetry pyproject.toml 標準仕様のプロジェクトファイルを使用 その他ツールの設定値と共にパッケージ情報をpyproject.tomlで管理 インストール済の全パッケージのバージョンをpoetry.lockで管理
  • 15. Copyright©NorthTorch inc. All rights reserved. 15 Pythonを使用した Webアプリケーションの構成
  • 16. Copyright©NorthTorch inc. All rights reserved. 16 Webアプリケーションの標準構成 Web サーバ WSGI プロトコル (TCP or UnixSocket) Application サーバ • NorthTorch社内のWebアプリケーションの標準構成 Database サーバ TCP
  • 17. Copyright©NorthTorch inc. All rights reserved. 17 Webアプリケーションの標準構成 • uWSGI • WebサーバからWSGIプロトコルでデータをバケツリレーするサーバ • Django • Pythonベースのフルスタックフレームワーク • HTMLテンプレート機能 • ORM
  • 18. Copyright©NorthTorch inc. All rights reserved. 18 WebサーバとDNS
  • 19. Copyright©NorthTorch inc. All rights reserved. 19 Webサーバ • http, httpsを通じた要求に対して応答するサーバ • 静的ファイル(HTML, 画像ファイルetc.)をそのまま返す • アプリケーションサーバに要求を転送する • 他のwebサーバに要求を転送する(リバースプロキシ・ロードバランサ) クライアント Webサーバ クライアント Webサーバ Appサーバ クライアント Webサーバ Webサーバ クライアント Webサーバ Webサーバ Webサーバ
  • 20. Copyright©NorthTorch inc. All rights reserved. 20 ドメイン名とバケツリレー クライアント DNSサーバ https://www.northtorch.co.jp • Domain Name Server(DNS)にドメイン名を問い合わせる • DNSサーバは自分が知っているサーバだったらIPアドレスを答える • 自分が知らないサーバの場合、上位のDNSサーバに問い合わせる 参考:https://www.itmanage.co.jp/column/tcp-ip-protocol/ DNSサーバ northtorch.co.jpを 知っているDNSサーバ IPアドレス IPアドレス
  • 21. Copyright©NorthTorch inc. All rights reserved. 21 httpとhttps • http • テキストベースの通信で暗号化されていない • https • 通信を暗号化する • サーバ証明書によって対象のサーバが存在することを証明する 証明書には期限があり、定期的な更新が必要 • 最近のブラウザではhttpsでないと接続できないようになっている 参考:https://www.soumu.go.jp/main_sosiki/joho_tsusin/security/basic/structure/03.html https://rainbow-engine.com/sslcert-ev-ov-dv-diff/ TLS/SSL証明書 認証の内容 Domain Validation 指定したドメイン名のサーバであること Organization Validation 運営組織が正規に存在すること Extended Validation 運営組織が正規に存在し、活動していること
  • 22. Copyright©NorthTorch inc. All rights reserved. 22 Let’s EncryptによるSSL証明書の取得 • Let’ Encryptとは • 無料のSSL証明書(DV)の発行機関 • certbotコマンドを使用して自動でSSL証明書が発行できる 参考:https://letsencrypt.org/ja/how-it-works/ • Certbot • Let’s EncryptからSSL証明書を取得するためのコマンド
  • 23. Copyright©NorthTorch inc. All rights reserved. 23 Certbotの仕組み 1. Webサーバ内でCertbotコマンドを起動 2. Certbotは適当な文字列を生成してWebサーバ上のURLパスに配置 3. Certbotは認証局に、URLパスと生成した文字列を伝える 4. 認証局はURLパスにアクセスし、伝えられた文字列が取得できることを確認 参考:https://letsencrypt.org/ja/how-it-works/
  • 24. Copyright©NorthTorch inc. All rights reserved. 24 Certbotで証明書取得するためには • CertbotがWebサーバの設定を変更できる必要がある → rootでcertbot実行する必要がある • 認証局から指定したURLにアクセスできる必要がある → 不特定のアクセス元IPからURLアクセスできる必要がある 参考:https://letsencrypt.org/ja/how-it-works/
  • 25. Copyright©NorthTorch inc. All rights reserved. 25 ワークショップ
  • 26. Copyright©NorthTorch inc. All rights reserved. 26 実際にサーバをセットアップしてみましょう① 1. MariaDBのインストール • 初期設定の実施 2. nginxのインストール • ファイアウォールのポート開放 • 疎通確認 各自のサーバはDNSセットアップ済み サーバ上で下記を実施し、確認する
  • 27. Copyright©NorthTorch inc. All rights reserved. 27 実際にサーバをセットアップしてみましょう② 3. サンプルアプリの配置 • pyenvのインストール • poetryのインストール • ソースコードのclone • pythonの仮想環境の作成 • nginxのサイト設定 • uWSGIのサービス化と起動 4. SSL証明書の取得 • certbotのインストール • ブラウザでアクセス確認