keyem

ソフトウェアエンジニアバックエンド(Python)がメイン。その他最近Golang、少…

keyem

ソフトウェアエンジニアバックエンド(Python)がメイン。その他最近Golang、少しフロントエンド(React、Typescript)、AWS、Terraform、Ansibleなどなど学んだことのアウトプットに。

記事一覧

Cloud Monitoringによるアラート通知

GCPの監視サービスであるCloud Monitoringを用いたアラートの通知方法について概要をまとめます。 アラートの通知方法はアラートポリシーの定義、通知先の設定の2つのステ…

keyem
3年前
2

Cloud Monitoringのまとめ

GCPの監視サービスのCloud Monitoringでできることついて簡単にまとめます。 Cloud MonitoringはVMのCPU使用率、ログなどの指標を元にしてアラートを作成したり、グラフ、…

keyem
3年前
3

GCPのIAM

GCPのIAM(Cloud Identity and Access Management)について概要をざっくりとまとめます。 GPCのIAMでは誰が(ID)がどのリソースに対してどのようなアクセス権を持つかを…

keyem
3年前
1

Pythonの関数(位置専用引数、キーワード専用引数)

Pythonの関数の引数には普通に値を渡すだけでなく、特殊な操作も行えます。 位置専用引数関数の引数に「/」を入れると「/」の前の引数を位置引数としてのみ値を渡すことを…

keyem
3年前
1

ASGI とは

ASGIとはWSGIと呼ばれるPythonのWebサーバとWebアプリケーションが通信するためインタフェース定義の後継仕様となっており、WebSocketと非同期をサポートするように設計さ…

keyem
3年前
13

Pythonの型ヒント:基本的なもの

Pythonの型ヒントの書き方について基本的なものをまとめます。 ・変数 変数の後に型を記載します。 number: int = 1flag: bool = True ・組み込み型 typingモジュールか…

keyem
3年前

GCPのデータベースの種類

GCPのデータベースにはいくつか種類があるため勉強も兼ねてそれぞれ簡単にまとめました(2020/11/13) GCPのコンソールのデータベースの項目にあるのは2020年11月13日現在…

keyem
3年前
4

PythonのData Classes

PythonのdataclassはPython3.7からの機能となり、クラスを定義する際の__init__、__repr__、__eq__などの定義を自動で作成し省略できます。 使い方はクラス定義にdataclas…

keyem
3年前

排他制御(楽観的ロックと悲観ロック)

データに対して複数のアクセスが見込まれる場合に、同時アクセスにより不整合が発生することを防ぐため、あるトランザクションがデータにアクセスしている時は他トランザク…

keyem
3年前
1

Pythonのクロージャ

クロージャとは一言で説明すると関数内の変数の宣言がその関数が宣言されたスコープと同じものとなります。 具体的には下記のように変数xが関数addと同じスコープで定義さ…

keyem
3年前
1

PythonのWSGI

WSGIとはPEP333で定義されており、サーバとWebアプリケーションをつなぐ共通のインターフェースとなっています。 これはPythonにはDjango、Flaskなど様々なWebフレームワー…

keyem
3年前

Dos攻撃・DDos攻撃

Dos攻撃、DDos攻撃についてまとめます。 それぞれ以下のようなアルファベットとなっています。 Dos:Denial of Service attack DDos:Distributed Denial of Service atta…

keyem
3年前

データベースのACID特性

データベースのACID特性について簡単にまとめます。 ただその前にACID特性が必要な理由についてファイルシステムとデータベースの違いについて解説します。 データベース…

keyem
3年前

SSL証明書の作り方(自己証明書)

SSL証明書はSSL/TLS接続を行うときに必要になるものです。 TLSの中でサーバーが認証局に認証されたものであるという証明、通信の暗号化のための公開鍵の役割を持ちます。 …

keyem
3年前
2

Pythonのsocketモジュール

PythonのsocketはBSDを元にしたOSのソケットインターフェースへのアクセスを提供するモジュールになります。OSのソケットAPIを呼び出すライブラリです。 そもそもソケット…

keyem
3年前
1

認証・認可の規格(SSO、SAML)

認証・認可の規格のSSOとSAMLについてまとめます。 シングルサインオン企業内での複数のシステム間のアカウント管理をバラバラに行わず、一度サインインしたら全システム…

keyem
3年前

Cloud Monitoringによるアラート通知

GCPの監視サービスであるCloud Monitoringを用いたアラートの通知方法について概要をまとめます。

アラートの通知方法はアラートポリシーの定義、通知先の設定の2つのステップに分かれます。

