インフラエンジニアへの道 Amazon web services クラウドデザインパターン 設計ガイド4
- 配信したいコンテンツをS3に配置➡ ユーザーが直接ダウンロードできるようになる
- S3にパケットを作成し、公開するコンテンツを入れる
- 公開設定でコンテンツごとのURLが発行される
- 発行されるURLをユーザに提供するか、リンクを張る
Direct hosting
- S3にバケットを入れコンテンツを公開するように設定
- S3のwebサイトホスティング機能をオンにして、インデックスページや、エラーページを設定することでS3単体でwebサイト単体でホストできる
Private distribution
- S3のapitool や AWS SDKを準備する
- 自らのシステムでユーザー認証を実施後、ユーザーに公開するコンテンツに対して、APIで制限つきURLを生成
- 生成したURL一覧で動的にwebページを生成 制限付きのURLをリンク先として利用する
cache distribution
- オリジンサーバーを使用するようにcloudfrontを設定する➡DNS名が発行される
- 独自のドメイン名を使ってよい➡ オリジンサーバーのDNS名のレコードに発行されるDNS名
Rename distribution
- コンテンツとは別にベースコンテンツ(URLを含むHTMLファイル)を作成
- ベースコンテンツはキャッシュタイムを短くするか、常にオリジンサーバーから配信
- cloudfrontのときは、別名のURLでオリジンサーバーにも配備
- ベースコンテンツ内のURLを新しいコンテンツのURLへ変更する
Private cache distribution
- cloudfront apitool or AWS SDK
- EC2 のサーバーに秘密鍵登録して、署名付きURLの発行準備
- ユーザー認証をして、cloudfrontでAPIを用いて署名付きURL制作機能を利用
- URLをリンク先として利用
インフラエンジニアへの道 Amazon web services クラウドデザインパターン 設計ガイド3
- EC2インスタンスの仮想ディスクであるEBSに、NFSサーバーのファイルをコピー
- EC2はEBSのファイルを読み取ることでNFSサーバーにアクセスするよりも高いパフォーマンス。
- EC2上にNFSサーバーを構築し、共有ファイルを配置
- Auto scaling で起動するEC2(webserver) は起動時にまずNFSサーバーをマウントし、EBSに内容をコピー
- 各EC2上のアプリケーションはEBSを参照先にしておく
- それぞれの要件にステート情報を格納するためのデータストアを準備する
- データストアにはユーザーを特定するID(セッションIDやユーザーID)をキーにして、ユーザー情報を値として格納
- WEB/APサーバーに情報を保管せず、データストアに保管して参照・更新を行う
- EC2上の静的コンテンツ(JS/CSS・画像)の一部をS3にアップロード(同期)する
- 必要に応じて、静的コンテンツが同期されるS3をオリジナルとしたCloudfrontを作成
- HTMLタグ上の静的コンテンツのURLをS3、もしくはCloudfront のものに書き換える
- Apacheのフィルターモジュールやプロキシとして用意したNginxなどで動的に書き換えることも可能
rewrite proxy
- apache や Nginx などでプロキシサーバーを構築し、既存システムの前に設置
- ELBとS3の間にプロキシサーバーを設置
- プロキシサーバーにコンテンツ内のURL書き換えルールを追加
- 必要に応じて、Auto scaling を適用する
Cache proxy
- EC2上に、 Varnishなどのキャッシュサーバーソフトをインストールして、利用
- サーバーの前に配置
- キャッシュサーバーにオリジナルデータのサーバーやキャッシュ期限を設定
Scheduled Scale out パターン
- スケールアウトパターンでAuto scaling を設定する
- EC2インスタンスを増加させたい時間帯を指定し、インスタンスの最小台数で変更する
- 指定した時刻になると、起動する
- 設定したトリガーに従い、負担が落ち着いたら、スケールインする
インフラエンジニアへの道 Amazon web services クラウドデザインパターン 設計ガイド2
- ELBを起動してヘルスチェック機能を有効にする
- APサーバー上で動作するプログラムを作成。このプログラムはDBサーバーアクセスを伴う
- ELBのヘルスチェックURLは2のプログラムで、設定したリクエストに対してプログラムが動くようにする
- ELBからヘルスチェックを行う
動的コンテンツの処理
Clone server
- ELBを立ち上げて、EC2を配下に置く
- 現在稼働しているEC2からクローンEC2を作成し、ELBの配下に加える
- クローン用EC2は必要に応じて定期的にrsyncなどを用いてマスターEC2のファイルを同期するようにしておく
- 負担に伴い、必要な数のクローン用のEC2を稼働させ、ELBに追加する
NFS sharing
- NFSサーバーをEC2上に構築
- 共有したいコンテンツをNFSサーバーに配置
- スケールアウトするサーバーたちからNFSサーバーのコンテンツを参照するようにする
インフラエンジニアへの道 Amazon web services クラウドデザインパターン 設計ガイド
今日はAWSについて書きたいと思います。
snapshot(ある瞬間のデータを複製したバックアップ) パターン
Scale up
Ondemand Disk
IPアドレスの動的な移動
インフラエンジニアへの道 ICP、ルーティングの知識
- tcp/ip のデータを電気信号にして送る
プロトコルスタック(人間)はソケット(メモ帳)に記憶された制御情報を参照しながら動く
- AWS 基礎からのネットワーク&サーバー構築
サーバー構築のための知識
- IPアドレスに関する知識・・・・・IPアドレスをどのように定めるのか。 ルータを介したインターネットとのデータの流れをどのように制御するか
- IPアドレスの範囲を決める・・・2のN上個で区切る
- 物理的な隔離 ・・・・・社内LANを構築するときに一回と二階で分けたいなど サブネットに分けておくと片方に影響が出た時にもう片方に出ずらい
- セキュリティ・・・・・・サブネットごとに別のネットワーク構築ができる
javaの基礎知識を得るために必要な本
javaを勉強する際に友だちがいいなと言って紹介してくれた本を書いておきます。
- Effective java
一目見たら難しそうに見えるかもしれないが、必死に食らいつくべし。
ただ Java の文法を勉強しながらプログラミングを学習しているだけでは学べない Java の仕組みや方法論を学べる.
- リーダブルコード
『リファクタリング』と通ずるところもあるが,読むべき.
Java しか触ったことがなかったとしても、「ヤバいコードはどの言語もだいたい同じ」と思ってもらえれば。
ジュンク堂が毎年やってる「このコンピュータ書籍がすごい!」というイベントによると、2015年まで3年連続売り上げ1位だったというお化け書籍。
- junit 実戦入門
JUnit を書けと言われても意味が理解できてなかったり,
カバレッジ100%を目指しながら自分のやっていることに疑問を感じている人は今すぐ読むべき.テストコードがあればすべてが解決されるわけではないけれども
「テストコードでどこまで解決できるだろう」とめっちゃ真剣になって極めようとおまえるはずです。
- プログラムはこうして作られる
初心者向けのプログラミング本によくある「if文はこうやって使います。for文はこうやって使います。以下略。」という教科書的な説明はない。テ◯リスのようなゲームを作り上げることを通してプログラミングの楽しさとかエッセンスを教えてくれる本。
Schemeを使用して、プログラミングパラダイムを解説、実装しています。
lambdaやDSL、高階関数、遅延評価など、新しい(?)ものがFORTRANの時代に存在していたという事実と、
言語が違うと思えるレベルのパラダイムシフトの実装可能性からLispの凄さが身に染みます。
ただし、この本はLISPのすごさではなく、各言語パラダイムに触れることが目的だと思います。
(この本がMITのプログラミング入門科目の教科書であったこと、現在は別言語が使用されている(python?)らしいことからもそうだとおもいます)
素晴らしいエンジニアになるために 人間としての基礎
- めもをとること
自分の頭の記憶には限界がある。その時点で覚えてても、席に戻ったら忘れてると思う
やる事をメモしておいて、報告する前にそのメモを見直すと、やり忘れで恥ずかしい思いをしなくて良くなる。
- 質問することは恥ずかしいことじゃない。本当に恥ずかしいのは質問せずに間違うこと
もちろん調べたり手を動かしたりしてやってみることは大事。でもどうしてもわからないなら先輩や上司を頼ろう。自分は「10分調べてわからなかったら質問することを検討する」というふうに決めている。
質問するときは「なにが知りたいのか」「そのために何をやったのか」を明確にしよう。
質問しなくとも、問題を解決しようとしたときに得られた情報ややったことは簡単にまとめておくと、あとで役に立つことがある。
- 相手がわかるように話そう
相手が知りたいことをきちんと聞き出そう。お互いに時間がもったいないからね。
うまく話せないときは、簡単に話すことを書き出しておこう。それを見ながら話せば間違えない。
- 自分の体をだいじにすること
栄養のバランス考えろと言いたいところなんだけど、ちょっとむずかしい気がするので、「とりあえずサラダを食べる」だけでもOK
野菜ジュースでもいいから、とにかく野菜も取りましょう。
- 自分の気持ちを健康に保つこと
ストレスやなれないことばかりで大変だけれども、自分自身を確立していかないといけないと感じた。
他人との比較も大事だが、じぶんをしっかりと持って、昨日の自分と戦うようなイメージを毎日おこなうこと
以上