新人SEの学習記録

14年度入社SEの学習記録用に始めたブログです。気づけば社会人3年目に突入。

学習記録:AWS、イーサネット&TCP/IP

[学習記録] AWS

6章:はじめてのAWS つまずきポイントはここだ!

EC2とEBS
  • デフォルト設定ではStop/StartでIPアドレスが変わってしまう
  • AMI作成時に再起動してしまう
  • Stop/Startでデータを消してしまう
    • インスタンスストアというディスク領域はStop/Startでデータが消える
    • 保持し続けるべきデータは必ずEBSに保存
    • EBSの容量は1Tバイトが上限なので注意
VPC
  • インターネットから接続できない
    • ユーザ自身が作成したVPCでは、VPC内のEC2に自動的にグローバルIPアドレスが割り当てられない
    • Elastic IPアドレスとIGWの設定が必要
    • ELBも同様で、VPC内に設置した場合はIGWの作成、VPCとの関連付け、ルーティングの設定が必要
  • セキュリティグループで許可したのに接続できない
    • セキュリティグループとネットワークACLの両方で通信を制御した場合に発生
    • 前者はステートフルなので戻りの通信に対して自動的に接続を許可
    • 後者は戻りの通信を明示的に許可する設定にしないと、正常に通信ができない
RDS
  • SSH/RDP接続ができない
    • エンドポイントと呼ばれる専用のDNS名が発行されるが、これを使用してRDSが稼働しているOSにログインすることはできない
    • 同様に、IPアドレスも固定されないので、ハードコーディングしている場合はエンドポイント名に書き換える必要あり
    • APやミドルウェアが名前解決の結果を独自のキャッシュで保持してしまうケースも
  • スナップショットからRDSを作成できない
    • RDSのインスタンス名が既に存在している場合、スナップショットからRDSを作成できない
    • 既存の名前と重複しないように名前を変えれば良いが、エンドポイント名も変更されるので注意
    • また、スナップショットはAutomatic Backupsオプションを有効にしないと取得できない
そのほか
  • 固定IPを増やせない
    • AWSの各サービスのリソース使用量にはデフォルトで制限があり、EIPも1リージョン5個までとなっている
    • それ以上使用する場合、申請フォームより申し出る必要
  • 脆弱性テストでアカウント停止に
    • こちらも申請フォームで
  • 監視データが2週間までしか記録されない
  • 利用マニュアルが陳腐化
    • 管理画面のレイアウトが頻繁に変更される
    • スクリーンショットを多用した利用マニュアルは陳腐化してしまうことが多い
    • APISDKを利用した際のコマンドでの作業手順を残すことをお勧め

[学習記録] イーサネット&TCP/IP

参考書籍

完全マスターしたい人のためのイーサネット&TCP/IP入門

完全マスターしたい人のためのイーサネット&TCP/IP入門

第1章 デジタル機器のデータのやり取り

パラレル伝送とシリアル伝送
  • パラレル伝送
    • データのビット幅に応じた数の信号線を使ってデータを送る方式
    • 1bitのデータを1本の信号線で送る場合、1byteのデータは8本の信号線で送ることになる
    • データを送る際に、データを表現するための数の信号線(+制御用の信号線)を使う
  • シリアル伝送
    • 多数のビットからなるデータを、1bitずつ順番に送っていく方式
    • 1byteのデータであれば、1bitずつ順番に8回に分けて送る
    • 受信側は1bitずつ受け取って並べ、元の1byteデータに復元する
    • 信号線は1本で済むが、8回の送信が必要
  • シリアル伝送のメリット
    • データ伝送に必要な信号線の数が少ない
    • 機器内部など短距離の通信であれば問題ではないが、遠距離の通信の場合大きなメリットになる
    • また、信号が配線を伝わる際の遅れが問題にならない
    • パラレル伝送では、個々の信号線での遅延時間の差(スキュー)が問題になる
  • シリアル伝送のデメリット
    • 同じ量のデータを同じ時間で送る場合、パラレル伝送より高速な信号線が必要
    • データの送受信部でのパラレル/シリアル変換や、データの開始位置判定などパラレルに比べて複雑な処理が必要
    • 現在ではこの種の送受信回路はLSIにまとめられており、回路規模やコストが負担になることはない
    • よって、現在ではシリアル伝送が広く使われている
    • ※もともとは、CPUとメモリ、拡張スロット、ディスクインターフェースなどはすべてパラレル伝送だった
    • シリアル通信はモデムやキーボード程度でしか使われていなかったが、現在ではパラレル伝送なのはCPUとメモリ周辺くらい
