ネクストスキル週次ゼミ(9月のゼミまとめ)
9 月のネクストスキルの週次ゼミのまとめです。
9 月に学んだこと
第 1 週
クラウド時代の環境構築の基本について学びました。
- CI/CD の基本概念
- test, build, カバレッジ, Lint, セキュリティ
- 初期に構築するのが大事
- Delivery, Deployment
- CodeCommit, CodeDeploy, CodePipeline でデモ
- CIOps, ChatOps, GitOps
- クラウド時代の環境構築のポイント
- 大きく 3 レイヤー
- アプリのデプロイ, EC2(VM)内の環境構築, VPC と EC2 の構築
- Infrastructure as Code
- Immutable Infrastructure
- 宣言的、冪等性
- VM の環境構築
- 起動時にインストール vs AMI
- userdata(EC2), Ansible, EC2 Image Builder, Packer
- CI は 10 分以内
- 大きく 3 レイヤー
- 構成パターンの整理
- 上記のまとめ
- デプロイ方法(ローリング、ブルーグリーン、カナリア)
- 無停止リリース
昔苦労していた部分をうまく解決していった結果、今のやり方があるので、昔のやり方を知った上で、今の方法を考えると、理解しやすいなと思いました。
今回は主に VM に関してでしたが、今後、コンテナを使った環境構築もやるはずなので、その際にまた見比べると理解が深まりそうです。
第 2 週
AWS で動かすアプリケーションの設計やセキュリティの基本について学びました。
- AWS におけるセキュリティの基本
- 本番と開発で AWS 環境を分ける
- IAM
- シークレットキーはできるだけ発行しない
- The Twelve-Factor App
- クラウドらしいアプリとは
- 1 コードベース 1 アプリを複数環境デプロイ
- 依存関係のバージョン固定
- 設定情報は環境変数で与える
- マシン内のデータは持たない(ステートレス)
- グレースフルシャットダウン
- 開発、本番での時間のギャップを少なくする
- ログをイベントストリームとして扱う(標準出力)
- 12Factor でまず抑えるべきは、ステートレス、環境変数、ログは標準出力
- ロギング・モニタリングの基本
- ロギング
- ログの種類
- アプリケーションログ
- システムログ
- Web サーバログ
- DB ログ
- ログレベル
- FATAL, ERROR, WARN, INFO, DEBUG
- 個人情報に注意
- ログの種類
- モニタリング
- ユーザが問題なく快適に使えていることが重要
- 外形監視はおすすめ。
- 不要なアラートは飛ばさないようにチューニング
- ロギング
第 3 週
AWS におけるデータ分析基盤について学びました。
- データ分析基盤の基本構成
- データ分析
- 統計、機械学習
- SQL
- BI
- ビッグデータ
- ドメイン知識
- 分析基盤
- 本番稼働中の DB を見にいくのは NG
- データレイク
- DWH
- データマート
- ETL
- AWS Glue
- Goolge Cloud Dataflow
- 分散処理ツール
- OSS Hadoop
- AWS EMR
- Google Dataproc
- データ分析
- AWS におけるデータ分析基盤用サービス
- S3(データレイク) -> Redshift(DWH) -> RDS(データマート)
- 用途用途で変換していく
- Glue のデモ
- データサイズやセキュリティを意識
- その他の知っておくべきデータ処理
- ログ分析
- Fluentd, CloudWatch エージェント, DataDog
- ストリーミング処理
- ログ分析
講師の方も言ってましたが、そもそもこういうものがあり、こういうやり方があるということを知っておけば、必要になったタイミングで調べに行けばいいので、広く知っておくことも重要だなと思いました。
第 4 週
受講生のアンケートへの回答の講義でした。
- RDB のユーザ管理
- MySQL のユーザ、ロール、機能
- AWS RDS のユーザ管理
- 環境変数や SSM パラメータストアなどからユーザなどの設定情報を入れる
- RDB のデータマイグレーション方法
- SSH 経由(GUI ツール)で流す方法 △
- マイグレーションツール
- SQL の読み書きのコツ
- データサイエンス 100 本ノック
- SQL は必ず読むわけではないというのがポイント
- セッション管理と Redis
- セッションの仕組み(Web アプリケーション)
- cookie にセッション ID を持たせ、サーバサイドでセッションデータ(userId など)を持つ
- cookie にセッションデータを持つ(JWT など)
- セッションの仕組み(Web アプリケーション)
- 同一オリジンポリシーと CORS
- JavaScript による API アクセス
- ブラウザの機能
- Access-Control-Allow-Origin
- Go 言語の特徴
- 長所
- 機能が少ない
- 静的型付け
- クロスコンパイルが簡単
- コンテナ、サーバレスとの相性良し
- 並行処理が簡単
- 短所(批判)
- 機能が少ない
- 面白くない
- 長所
データベーススペシャリストを受けるつもりだったので、RDB 周りについて質問しました。試験の役に立ったと思います。
まとめ
主にクラウドでの環境構築などを学びましたが、手でコマンドを打って構築 → 自動化やコンテナ化すると身につきやすいとのことでした。
自分もゴリゴリ手を動かして身につけていきたいです。
