まちん

主にAndroidアプリを作ってます。

ネクストスキル週次ゼミ(8月のゼミまとめ)

8 月のネクストスキルの週次ゼミのまとめです。

8 月に学んだこと

第 1 週

AWS の概要と、サーバ、ネットワーク構築の基礎について学びました。

  • クラウドコンピューティングと AWS の概要
    • IT インフラの歴史
      • 物理マシン -> 仮想マシン -> クラウド
      • NIST によるクラウドの定義
      • オンデマンドセルフサービス
    • クラウドの分類
      • パブリッククラウド、プライベートクラウド、ハイブリッドクラウド、マルチクラウド
    • クラウドの 3 大モデル
      • IaaS, PaaS, SaaS
    • 責任共有モデル
    • クラウドにあるよくある FAQ
    • クラウドファースト、クラウドネイティブ
  • EC2 と VPC の概要とデモンストレーション
  • AWS の勉強法
    • 公式ドキュメント
    • ブログ
    • ブラックベルト
    • DevelopersIO
    • CloudFormation(Terraform)
    • 認定資格

改めて「クラウドとは」から学びましたが、逆に物理マシンを用意したりとかしてみたいなと思っちゃいました。

クラウドをどう使うかは要件次第なので、その見極めや精度を磨いていかないといけないのと、利用したことがないサービスはいざやってみると詰まったり、疑問点が出てきたりするので、手を動かすのは重要だなと思いました。

第 2 週

AWS におけるネットワーク設計の基本について学びました。

  • ネットワークの仕組み復習
    • ハブ、ルータ、ルーティング、インターネット
  • VPC の設計の基本
    • AWS に限らない NW 設計
      • 社内ネットワーク
      • DMZ
      • ファイアウォール
    • AWS の設計
      • ルートテーブル
      • パブリックサブネット、プライベートサブネット
      • インターネットゲートウェイ
      • NAT ゲートウェイ
  • 通信のデバッグのコツ
    • 通信がうまくいかないあるある
      • IP、ポートが違う
      • ルーティング
      • NAT、IGW
      • ファイアウォール
    • 通信のデバッグ
      • TCP/IP モデルが大事。どのレイヤーがおかしいのか
        • HTTP
          • curl
          • 通信先が起動しているか
        • TCP
          • nc, lsof, netstat, ss
          • コネクション、IP、ポート
        • IP
          • パケット飛んでるか、ルーティングができるか
      • AWS における ping
      • 知っておきたいコマンド
  • その他発展的内容
    • Elastic IP
    • VPC ピアリング
    • Direct Connect

実際に通信のデバッグなど、一緒に考えながら、デモを見れたのはよかったです。

第 3 週

AWS での最も基本的なアーキテクチャについて学びました。

  • ストレージとコンテンツ配信サービスの紹介
    • ストレージ関連サービス
      • EBS, S3
    • クライアントサイド暗号化、サーバサイド暗号化
    • コンテンツ配信サービス
      • S3, CloudFront
  • Web アプリケーションを動かす最小構成
  • スケーラブルな基本アーキテクチャ
    • Route53
    • AutoScaling
    • ELB
    • Elastic Cache

第 4 週

入門で押さえておきたい AWS のサービスを学びました。

  • 定番のコンピューティング、データベースサービス
    • AWS の基本構成(復習)
      • Route53 + ELB + EC2 + AutoScaling + RDS
      • この基本構成を置き換える視点で考えると以降が理解しやすい
    • Elastic Beanstalk、ECS、Lambda
    • Elastic Beanstalk のデモ
      • Auto Scaling を実際にリクエストしてやってみたり
    • DynamoDB のデモ
    • RDB vs NoSQL
      • 整合性とパフォーマンス
  • アプリケーションサービス
    • SES
      • 自前のメールサーバについて
      • その他 SaaS
    • SQS
      • キュー(スタンダード、FIFO)
      • ポーリング
      • 使用例
    • SNS
  • 管理サービス
    • IAM
    • CloudWatch
    • CloudTrail
    • CloudFormation
      • Infrastructure as Code
      • 再現性

第 5 週

受講生のアンケートへの回答の講義でした。

  • プログラムのライセンスについて
    • GPL(GPL 汚染)
    • コピーレフト
    • licensed(ツール)
    • SDK の逆コンパイル
  • IP 制限の意義
    • IP 制限 + token
    • token の漏洩
    • 多層防御
    • ゼロトラスト
  • AWS の操作方法の整理
    • マネジメントコンソール
      • 勉強用、確認用
    • CLI
      • シェルスクリプト、単発操作
    • CloudFormation(JSON, YAML)
      • Terraform, CDK, Pulumi
      • しっかりした環境構築
    • SDK
      • アプリケーションから AWS 操作
    • API
  • AWS のサービスを使った開発でのローカル・AWS 環境の切り替え
    • アプリ内で切り替え
    • ローカルのモックツール(フェイク)
    • ローカルで開発し、クラウドに繋ぐ
    • クラウドで開発する
  • コンテナを使ったアプリケーションの構成例
    • コンテナだからといってかなり特別なことをするわけではない。
    • テストした成果物をビルドしなおさない etc
    • デプロイパターン
      • ローリングアップデート、Blue/Green デプロイメント、カナリアリリース
    • 無停止リリース
      • API 互換性
      • インフラエンジニアがいればできるものではない
    • エラーバジェットという考え方
  • CloudFormation や Terraform の設計
    • システム特性、人的リソース状況による
    • 長期的に運用して評価する
  • テストのツール紹介
    • ユニットテスト
    • API テスト
    • E2E テスト
    • 静的解析
    • CI
  • セキュリティのツール紹介
    • アプリ
      • ライブラリ脆弱性
    • サーバ
      • 脆弱性診断
      • 改竄検知
      • アンチウイルス
    • ネットワーク
    • Wep アプリ
      • WAF
      • 脆弱性診断
    • コンテナ
    • ロギング、モニタリング
    • DevSecOps
  • エンジニア以外へのテストなどの文化の浸透
    • 技術的に可視化
      • カバレッジ、複雑度チェック
    • DevOps, SRE
  • 2 社目の選び方やキャリアについて

今回はアンケートが多かったのか、モリモリでしたが、結構「なるほど。」となるものや、「知らないと何から始めていいかわからないだろうな。」というものが多かったです。

ツールを使うのは簡単かもしれないですが、必要になった背景や、そもそもなぜやるのか というところをしっかり抑えないと、形骸化したり、逆に足枷になったり、新しいツールが出てきても対応できないなと感じました。

全て習熟するにはかなり時間がかかりそうですが、必要なことだと思うので、やっていくしかないなと思いました。

まとめ

8 月は AWS が中心でしたが、9 月も AWS の話なので、より AWS の知識を強くしていきたいです。

AWS の資格は持っていますが、最近はあまり手を動かせていないので、実際に構築していって理解を深めていきたいと思いました。

← ホームへ