今週勉強したことまとめ(2017/11/27 ~ 2017/12/03)
今週はAWS re:Inventが開催され様々な新サービスが発表された。 サービス数が多すぎて全部を追うことができていないが、 今回特に気になったのはコンテナ周りのサービスで Managed KubernetesのEKSとFargeteという二つのサービスが発表された。 アプリケーションの実行環境の選択肢が増え、より自社のサービスに適した構成を構築できるようになったが、 AWSのサービスを組み合わせて適切なインフラを設計する難易度がどんどん上がっている気がする。 今後は機械学習で最適なアーキテクチャを提案するサービスが出てきてくるのではないだろうか。 そのほかに今週は、あまりにも忘れていることが多いので システムプログラミング周りやネットワーク周りの基礎を勉強し直し始めた。
AWS
-
- Java
- java8インストール方法
- alternativesでjava8を選択する
$ sudo yum -y install java-1.8.0-openjdk-devel tomcat8 $ sudo alternatives --config java
- alternativesでjava8を選択する
- java8インストール方法
- Java
re:Invent
まとめ
【レポート】あらゆる層でのキャッシュ利用を検討せよ!各層でのキャッシュ利用戦略まとめ #reinvent #ATC303
- 以下の4層でキャッシュを利用した高速化手法を紹介
- Edge
- CloudFrontを利用してラストマイルのレイテンシを高速化
- マルチリージョンでアプリケーションを構築する場合はリージョン間でリソースの同期を取らなければならない
- CloudFrontを前段にしておけば、アプリケーションを1リージョンでマルチリージョン対応はCloudFrontでできるので無駄が省ける
- Lambda Edge
- コンテンツのカスタマイズや認証、A/Bテストに使用する
- CloudFrontを利用してラストマイルのレイテンシを高速化
- Web Tier
- 全ての静的コンテンツのキャッシュ
- ログアウトユーザのキャッシュ有効か
- アクセス頻度の高いコンテンツのキャッシュ検討
- キャッシュヒット率、ミス率のモニタリング
- TTLを賢く選択
- アプリケーションデプロイを妨げない
- Applicaiton Tier
- Database
- ネガティブキャッシュも利用する
- 検索対象が存在しなかった結果をキャッシュとして保持する
- キャッシュの自動更新方法にLambdaの利用を検討する
- ネガティブキャッシュも利用する
- Edge
- 以下の4層でキャッシュを利用した高速化手法を紹介
Amazon GuardDuty
- Amazon GuardDuty – 継続したセキュリティ監視と脅威の検知
- 継続的なセキュリティのモニタリングおよび分析サービス、AWS環境に対する潜在的な脅威を検出する
- VPCフローログ・CloudTrailのイベントログ・DNSログを利用して予期しない活動や、悪意のある行為を検知することができる
- AWS Fargateの紹介 – インフラストラクチャの管理不要でコンテナを起動
- In The Works – Amazon Aurora Serverless
CloudFront
- キャッシュinvalidationは月々100パスまで無料
- /*などのワイルドカードも1パスとしてカウントされる
- AWS S3上の静的コンテンツをCircleCIでdeploy時にCloudFrontのキャッシュを削除する
Aurora
- DBクラスターが作成される
- DBクラスターは以下の二つから構成される
- エンドポイント
- 信頼性
- ストレージの自動修繕
- ディスクボリュームの障害を自動的に検出し、すぐにそのセグメントを修繕する
- 修復時に他のボリュームないのデータを使用して、修復されるデータが最新であるようにする
- キャッシュのウォームアップ
- データベースがシャットダウン後に起動した場合バッファプールキャッシュをウォームアップする
- メモリ内のページキャッシュに保存された既知のクエリのページをバッファプールに事前ロードする
- ウォームアップをしなくて良いのでパフォーマンスが向上する
- ページキャッシュはデータベースとは別のプロセスで管理される
- このため、データベースに障害が発生した場合でもページキャッシュはメモリの残り、バッファプールはデータベース起動時に最新の状態にウォームアップされる
- クラッシュ回復
- クラッシュから瞬時に回復する
- ストレージの自動修繕
- クラスターの作成
- [Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
コンテナ
- CNI
- Container Network Interface
- Container内のNetwork Interfaceを構成するためのプラグインを開発するための仕様とライブラリなどから構成されている
- マルチホストでのDocker Container間通信 第3回: Kubernetesのネットワーク(CNI, kube-proxy, kube-dns)
- Container Network Interface
システムプログラム
- http://www.coins.tsukuba.ac.jp/~syspro/2017/
- http://www.coins.tsukuba.ac.jp/~yas/
- OSとは
- OSはハードウェアの違いを隠蔽し、ユーザがプログラムを実行するための使いやすい環境を提供する
- ハードウェアを抽象化した概念を提供することで、いろいろなコンピュータで共通に使用できる実行環境を提供する
- OSが提供する抽象概念
- (ハードウェア機能) -> (抽象概念)
- プロセッサ、メモリ -> プロセス
- ストレージ -> ファイル、ディレクトリ
- コンピュータ間の通信 -> プロセス間通信
- 割り込み -> シグナル
- コンピュータ共有時の保護 -> アクセス制御
- API
- シェル
- CLIを通して、ユーザからのコマンドを受け付け、解釈・実行し、その結果を出力する機能を提供するプログラム
- コマンドの入出力をファイルや別のコマンドにするリダイレクションやパイプという機能を提供する
- 比較的単純な機能を持つ複数のコマンドを組み合わせて複雑な機能を実現することが可能
- コマンド
- ユーザがコンピュータに与える命令
- UNIXはシェルから利用できる非常に多くのコマンドを提供している
- コマンドはシェルとは別のプログラムの場合もあるし、シェルに組み込まれている場合もある
- システムコール
- OSカーネルの機能を直接呼び出すためのインタフェース
- できるだけシンプルになるように設計されている
- ライブラリ・ミドルウェア
- プログラムの部品となる関数の集合
- システムコールもライブラリもCプログラムから呼び出す場合はどちらも関数呼び出しの形態で使用できるため同じに見える
- UNIXカーネル
- ライブラリ関数とシステムコールの違い
- プロセス
- プログラムを実行中のもの
- 一つのプログラムを複数実行することができる
- プログラムは、CPUが実行できる機械語命令とそれにより処理されるデータの集合がファイルに格納されたもの
- プロセスは実行中の情報
- manコマンド
man -k キーワード
でキーワードに関連するコマンドを表示してくれる
Redis
Network
- CIDR
- アドレスクラスの概念を気にしないことで、IPアドレスの割り当てや経路選択などの自由度をあげる仕組み
- IP空間を分割する仕組みの一つ
- アドレスクラスだとBとCの間で大きさが違いすぎて非効率
- ブロックの大きさを柔軟に変更できる
- /16で65536のホスト
Spring Boot
Spring Boot外部設定
- Spring Bootの外部設定値の扱い方を理解する
- 設定一覧
- SpringBootの設定は環境変数・ファイル等によって指定できる
- 設定が反映される順番はきまっているが、先に反映された設定は上書きされない
-Dspring.profiles.active=
で設定ファイルを選択できる
ロック待ち
MySQL
- private subnetないのDBに接続して操作したい場合、Sequel Proで踏み台サーバ経由でアクセスできる
- SQLモード
- MySQLでサポートされるSQL構文、および実行されるデータ妥当性チェックの種類を定義する
- FAQ
- SQLモードのリスト
- 一番厳しめの設定
TRADITIONAL,NO_AUTO_VALUE_ON_ZERO,ONLY_FULL_GROUP_BY
- ルーク!MySQLではkamipo TRADITIONALを使え!
- IFNULL(expr1, expr2)
- expr1がNULL出ない場合、IFNULL()はexpir1を返し、それ以外の場合はexpr2を返す
- expr2もNULLの場合はNULLを返す
キーボード
- Barroco
- Fn + Aでレイヤー切り替え
英語
- presumably
- おそらく
- density
- 密度
- At the moment
- 現時点では
- comes at a cost
- 高くつく
- コストが必要となる
- Elastic
- 伸縮自在の
That being the case
- それなら、だとすれば、そういうことなら
- pure play
- ~を専業とする
その他
年金
- 厚生年金(国民年金)控除証明書はハガキで送られてくる
- 年末調整で使用するため捨てないこと
- 控除証明書を紛失した場合は年金事務所で再発行できる
- 転職などで途中で支払いが途切れている場合は控除証明書を発行できない
- 厚生年金(国民年金)控除証明書はハガキで送られてくる
Heptio
- Kubernetesを専業とする起業
Entrepreneur in Residence
- 客員企業制度
- 起業家が特定の企業に入社し、その企業で起業準備をする