シリアル通信の基本
  • もっとも基本となる2台の機器間でのシリアル通信の場合
    • 例えばPC同士では、シリアルポートを使って1本の通信ケーブルで接続できる
    • シリアルポートにはデータを送信するTxDと受信するRxD端子が存在(GNDとかは割愛)
    • 一方のPCのTxDをもう一方のRxDに接続すれば、2台のPC間でデータをやり取りできる
  • どのようにデータ伝送が行われるか
    • 内部でパラレル伝送されているデータをパラレルーシリアル変換して送信
    • 受信側は受け取ったシリアルデータをシリアルーパラレル変換してパラレル伝送できる1byteを組み立てる
    • この変換処理はデータのシフト処理を行うシフトレジスタで行い、受け取ったデータを1bitずつずらしていく
  • シリアル伝送を行う際に合意しておかなければいけないこと
    • 電気信号や光信号の形式(電圧波形や0と1の表現方法など)
    • データサイズや送信の順序(LSB, MSB)
    • データを送る速度(bps
    • 送受信の同期
    • 伝送エラーの検出
    • フロー制御(受信側からの求めに応じて、送信側が一時送信を停止する)
    • ハードウェアや通信規格で実現されるべき項目とソフトウェアレベルで対応できるものがある
全二重と半二重
  • それぞれのTxDとRxDを2本の線で接続し、2組の通信路で双方向通信を行うのが全二重
    • 1組の通信路で双方向の通信を行う形式を半二重という
    • 半二重では、送信と受信を同時に行うことはできない
    • 電波や赤外線を使った双方向通信は、基本的に半二重になる
情報の表し方
  • 通信路上での0と1の表し方
    • 単純なやり方では、2種類の電圧に0と1を割り当てる。0Vと数V、正と負、など。RS-232では-5V以下が1、+5V以上が0
    • データとして0か1が続いた場合、電圧がずっと変化しない=長時間同じ状態が続けばタイミングがずれてしまう可能性がある
    • 送信側は1000bitの0を送ったつもりでも、受信側は999bitとみなしてしまうかも
    • そこで、信号波形の変化パターンによって0と1を表現するという方法もある(データがないという状態を表せる)
    • マンチェスタ符号化:LH(LowからHighへの変化)が0, HLが1を表す
通信の同期
  • 送信側と受信側がタイミングをうまく合わせることを同期という
    • 一番簡単な方法はデータの信号と並行してタイミングを合わせるための信号を送る
    • これだと配線が増えるので、受信側で受信用のタイミング信号を生成する方法がある
  • 調歩同期式:送信される各データ単位ごとにタイミングを合わせるための信号を埋め込む
    • データに先行してスタートビットを送り、実際のデータビットを送った後、ストップビットを送る
  • 同期式:データ送信に先立て、タイミングを合わせるための特定のパターンを送信
    • 受信側はこのパターンを検出すると、これからデータが送られてくると想定し、この信号のタイミングに合わせてデータを受信
    • データは戦闘の同期信号のタイミングに合わせて連続的に送られてくることが保証されているので、スタートビットなどは不要
    • ただしストップビットもないので、データが送られてきていないことがわからないと、ずっと受信しっぱなしになってしまう
    • データサイズを知らせておくか、データが送られていないという状態が判別できる必要
  • イーサネットなどのネットワークでは同期式のシリアル伝送を使用
    • ネットワークが使うケーブル上を流れる信号は、データがない状態がわかる方式になっている
    • データに先行してプリアンブルという同期信号があり、受信回路はプリアンブルを読み込んでタイミングを合わせる