ようへいの日々精進XP

よかろうもん

2018 年 08 月 08 日 (水)

ジョギング

  • 香椎浜 x 2 周
  • いつもよりだいぶん涼しい感じ
  • 引き続き, 足にもすごく疲労が溜まっている感

日課

  • (腕立て x 50 + 腹筋 x 50) x 3

おなら

  • 奥さんのおならが頻発している

今日のるびぃ exercism 編 〜 helloworld (1) 〜

ギョームで Ruby を触ることが無さすぎるので, exercism の問題を解くことにした.

概要

hello world!!!

テストコード

begin
  gem 'minitest', '>= 5.0.0'
  require 'minitest/autorun'
  require_relative 'hello_world'
rescue Gem::LoadError => e
  puts "\nMissing Dependency:\n#{e.backtrace.first} #{e.message}"
  puts 'Minitest 5.0 gem must be installed for the Ruby track.'
rescue LoadError => e
  puts "\nError:\n#{e.backtrace.first} #{e.message}"
  puts DATA.read
  exit 1
end

# Common test data version: 1.0.0 4b9ae53
class HelloWorldTest < Minitest::Test
  def test_say_hi
    # skip
    assert_equal "Hello, World!", HelloWorld1.hello
    assert_equal "Hello, World!", HelloWorld2.hello
    assert_equal "Hello, World!", HelloWorld3.hello
  end
end
... 略 ...

実装

# 実装 1
class HelloWorld1
  def self.hello
    'Hello, World!'
  end
end

# 実装 2
class HelloWorld2
  class << self
    def hello
      'Hello, World!'
    end
  end
end

# 実装 3
module HelloWorldModule
  def hello
    'Hello, World!'
  end
end

class HelloWorld3
  extend HelloWorldModule
end

テスト実行

$ ruby hello_world_test.rb 
Run options: --seed 26958

# Running:

.

Finished in 0.001473s, 678.8608 runs/s, 2036.5824 assertions/s.

1 runs, 3 assertions, 0 failures, 0 errors, 0 skips

メモ

今日の AWS ~ VPC ~

VPC

  • Virtual Private Network
    • 10.0.0.0/16
    • 172.16.0.0/16
    • 192.168.0.0/16
  • サブネット
    • 配置するサーバーの役割に応じて作成するのが一般的
  • ゲートウェイ
    • インターネットへの出入り口 (IGW)
    • オンプレと VPN専用線で通信する為の出入り口 (VGW)
  • ルートテーブル
    • サブネット毎にインターネットアクセスを許可, 不許可の制限をかけることが出来る
    • IGW が定義されているルートテーブルがアタッチされている場合, パブリックサブネットとなる
    • VPC 内の通信はルートテーブルでは制御出来ない
  • NAT インスタンス
    • プライベートサブネットからインターネットにアクセスする為に利用する
    • 「送信元 / 送信先チェック」を無効化する

EC2 インスタンスの IP アドレス

  • Public IP
  • Elastic IP

セキュリティグループとネットワーク ACL

セキュリティグループ

  • セキュリティグループは EC2 や ELB, RDS 等のインスタンス毎のファイヤーウォール
  • デフォルトでアウトバウントはフルオープン
  • ステートフル (インバウンドで許可していた受信トラフィックの戻りのトラフィックは暗黙的に許可される)

ネットワーク ACL

  • サブネット毎のファイヤーウォール
  • インバウンド, アウトバウントのアクセス制御が必要, 優先順位をつけて設定する
  • ステートレス

VPC ピア接続

  • 2 つの VPC を接続する昨日
  • プライベート IP 同士で通信を行う
  • 双方の VPC に PCX というゲートウェイ相当のインターフェースが作成され, これをルートテーブルの送信先ターゲットとして設定する
  • 制約
    • 接続する VPC は同一リージョンに存在していること (リージョンを跨げない)
    • プライベートネットワークアドレス空間は重複してはいけない
    • 1 対 1 の接続となる (VPC A と VPC B, VPC B と VPC C, VPC A と VPC C という感じで, 個別にピア接続する必要がある)

フムフム.