新人研修を通して感じたこと
新人研修を通して感じたことをブログに書いていきます。
- しったかぶりをする。
自分がよくやってしまいがちなことでした。
自分がきちんと理解していないのに、あたかも理解したような顔をしたり、質問を途中でやめてしまうことはとても危険です。わかったふりをするのを続けていると、だんだんそれが上手くなってきて、どんどんごまかすようになります。全く良いことはありません。
特に用語を覚えただけで詳しくなった気になりやすい人は要注意。
- エンジニアだから~しなくてよいとはならない
エンジニアだから、プロデューサーだからという理由で何かしなくて良いということは全くありません。
特にエンジニアは作ることに集中して、プロダクトを考える部分を愚かにしがちだと思います。
しかし、実はプロダクトがどういうユーザーの課題を解決しているかという部分を真剣に考えることによって、開発するスピードやコードの品質が以外にも上がったりするんですよね。
コードを書く時間を増やすことだけが効率化である、という考えは間違っていると思っています。
- 必ずなぜを考える
自分がやっていること、作ろうとしているものが「なぜ」「何のために」やるのか、作るのかということを必ず考えるようにすること。
たとえ「受託案件」「簡単なタスク」だったとしても、必ず考える癖を付けるようにしましょう。
依頼された場合は依頼者に必ず聞くようにし、もし「理由はいいからやれ」と言われたら、それを言った以外の人に相談しましょう。
インフラエンジニアへの道 AWS実戦入門を読んで
この本は以下の内容で構成されている
この本は次の章から構成されている。
- AWSの基本知識
- 仮想サーバの作成(EC2基本編)
- 仮想サーバの応用(EC2応用編)
- DNSの設定と公開(Route53)
- ネットワークの設定と設計(VPC)
- 画像の配信(S3/CloudFront)
- DBの運用(RDS)
- Webサーバの負荷分散(ELB)
- モニタリングとWebサーバのスケーリング(CloudWatch/Auto Scaling)
- アクセス権限の管理(IAM)
- ビリング(Billing)
感想
まず非常に細かく丁寧に書かれているので、AWSを触った事がない人でも読みながら進めて行けばサクサク先に進めそうです。
ただし、画像のスクリーンショットは変更の可能性があるためなのかポイントに絞って掲載してあるので、自分でマネージメントコンソールを見ながら読み進めるなどの工夫をするのがいいかと感じました。
加えてAWSCLIでの操作例もあるのでぜひ実際にAWS CLIにて操作して欲しいところです。
AWS勉強会に教科書として利用するのは非常にいいなーと感じました。
特に印象に残ったところ
Snapshot
EBS Volumeから簡単にスナップショットが取れる。
初回はすべて、2回目から差分を取得で早い。2回目以降は差分の容量のみ。
とあるサーバのバックアップをS3に取っていました。
差分というわけに行かず全部をtarで固めて同期する非効率なことをやっていました。
EC2でやれば費用も作業的にも減らすことができますね。
SnapshotからAMIが作成できる。
Instanceから直接作成も可能だが、内部ではSnapshotを取ってAMIを作成するということが行われている。
インフラエンジニアへの道 AWS パターン別構築ガイド
Amazon Web Services パターン別構築・運用ガイド : NRIネットコム株式会社, 佐々木 拓郎, 林 晋一郎, 小西 秀和, 佐藤 瞬 : 本 : Amazon.co.jp
- AWSとは
- クラウドとは・・・・・IAAS(ネットワーク、ストレージ、仮想コンピュータ)
- オンプレ(初期費用全額、調達まで数週間)とAWSの違い・・・所有からサービスへ
- レンタルサーバーとAWSの違い・・・・AWSはEC2(レンタルサーバー)以上のサービス
- レンタルサーバーの問題点・・・自由度の低さ、セキュリティ、他ユーザーの影響の大きさ
- パブリッククラウド=不特定多数に対してのサービス
- プライベートクラウド=特定の企業
- ハイブリッドクラウド=パブリック➕プライベート
2.サービス概要
-
Amazon Elastic Compute Cloud(EC2)=仮想サーバー、インスタンス
-
Auto Scaling=cpuやメモリーの条件に応じて自動的に増減する装置
-
Amazon Simple Storage Service(S3)=ストレージサービス
-
3.アプリケーション基盤としてのAWS
- アマゾンデータベース・・・・EC2を独自に使うか、RDSを使うか
→参考にすること
- インスタンスタイプ
- RDSのインスタンスタイプ
- RDSのバックアップ
- RDSのアクセスポート
- セキュリティグループ
- VPCでの稼働可能
- マルチAZ
- フェイルオーバー時の注意点
- 手動フェイルオーバー
- IOPS・ストレージタイプ
- RDSのログ
- パラメータグループ
- オプショングループ
- メンテナンス
ワークフローについて
今日はワークフローについて書いていきたいと思います。
ワークフローとは・・・・業務の手続きの流れを図式化したものです。
上のような図になります。
このワークフローを使うメリットは3つで、
- 作業の凡ミス防止・・・・・いつ、誰が、何をすべきかを明示します
- 業務効率化の推進・・・・・業務の可視化により、作業時間の短縮が簡単
- 作業の進捗管理が容易・・・問題の原因追求が容易
ワークフローの流れは大きな部分を書けばこのようになると思います。
(実際にまだ配属されていないのでわかりませんが・・・・・)
- お客様からの依頼
- 営業ヒアリング
- 要件定義
- 設計
- 製造(構築・開発・デザイン)
- テスト
- 納品&請求
- 保守・運用
- 営業ヒアリング・・・・お客様の要求を見える化すること
- 契約内容・・・・・・・案件の目的、契約形態
- AWSアカウント有無
- 作業方式・・・・・開発環境
- コミュニケーション方法・・・backlogを使うかどうか
- 予算
- スケジュール
- 要件定義・・・・・・実装すべき機能や満たすべき性能を明確にしていく
- システムの目的
- どのような人に使われるか
- どのような外部システムと関わるのか
- システムに必要な機能は?
- 設計・・・・・・要件定義であげられた機能を実現すること
- アーキテクチャ設計
- アプリケーション設計
- セキュリティ
- 製造(構築・開発・デザイン)
- 構築:ネットワーク機器の調達や設定を行い、システムが稼働する基盤を作ること
- 開発:業務を効率的に改善したり、従来ではできなかったことを実現するためにプログラムを開発すること
- デザイン:図案や模様を計画し、レイアウトを行うこと
- テスト
- 要件が満たせているか
- しっかりと機能するか
- 実際に予測される最大の負荷をかける
- 開発環境からお客様の環境へ移行した時に問題はないか
- お客様からのフィードバック
- 納品&請求
- お客様に商品を納品する
- お客様が金銭の支払いをする
- 保守・運用・・・・・システムが止まらないようにすること。
インフラエンジニアへの道 Linuxの教科書 本当に読んでほしいroot入門講座
基礎からしっかりと勉強する必要があるだろうとのことで、友達から本を借りて勉強してみました。
こちらから抜粋
コンテンツは
- root養成講座
- shellの使い方
- ディストリビューション
- パッケージとパッケージマネージャー
です。
- root養成講座について
- rootとはシステム管理者のこと(ユーザーがシステムを安心して使えるように動作させる責任を負う)
- コマンドの紹介
⭐️su.......機能:権限の変更 書式:suを単独で
使い方:ターミナルにsuを入力するとパスワードを聞かれるので答えると#になってroot権限での操作が使える
⭐️rpm......機能:red hat系linuxでパッケージのインストールや削除
書式:rpm -i ファイル名 ここでのiはインストール
⭐️yum....機能:cent os, red hat enterprise linuxのパッケージ管理
書式:yum install パッケージ名
⭐️apt-get....機能:debian系linuxでパッケージのインストールや削除
書式:apt-get install パッケージ
ちなみにdebian系とred hat??という方はこちらから
【2015年】初心者にオススメなLinuxディストリビューション
カーネル
- オペレーションシステムの中核:ハードウェアとやりとりする
ユーザランド
Linuxを使う
シェル
- コマンドを受け付ける + シェルスクリプトを実行する
ディストリビューション
- 様々な団体がインストール手順などを独自に改良したものを提供し始める==> ディストリビューション
- 代表的なものとして、Red Hat Debian Project Ubuntu
パッケージとパッケージマネジャー
- パッケージ:Linuxに対して追加機能を提供するもの
- パッケージマネジャー:パッケージのインストールやアップデートを簡単にするもの。
- 依存関係なども解決してくれる
- ディストリビューションには付属している
インフラエンジニアへの道 インフラエンジニアの教科書
インフラエンジニアの教科書 : 佐野 裕 : 本 : Amazon.co.jp
目次
- インフラエンジニアの仕事
- サーバー
- OS
- ネットワーク
- ストレージ
- データセンター
- ソリューションとセキュリティ
- インフラ運用
- 大規模インフラ
- インフラエンジニアの成長
- インフラエンジニアの仕事
- インフラ設計・・・・必要な機能や能力を要件としてまとめる企画書
- インフラ構築・・・・機器のインストール、動作テスト、負荷テスト
- インフラ運用・・・・障害対応、キャパシティ管理、原因の追究
2. サーバー
- サーバー要件
- スケールアウト・・・性能が足りなくなったらサーバー台数を増やす
- スケールアップ・・・性能が足りなくなったらサーバー性能を上げる
- CPU・・・・・・・スペックが上がるほど、発熱が多くなり、消費電力が上がる。
- CPU選定ポイント=パフォーマンス、価格、ライセンス体型、消費電力
- ソケット数=cpuの個数。
- コア数=主要計算部分
- スレッド数=1つのコアで処理できる数
- 動作周波数=1秒間に刻むクロック数(高ければ高いほど処理が早くなるが、電力効率も悪くなり、発熱も増える)
- キャッシュ=頻繁にアクセスするデータを置いておく
- ハイパースレッディング=1つのコアで2つの処理を実行できる
- ターボブーストテクノロジー=CPUを自動的に定格の動作周波数より高速で動作させる機能
- メモリ・・・パフォーマンス ex DDR3-1600 速度1600MHz
- スロット数・・・マザーボード上にあるメモリを挿す口の数
- ECCメモリ・・・メモリ故障の時にエラーを自動補正・検知できるようにパリティ情報が追加されている
- チャネル
- ランク・・・メモリ上のDRAM(Dynamic Random Access Memory)からデータを入出力する単位
- メモリ選定ポイント・・容量、パフォーマンス(高速なメモリ、拡張性
- RAID(Redundant Arrays of Inexpensive Disks) ・・・ディスクI/O性能(サーバートストレージ間の読み書き)向上
- RAID5・・・・容量を多く取れるが、遅い
- RAID10・・・容量が少なくなるが、早い
- パリティチェックとは、データの伝送や記録に際して、データの誤りを検出する方式の一つ。
- 物理サーバー(1つのOS、CPU使用率、ディスクI/O負荷、ディスク使用容量が大きい用途向け,DB,AP)VS仮想サーバー(複数のOS、容量が小さいもの向けWEB,開発)
- 物理サーバーのメリット=コストダウン、ハードウェアリソースの増減が容易
- 物理サーバーのデメリット=他のゲストOSが大量のリソースを使うと、不安定になる、 使われなくなったOSが撤去されなくなる
- ホストOS・・・一般的なOSをダウンロードした後に、その上でゲストOSを管理すること
- ハイパーバイザ型・・・ホストOSの代わりに仮想化専用OSを使う。高速
- クラウド・・・SAAS(アプリをサービスとして提供)PAAS(アプリの実行環境)IAAS(システムインフラ)
- クラウドの弱点・・・スケールアップには弱い、物理サーバーに障害があった場合、待つしかない
- クラウドに向かない用途→機密情報、大容量ファイルの転送、大規模システム大規模システム
3,OS
- Linux (Red Hat, Debian)
- Windows server・・・windows server 上で動くソフトウェアを使うとき、.NET, Active directory 環境を使いたい
- Unix
4, ネットワーク
- ルーターの役割(static routing・・ルーターに経路情報を手動で登録。dynamic routing・・・近隣ルーターと通信して経路情報を自動更新。
- ルーターのポイント ISPやデータセンターなど、ルーターを接続する先から提供される上位回線のインターフェイスと一致したWAN側インターフェイスを持つ
- WAN側での通信帯域・・WAN側の通信帯域が1Mbps以下かどうか
- スループット・・・単位時間当たりのデータ転送量
- セキュリティ機能をルータに求めるか
- 導入コスト
- L2スイッチ・・・業務用のスイッチングHUB
- L3 ・・ルーター付きL2スイッチ
- スイッチング能力・・Packet per Second(PPS) Bit per Second(BPS)
- ワイヤースピード・・最大の通信料が発生
- ノンブロッキング・・ワイヤースピードをさばけること
- ロードバランサー・・・負荷分散の際の死活監視
- フロントエンド・・・・インターネットに近い所
- バックエンド・・・・インターネットから遠い所
- TCP/IP・・・・インターネット上で使われているプロトコル。高品質な通信を実現するプロトコル。送信元と受信元の間で確実な通信が保証。しかし、速度は遅い。
- UDP・・・・低品質で高速 音声通信や動画
- IPv4(8bit×4=32ビット),6 (16×8=128ビット)
5,ストレージ
6, データセンター
7, ソリューションとセキュリティ
8, インフラエンジニアが身につけること
- ドキュメントを読む力