インフラエンジニアも人間じゃない?

インフラエンジニアの備忘録

クラウドについての話

こんばんわ、真のクラウドエンジニアのseioeです。
資格はAWS SAAしか持っていません。SAPは1回落ちました。

最近流行りのクラウド
社内でサーバを持つオンプレミスの時代は終焉を迎えつつあるとの見方もありますが、一概には言えないでしょう。

f:id:seioe:20200304195132p:plain
参考:
2019年国内クラウドサービス需要動向調査 « ニュースリリース | 株式会社MM総研

そもそも、クラウドといっても種類は様々です。
今回はOffice365やGsuiteのようなグループウェア等の話ではなく、クラウドインフラストラクチャについて書きます。

一般的にクラウドと言うとイメージされるのはAWSなど外部の業者のを利用するパブリッククラウドが多いかと思います。
しかし、上記のサイトを参考にすると社内に環境を持つオンプレミス型のプライベートクラウドもまだまだ利用ケースは多いようです。

パブリッククラウドは安いと認識されている事例もよくありますが、全体的なコストではオンプレミスとそこまで差が無い事も多いです。
なんでもクラウドという考え方はあまりよくないと言えるでしょう。


パブリッククラウドではAWS(Amazon Web Services)、Azure(Microsoft Azure)、GCP(Google Cloud Platform)、Alibaba(Alibaba Cloud)がシェア上位となっています。
blogs.itmedia.co.jp

AWSが40%程度、Azureが20%程度なので、主に利用されるのはこのあたりが多いでしょうか。

AzureはWindowsやAzureAD、Office365等のサービスと連携できるため、WindowsServerやOffice365が既存環境として存在する場合には利用するメリットが出てきます。
GCPGoogle機械学習モデルを利用できたり、Kubernetesを活用する場合なんかに利用するようです。あとはネットワークが強いですかね。
Alibabaは知りません。どこか使ってる場所あったら教えて下さい。
そして、上記のメリットを特に求めていない場合の多くがAWSを利用することが多いようです。

ナレッジも多いので困ったらAWS、というのが多いかもしれません。

現状GCPの戦える範囲が狭いため、勉強するならAWSの次はAzureがいいかな~と思いますね。

Nginxで色々な通信を適当にバランシングする

こんにちは。突然ですが数台あるオンプレサーバで、適当に負荷分散したい時は何を使いますか?
簡単にできるものだとWindows標準のNLB、適当でよければDNSラウンドロビン等ですかね。

クラウドであればAWSならELBとかに少し設定するだけで終わりですが。オンプレだとなかなか面倒です。
ここでおすすめなのがNgxinによるL7ロードバランスです。
※L4でもできるらしいですが、僕はL4分散に親を殺されたためこれ以上触れません。

NginxならWebサーバやリバースプロキシで使うことがほとんどだと思いますが、こいつは標準でロードバランサとしても利用できます。
httpdでも同じようなことができますが、mod入れたりなど少し面倒なので…

まずはNginxを入れます。
nginx.org

Centos7では標準リポジトリにないので設定を追加します。

sudo vi /etc/yum.repos.d/nginx.repo

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

インストールします。

sudo yum install nginx

ロードバランサの設定を入れます。

sudo vi /etc/nginx/conf.d/balancer.conf

基本は以下のようなイメージで設定します。

upstream backends {
    server 192.168.0.1:8080;
    server 192.168.0.2:8080;
    server 192.168.0.3:8080;
}

server {
    listen 8080;
    proxy_pass backends;
}

ちゃんとしたコンフィグや細かいオプションは公式を見ましょう。
nginx.org

ちなみに、デフォルト設定だとラウンドロビンで分散されるため、パーシステンスに分散するにはip_hashとかで分散するか、
httpであればcookieなどで分散先を分けるのがいいでしょう。

upstream backends {
    ip_hash;
    server 192.168.0.1:8080;
    server 192.168.0.2:8080;
    server 192.168.0.3:8080;
}

server {
    listen 8080;
    proxy_pass backends;
}


ip_hash分散であればHTTP以外の通信も色々バランシングできるので、ようわからんプロトコルでもとりあえずなんとかなると思います。
こうするとTCPUDPを両方分散することもできます。

upstream backends {
    ip_hash;
    server 192.168.0.1:8080;
    server 192.168.0.2:8080;
    server 192.168.0.3:8080;
}

server {
    listen 8080;
    proxy_pass backends;
}

server {
    listen 8080 udp;
    proxy_pass backends;
}


高機能とかを求めてる人はそもそもアプライアンスを買いましょう。

アイドル時に電源オプションを自動で省電力に変更する

最近暑くなって来たので電力制限フル開放の9900Kを使っていると部屋が熱くなります。

アイドル時でも発熱しすぎ


ということで起動してるけど特に使ってない時は省電力モードに、使ってる時は高パフォーマンスにしたいと思いました。
思いつく限りそんなオプションはデフォでなかった気がするのでスクリプトを組むことに。

続きを読む

Google Drive File StreamがWindows Serverに対応していた

気づいたらGoogle Drive File StreamがWindowsServer2012以降に正式対応していました。
今まではクライアントOSのみの対応で、サーバOSでインストーラを実行すると弾かれていましたが、今回正式対応していたのでWindowsServer2016(build 1607)にインストールしてみました。

ドライブ ファイル ストリームを導入する - G Suite 管理者 ヘルプ

Windows: Windows 7 以降。Windows Server 2012 以降。
Mac: El Capitan(10.11)以降。High Sierra(10.13)以降をご利用の場合は、こちらの手順でご対応ください。

今まではクライアントOSにインストールしたものを持ってくる方法で使っていましたがこれからはアップデートを適用するのも楽になりそうです。
Google file stream on server (2012 R2) : DataHoarder


※当然ながら有償版のG Suiteじゃないと使えません。
www.google.com

CSSD-S6B480CG3VX を3780円で買った

gooのクーポンで480GBのTLCが激安だったので買いました。

しかし普通のTLCなので遅い
SSDCrystalDiskMarkじゃなくてHDTuneで確認しましょう


他のTLCも遅い
CT120BX500SSD1

TS120GSSD220S


MLCはクソ古くても早い
CT250MX200SSD1


書き込み用途で使うならちゃんと調べてから買わないとまずいですね