アラートポリシーアラートポリシーとは通知を行うための条件が定義されたものになります。監視メトリクス(インスタンスのCPU使用率など)を元にして、期間、動作の仕方の監視を行います。条件には不在条件(

もっとみる

Cloud Monitoringのまとめ

GCPの監視サービスのCloud Monitoringでできることついて簡単にまとめます。

Cloud MonitoringはVMのCPU使用率、ログなどの指標を元にしてアラートを作成したり、グラフ、ダッシュボードを作成、稼働時間のチェックを行うことによりシステムの監視を行うことができるサービスになっています。
大きく分けて3種類の監視の手法があります。
- 稼働時間チェック
- アラートの通知

もっとみる

GCPのIAM

GCPのIAM(Cloud Identity and Access Management)について概要をざっくりとまとめます。

GPCのIAMでは誰が(ID)がどのリソースに対してどのようなアクセス権を持つかを定義することができます。
誰がの部分はメンバー、アクセス権をまとめたものはロール、どのメンバーにどのロールを付与するかを定義したものをポリシーと呼びます。
リソースとはGCE、GCSなどG

もっとみる

Pythonの関数(位置専用引数、キーワード専用引数)

Pythonの関数の引数には普通に値を渡すだけでなく、特殊な操作も行えます。

位置専用引数関数の引数に「/」を入れると「/」の前の引数を位置引数としてのみ値を渡すことを宣言できます。
具体的には以下のように使用します。

def add(num1, num2, /, num3): return num1 + num2 + num3add(1, 2, num3=3) # 正常に動くadd(n

もっとみる

ASGI とは

ASGIとはWSGIと呼ばれるPythonのWebサーバとWebアプリケーションが通信するためインタフェース定義の後継仕様となっており、WebSocketと非同期をサポートするように設計されているものです。
ASGI(Asynchronous Server Gateway Interface):非同期サーバーゲートウェイインターフェースです。

まずはWSGIとは以下のようになっています。
WSG

もっとみる

Pythonの型ヒント:基本的なもの

Pythonの型ヒントの書き方について基本的なものをまとめます。

・変数
変数の後に型を記載します。

number: int = 1flag: bool = True

・組み込み型
typingモジュールからimportして使用します。

from typing import List, Set, Dict, Tuple, Optional, Unionx: List[int] = [1,

もっとみる

GCPのデータベースの種類

GCPのデータベースにはいくつか種類があるため勉強も兼ねてそれぞれ簡単にまとめました(2020/11/13)

GCPのコンソールのデータベースの項目にあるのは2020年11月13日現在以下の6種類となっているためこれらを対象とします。
- Bigtable
- データストア
- Firestore
- Memorystore
- Spanner
- SQL
全体の概要の把握を目的としているためそ

もっとみる

PythonのData Classes

PythonのdataclassはPython3.7からの機能となり、クラスを定義する際の__init__、__repr__、__eq__などの定義を自動で作成し省略できます。

使い方はクラス定義にdataclassデコレータをつけます。

from dataclasses import dataclass@dataclassclass Example: x: int = 0 y:

もっとみる

排他制御(楽観的ロックと悲観ロック)

データに対して複数のアクセスが見込まれる場合に、同時アクセスにより不整合が発生することを防ぐため、あるトランザクションがデータにアクセスしている時は他トランザクションからはアクセスできないようにして直列に処理されるように制御すること。

具体的な方式としては楽観ロックと悲観ロックが代表的なものになる。

楽観的ロック楽観ロックとは他者との同時更新は起きないであろうという楽観的な前提の排他制御。更新

もっとみる

Pythonのクロージャ

クロージャとは一言で説明すると関数内の変数の宣言がその関数が宣言されたスコープと同じものとなります。

具体的には下記のように変数xが関数addと同じスコープで定義されています。

def enclosure(x): def add(value): return x + value return add f = enclosure(2)print(f(1)) # 3

もっとみる

PythonのWSGI

WSGIとはPEP333で定義されており、サーバとWebアプリケーションをつなぐ共通のインターフェースとなっています。
これはPythonにはDjango、Flaskなど様々なWebフレームワークがありますが、過去にフレームワークごとに利用可能なサーバが制限されてしまったりしていたためサーバとアプリケーションの間に共通のインターフェースを作成するということで定義されました。
WSGIに則り作成され

もっとみる

Dos攻撃・DDos攻撃

Dos攻撃、DDos攻撃についてまとめます。

それぞれ以下のようなアルファベットとなっています。
Dos:Denial of Service attack
DDos:Distributed Denial of Service attack
ここからDos攻撃はサービス拒否攻撃、となりDDos攻撃は分散型サービス拒否攻撃という意味になります。

具体的にはDos攻撃とはサーバーにリクエストを多数送

もっとみる

データベースのACID特性

データベースのACID特性について簡単にまとめます。

ただその前にACID特性が必要な理由についてファイルシステムとデータベースの違いについて解説します。

データベースはそもそもファイルの集まりですが、ファイルシステムとの違いはデータが整理・統合され重複を省いた無駄のない集まりとなったものになります。
具体的なファイルシステムとの違いは複数のプログラムで共有されるデータであること、プログラムが

もっとみる

SSL証明書の作り方(自己証明書)

SSL証明書はSSL/TLS接続を行うときに必要になるものです。
TLSの中でサーバーが認証局に認証されたものであるという証明、通信の暗号化のための公開鍵の役割を持ちます。

そのための自己証明書の作り方です。
ローカルでの開発のためなどに使用します。
自己証明書:公開鍵を私有鍵で署名した公開鍵証明書
オレオレ証明書:自らが用意した認証局の秘密鍵で署名しようとするもの
ちなみに大手認証局のルート証

もっとみる

Pythonのsocketモジュール

PythonのsocketはBSDを元にしたOSのソケットインターフェースへのアクセスを提供するモジュールになります。OSのソケットAPIを呼び出すライブラリです。

そもそもソケットとはサーバとクライアントを結ぶ仮想的な接続となり、TCP/IPをプログラムから利用するための接続口となります。

基本的なサーバ、クライアントのソケット通信の処理は以下となります。
サーバ
・ソケットの作成

もっとみる

認証・認可の規格(SSO、SAML)

認証・認可の規格のSSOとSAMLについてまとめます。

シングルサインオン企業内での複数のシステム間のアカウント管理をバラバラに行わず、一度サインインしたら全システムがサインインした状態になるような仕組みです。
方法としてはウェブサービスでは、各サービスの前段にHTTPプロキシをおき、認証を代行する方法や、各サービスに認証を代行するエージェントを入れ、ログイン時に中央のサーバにアクセスしてログイ

もっとみる