【監視】SNMPとは何か?
はじめに
SNMPとは、サーバやネットワーク、その他デバイスのメトリクスを監視するためのプロトコル。
特徴
・アプリケーション層のプロトコル。 ・マネージャとエージェントの2要素からなる。 ・トランスポート層ではUDPを使う。 →負荷を少なくするため ・MIBとOIDを要チェック →MIBは、監視に使える情報を含んだデータベース。 →OIDという一意な識別子によって値が決まる。
主な監視方法
以下2つが主要な監視方法。 ・SNMPポーリング マネージャが、エージェントから定期的に情報を取得する。 いわゆる「プル」型?
・SNMPトラップ エージェントから、必要な時にマネージャに情報送信する。 いわゆる「プッシュ」型?
具体的なツールは?
ZabbixやCacti、NetSNMPなど →無料のOSSがいいね。
参考情報
【図解】SNMPの仕組み~利用ポート,監視方法(マネージャのMIBポーリング/trap受信),tcp/udp,writeの実装例〜 | SEの道標
【読書メモ】運用設計の教科書 現場で困らないITサービスマネジメントの実践ノウハウ
はじめに
以下の本を読んだので簡単にコメントします。
クラウドは、これまでのオンプレミスでのシステム運用を大きく変えると思います。 ただ、具体的にどう運用を変えるのか? 私はシステム運用者というロールではないため、実感を持ってこの疑問に答えられないと感じました。 そこで、この機会に「システム運用」について体系的に理解しておこうと思い、本書を手に取りました。
概要
システム運用に関するヒアリング~設計~運用開始~運用改善までの一連の流れが解説される。 「理想は○○だが、実際は△△で凌ぐのも手」といったような実践的(?)なアドバイスもちりばめられている。
発見
・「システムが捨てられるまでが運用」(家に帰るまでが遠足 的な発想かな) ・障害復旧にしても、パッチ適用にしても「どういう状態を正常とするか」や「どこまでを作業範囲とするか」は予め定義しておく。 →でないと、有事の際に「やるべきこと」だけでなく「どこまでやる必要があるのか」というターゲット設定から対応する必要が出てくる。 目の前の事象に対応したい中で、どの関係者にとってもうれしくない状況になる。 ・運用には大きく「業務運用」「基盤運用」「運用設計」の3つがある。
本書の良かった点
・運用者、あるいは設計を行う人がすぐに実践に落とし込めるような内容が盛りだくさん。 →ITILの内容では、実践に落とし込むのむずい と感じてる人に良いかも。 ・各ステップごとに、作成する成果物一覧や検討事項などが豊富に例示されている。 実際に運用設計をするために超有用だと思う。 ・文字通り、「教科書」という機能をしっかり備えている。
AWSでインフラのコード管理に入門しました!
はじめに
CloudFormationのハンズオンをやってみたときのメモ
AWS Hands-on for Beginners - AWS 環境のコード管理 AWS CloudFormationで Web システムを構築する | AWS
インフラのコード管理
構成がコードで管理されていないと…
→構築に時間がかかる、再現性がない、複製が困難
→ワークロード全体の品質担保が難しい
→人為的なミスが発生しうる
Well-Aの「運用上の優秀性」に触れる
・運用をコードとして実行する ★今回のハンズオン
コードを使った運用のポイント
1.コードで全ての構成を定義
2.イベントに対してスクリプトで対処
→定期イベントか、イベントドリブン
3.アプリケーションと同じ手法でコードを開発
→インフラでの、CI/CDの考え方で改善のサイクルを回す
ハンズオン時メモ
・YAMLの一般的なインデントは2
$ sudo find / -name aws_completer
/usr/bin/aws_completer
・CloudFormationの操作方法はマネコン、CLI、SDK
同じ操作を繰り返すならCLIやSDK
・組み込み関数
・VPCの作成
→これは日常でやってもよさそう。あるいは導入作業の時か。
事前に準備して、権限もらってあとは実行するだけとする。
→SCPとかIAMで権限が制限されてたら少し面倒そう?
・ユーザーデータにスクリプトを指定
・スタックはライフサイクルと所有者を基準に分割
・VPC用スタックをベースとして、他のスタックからクロススタック参照
・スタック削除の際、残しておきたいものは定義ファイルをローカルに落としておく
完走感想
★ELBスタックのデプロイまで進んだものの、いざELBのエンドポイントを指定してみると「502 Bad Gateway」が出力され、WordPressが表示されない。つらい。
今日は疲れたので、後日リベンジすることにする。
CloudFormationを使ってみる ことは達成したので、これを起点として上達していきたい。
あと、クロススタックを理解できたのも大きい。
次にやること
・WordPressが表示できるまでハンズオン再トライ
・CloudFormationのベストプラクティスを読み解く
・ブログサイト構築に使ってみる
・CodePipelineを利用したデプロイ
AWSサーバーレスに入門しました
初めに
サーバーレス関連のサービスを実際に触ったことがなかったので、ついに触ってみる。その時の雑メモ。
以下のAWS公式ハンズオン参照。
AWS Hands-on for Beginners | AWS
AWS Hands-on for Beginnersめちゃおすすめです。
学んだ内容
・サーバーレス関連の基礎サービスを、Web APIを作成することで動作を確認する。
・Lambda, DynamoDB, API Gatewayを使ったアーキテクチャを構成する。
なぜサーバーレスが必要か?
開発者がやりたいのは「サーバー管理」ではなく「ビジネスロジックの実行」だが、実際はインフラ管理に時間がかかっている現状がある。
サーバーレスアーキテクチャを用いれば、インフラのプロビジョニングや高可用性の実現などはクラウド側で担保され、ビジネスロジックに集中できる。
Lambda概要
サーバーを意識せずにプログラムを実行できるサービス。
Lambda覚え書き
・マネジメントコンソールから設定可能。
・対応言語はJava,Go,Powershell,Python,Ruby,Nodejs等(随時拡充されそうなのでぼやかしときます)
・確保するメモリ量を設定する(CPUはメモリに比例)
・Lambda関数ではIAMロールで許可された権限でしか操作できない
・呼び出しタイプには「非同期呼び出し」と「同期呼び出し」が存在。
→Lambdaは様々なサービスから呼び出しできるが、サービスごとに呼び出しタイプが異なる。
・Lambdaが呼び出されると、コンテナが起動しプログラムが実行される。
・ライフサイクルとして「コールドスタート」と「ウォームスタート」が存在。
→基本はコンテナ再利用、利用可能コンテナがなければコンテナ生成から実行
Lambdaを使ってみる
実施内容
・Lambdaを単体で使ってみる
・Translateと組み合わせてみる
・
覚え書き
・デフォルトでCloudWatch Logsに実行時ログを出力するようになっている&必要なロールも与えてある。
・コードの変更内容を反映するため、「デプロイ」を選択してから「テスト」する。
API Gatewayと組み合わせてみる
そもそもAPIとは?
プログラムやソフトウェアが連携するための取り決めや仕様 とのこと。
API Gatewayは、API作成において本来利用者側で意識すべき部分は事前に準備されており、API作成の負荷を軽減してくれる。
API Gateway覚え書き
・順番は以下。
メソッドリクエスト>統合リクエスト>統合レスポンス>メソッドレスポンス
・メソッドリクエストでは、認証設定や受け付けるクエリパラメータ、必須のHTTPヘッダ 等を設定する。
・統合リクエストでは、バックエンドの種別を選択する(Lambda関数、HTTP、その他AWSサービスなど)
・バージョニング、使用量プラン設定などの機能も存在。
・API、ステージごとにデプロイを行う。
・前述したフローごとに設定を行う。
API GatewayとLambdaを組み合わせる
実施の概要
日本語の入力を英語に翻訳するAPIを作成する。
API GatewayとLambdaの組み合わせ覚え書き
・ハードコーディングから、API Gatewayのクエリパラメータのインプットから渡してくるようにする。
・API Gatewayからの入力をLambdaに渡すためにqueryStringParametersを編集。
・ステージにデプロイしていないと、「{"message":"Missing Authentication Token"}」が出力された。
詰まったポイント
API呼び出しをするためのURLを指定した際、「Internal server error」が発生。
原因は、「URLクエリ文字列パラメータ」の誤字だった。
詰まったところ大抵誤字。
ただ誤字で詰まると、「どこをミスるとどこで支障がでるか」がわかるので、悪くない。笑
DynamoDBを使ってAPIを進化
DynamoDB覚え書き
・キーバリュー型のNoSQLデータベース
・テーブル毎にスループットキャパシティを設定
・HTTPベースのAPIで操作する
・課金は〇〇ベース
別記事でまとめたいな。DynamoDBの覚え書き。
DynamoDBハンズオン
・キャパシティユニットを利用度合いに応じて増減したいなら、テーブル作成時「読み込み/書き込みキャパシティ-モード」をオンデマンドにする。
・「保管時の暗号化」では、本番利用するならKMS使った方がよい?
・Pythonで日時を取るには「import datetime」
・API Gatewayエンドポイントから文字入力
→結果をLambda
用語メモ
・2種類のプライマリーキー
-パーティションキー
-パーティションキー+ソートキー
・ローカルセカンダリインデックス(LSI)、グローバルセカンダリインデックス(GSI)
・キャパシティユニット
用語
・パススルー
・Lambdaプロキシ統合
→レスポンスの変換できなくなる
その他
・サービスの一言説明、風情がある。
→Lambdaは「サーバーのことを考えずにコードを実行する」
感想と今後学んでいくこと
サーバーレス構成を組むための基礎サービスを諸々触れてよかった。
これまでは机上の知識しかなかったので、使用感をつかめたことは大きかった。
今後は、別のアーキテクチャにもチャレンジしてみたい。
JAWS-UG千葉支部イベントに参加しました!
はじめに
「JAWS-UG千葉支部オンライン#9 AWS re:Invent 2020 re:Cap&LT大会」に参加しました!
内容は以下の通り。
①re:Invent2020振り返り〜はじめてのre:Invent〜
榎本さんの発表。
業務関係で聞き逃しました。(すみません...)
②re:Invent2020と大好きなWorkSpacesについて
北原雅人さんセッション。
好きなAWSサービスはWorkSpacesとのこと。
WorkSpacesのGAされた新機能について
「WSPのリリース」がビックニュースらしいです!
「PC over IP(PCoIP)」が旧来のVDIにおいて利用されていたプロトコル。
今回、WSPがPCoIPに代わって登場したプロトコル。
現状サポートしているクライアントはWindows10の意。
WSPではカメラが使えるようになったことで、本格的に仕事ができるレベルに。
似たようなことができるVDI製品としては、VMwareの製品とのこと。
③AWS Protonをさわってみよう
Proton完全に初耳。
Dev/Opsをまわすための〇〇
概要とメリット説明の後、コンソール画面も見せてくれて非常にわかりやすかった。
が前提知識不足もあり、真に理解できたとは思えない。
CloudFormationやCodeFamilyを組み合わせてCI/CDを自動で回せるサービス、ということらしい。
④AWS re:invent 2020 振り返り-AWS Lambdaのアップデートを中心に-
Macインスタンスは、データセンターにMac miniを並べているらしい。笑
ECSとEKS
「コンテナそんなに詳しくない勢」とのこと。私もです。(おそらくもっと)
ラズパイでもEC2のタスクを動かせるとのこと。
あとはみんな話題にするCloudShell。
「ハンズオンとかCloudShell上でできそう」
→確かに。自分でも使い道思いつきたいなー
サーバレスのアップデート多めだったそう。
「サーバレスはまだ自分には早いかな」という考えであまり手を出せてないですが、そんなこといってると一生始まらなそうなので、触ってみようと今日誓いました。
これ読みます。
サーバーレスの勉強方法を聞いてみた。- builders.flash☆ - 変化を求めるデベロッパーを応援するウェブマガジン | AWS
Now Go Build!
⑤その他
当然ですが、みなさんラスベガス行きたがっていた笑
まだ未熟者ですが、自分も来年行けるよう日々を過ごしていきたいところ。。
英語も勉強しないとですね。
2020年から所属企業のAWS担当、2020年11月から千葉県民になったので、2021年はJAWS-UG千葉関わっていきたいと思います!
おわりです。
パケットの送受信について
内容
パケットの送受信時に関する覚書
ネットワーク上におけるデータ送受信の動作について知ることが、ネットワーク全体を俯瞰するためには必要だと思う。おそらく。
詳細
データの単位
各種プロトコルが処理するデータの単位をPDU(Protcol Data Unit)と呼ぶ。
主なものとして、IPではパケット、TCPではセグメント、イーサネットではフレームという単位を使う。
その他にも、UDP等データの不達を許容するものだと、データグラムという単位が使われたりする。
データサイズについて
ネットワークを通してデータのやり取りをする際に、「データを分割するかどうか」が判断される。
その時の判断材料として、MSS/MTUという情報がある。
MSSはMaximum Segment Sizeの略で、TCPが一度に送受信できるデータ(セグメント)のサイズを表す。
MTUはMaximum Transmission Unitの略で、ネットワークハードウェアが一度に送受信できるデータサイズを表す。
MTUはMSS+TCPヘッダ+IPヘッダの合計で、MTU>MSSの大小関係である。
接続先コンピュータとお互いの情報を確認して、小さいほうが採用される。
参考書籍