なむなむ

@namb_nam による恥晒し

Terraformって何

Terraformってなんなのか、調べた。

今回のゴールは、「Terraformで管理する」の意味がだいたいわかることとする。
ざっくりめで。

Terraformとは

  • Infrastructure as Code(IaC)のためのツール
  • インフラ構成(管理)ツール
  • オープンソース
  • Go言語で開発されている

Infrastructure as Codeとは

  • Infrastructure
    • サーバー、ネットワーク機器
    • IaCの場合、クラウドなどの環境(の構成)を指すことが多い
  • Code
    • この場合のコード=規定、符号のような意味に近い
      • 例)コーディング=プログラミング言語で記述すること
      • "コードとしての"=コードとして規定された(プログラムされた)という意味
      • 規定された書式でまとまった手順書という意味もある

つまり IaC=インフラ構成をコードで管理すること

"as Code"ではないInfrastrucure管理
  • CLIGUIを使用して手動で行う
  • 手順書で標準化することがほとんど
Infrastructure as Codeのメリット

≒コード化による自動化のメリット

  • 再現が容易
  • 作成〜破棄までの管理が容易
  • (コードなので)バージョン管理が容易
IaC関連で他に気になること

今回は省略するが、おいおい調べる。

  • IaCのためのツールにはTerraform以外どんなのがあるのか
  • IaCのデメリット

Terraformの特徴

インフラ構成ツールの中でも

インフラ構成を実現する方法のうち、"宣言型"を採用している
作成手順を意識せず、定義だけを記載すればいい
なので、定義ファイルのバージョン管理=インフラ構成の管理になる

できること

インフラの構築・変更・破棄

管理する対象

いわゆるクラウドサービスだけでも、
AWS, Azure, GCP, Oracle, Alibabaなど多数

作業の流れ
  1. (環境を構築する)
  2. 定義ファイルを記載
  3. コマンドを実行する
  4. (Terraform側で)構成ファイルで宣言した状態を取得
  5. (Terraform側で)変更内容を宛先のプロバイダーにプッシュ
  6. 宣言された構成のサーバーなどがGCPAWSに立ち上がる

Terraformの定義ファイル

どうやら「.tf」という拡張子のファイルらしい

既存インフラリソースをTerraformで管理する

それができるコマンドが存在している
既存リソースの構成を読み取り、定義ファイルを作成する

まとめ

「Terraformで管理する」とは
Terraform経由でクラウドなどのインフラを構築・修正・破棄すること

参考文献

5分で分かるTerraform(Infrastructure as Code) | セキュリティ対策のラック

Terraform 入門 - Qiita

IaC から始まる幸せなエンジニアライフ - Qiita

IaC関連ツールまとめ - Qiita

10分で理解するTerraform - Qiita

https://registry.terraform.io/browse/providers

アップグレードプログラムの話

ビックカメラMacアップグレードプログラム+の話である。

www.biccamera.co.jp

前回「M1チップって何」という記事でM1 Macについて調べたので、念の為店頭に見に行ってみた。

気づいたことが3つ。2つは実機を見なくてもわかったことだが。

  1. キーボードがアップデートされている
  2. JISキーボードしか選べない
  3. AirとProのスペックがほぼ変わらない
1. キーボードがアップデートされている

2019までの第4世代バタフライキーボードから、2020はシザー構造Magic Keyboardに変更されている。個人的には、打ちやすいように感じた。(おそらくワイヤレスキーボードを使うのであんまり関係ないが)

2. JISキーボードしか選べない

アップグレードプログラムの対象はJISキーボードに限るらしい。 仕事用マシンでUSを採用したこともあり、US(またはUK)に揃えたいと思っていたので、残念。

3. AirとProのスペックがほぼ変わらない

すでに多くのブログなどで言及されているが、よっぽどのことがない限りM1搭載モデルでProを選ぶ理由はない。個人的な用途を考えても、Airで十分なことが予想される。

とここまで書いて、今夜がAppleのイベントだということに気づいた。まぁMacの話は出ないだろうけど。

優しさの実装

ウルトラマンコスモス』の放送が2001年7月から2002年9月。 劇場版最終作の公開が2003年8月公開。

機動戦士ガンダムSEED』の放送が2002年10月から2003年9月。 『機動戦士ガンダムSEED DESTINY』の放送が2004年10月から2005年9月。

小学校高学年の頃に連続して観ていたこの2作品が、自分の価値観に大きく影響したことは間違いない。

コスモスは"強さとやさしさ"、SEEDは"想いと力"、表現は異なるが、当たらずとも遠からずなテーマを扱っていたように思う。強い力を持つウルトラマンとして、怪獣を保護するために戦うコスモス。主人公たちが戦争を終わらせるための戦いを始めるSEED。2つの作品から、守るためには力がいるが、力だけでは守れないことを学んだ。

その思想を、自分はどう活かせているだろうか、と思う。特に仕事において。

コンサルとしての4年間は、データドリブンの入り口に立てるかどうかのフェーズの企業と向き合い、"そもそもデータ活用とは"から始める教育、文化醸成の一端を担うことが多かった。だから実装のハードスキル、話し方や調整力、無茶振りや余計な雑務から自分と後輩を守る力などのソフトスキルが伸びた気がする。仮に高度なテクニカルスキルを持っていたとしても、使う場面がなかったので積極的に伸ばそうとは思わなかった。

今はどうだろう。どう考えてもハードスキルが足りない。 自分の視座や心遣いが秀でていたとしても、それを実装に落とし込むスキルがない。 SEEDでいう、「気持ちだけで……一体何が守れるって言うんだ!!」状態である。 想いと力のバランスを早急に取らねばならない。

足りてないことの意識(概念的定義と操作的定義)

概念的定義と操作的定義の話。

軽くググったところ心理学や哲学でよく使われる用語らしいが、『分析者のためのデータ解釈学入門』では、「測定の難しさ」の項で触れられている。データを取得する際、「そのままでは測れないもの」を実際に測れる指標で代替するが、厳密には異なるものを測っているという意識を忘れてはいけない。測定したいものと、測定できるものの違いを意識せよ、という話である。

整理すると、

  • 概念的定義:測りたい概念(例:頭の良さ)
  • 操作的定義:測定という操作による定義(例:IQ)

直接は測定できない概念(例:頭の良さ)は理論的構成概念とも呼ばれる。また、理論的構成概念を操作(測定)によって定義する方法論を操作主義といい、概念的定義と操作的定義はこの操作主義で生まれた概念らしい。

これを実務に適用する。 例えば、「社内で重要なデータって何?」と聞かれて「クエリ数が多いデータ」と答えたとする。

  • 概念的定義:データの重要性
  • 操作的定義:クエリ数

であるということだ。 しかし、クエリ数だけでは測定できない「重要性」があることを常に意識しておかないと抜け漏れが発生する。この場合だと"クエリ数が多いけど重要"という状態がないかは考えないといけない。

  • 操作的定義が表現したかった概念的定義は何か
    • クエリ数が多い≒使用回数が多い
  • 操作的定義が概念的定義につながっていないケースはないのか
    • スクリプトが繰り返しアクセスしていると参照回数は多くなるが、重要とは言えない
    • 逆に、結果がキャッシュされて使用される場合、参照回数は少なくなるが、重要でないとは言えない
  • 概念的定義に対して測定可能な操作定義は他にないのか
    • 参照している社内組織数
    • 社外公開数値の元になっているかどうか
    • 法的に保護しなければならないデータかどうか

などなど。 自分の思考が必要十分かどうかは、常に意識しておきたい。

amzn.to

超今さらだが本の読み方がよくなかった

本当に今さらなのだけど、自分は文芸書とそれ以外の本を同じような丁寧さで読んでしまっていたかもしれない。 いや、ビジネス書でも実用書でも、基本的には必要な部分だけ読めばいいのだと思うし、読み飛ばしていいとは言わないが「全てじっくり読む必要はない」のは明らかだろう。

が、僕は、得られるものはすべて得ようとしてしまっている節があり、なるべく満遍なく集中力を保って読もうとしていたのではないか、と思った。

これは『STARTUP 優れた起業家は何を考え、どう行動したか』という書籍を読んでいたときにふと気付いたことである。この本は、著者のまとめと起業家へのインタビューパートで構成されているのだが、それぞれが(個人的には)ちょうどいい分量で細かく切れていて、とても読みやすかったのである。集中力を保つ必要がある時間が短く、波のようなのでいいペースが生まれる。少し離れてもまた戻りやすかったし、自分には明らかに不要な箇所にも気付きやすいし、いいことづくめだった。

この、なんでもじっくり読んでしまう感じ、読み終わった本を売るようになってからかもしれない。 「この本を読み返すことはないだろう」「この本から学べることはもうない」と言い切る必要はないはずなのに、手元からなくなると考えるとその思いが強くなってしまっていたように思う。

SQLスキルが足りてない

SQLスキルが足りてない、と感じた。

データ整備の仕事において、 例えば新旧テーブルの比較や乖離状況の把握はよくある集計作業だが、 そのクエリくらいサクッと書けないと改善のための時間が不足する。

という話である。

しんゆうさんの記事

analytics-and-intelligence.net

では、

整備の仕事はどんなデータが来てもなんとかできるスキルが必要

とある。同意だ。。。

ほしい物リストに入ったままだった 『ビッグデータ分析・活用のためのSQLレシピ』を即購入した。

自分のポジションはアーキテクトなので、そこまで複雑な分析(のためのクエリ)はいらないと思って SQLスキルを伸ばすのは一旦止めていたけど、全然そんなことなかった。勉強しよう。

M1チップって何

ビックカメラの「Macアップグレードプログラム+」でMacbook Proを購入してから2年経った。 たしか「2年ごとに買い替えたらええやん〜」と思って2年プランにした記憶があり、たいして使いきれてないが買い替えも検討していいのではと思った。

それに際し、ずっと気になっていたM1チップってなんなのかを調べる。 ※知らない単語を調べただけで、特徴を調べたわけではない。

www.apple.com

公式のプレスリリースを読む

  • AppleMac専用に設計したチップ
  • システムオンチップ(SoC)である
    • 多くのパワフルなテクノロジーを1つのチップにまとめ
    • ユニファイドメモリアーキテクチャを採用することで、パフォーマンスと効率を劇的に進化させています
    • 従来、CPU、入出力、セキュリティなどのために複数のチップが使われていました
  • M1は最先端の5ナノメートルプロセステクノロジーを使って作られた初めてのパーソナルコンピュータ用チップ
  • 1つのチップとしてはApple史上最も多い160億個という驚異的な数のトランジスタを搭載
  • 4つの高性能コアと4つの高効率コアで構成された8コアCPUを搭載

調べたこと

システムオンチップ(SoC)
  • CPUやGPUなどのプロセッサと、メモリや周辺機器などを制御するためマイクロコントローラを統合したもの
  • 似た概念として、LSIやASICがある
    • LSI(Large Scale Integrated):大規模集積回路、コアとしての機能はあるが、メモリやマザーボードなどの機能は別途組み合わせる必要がある
    • ASIC(Application Specific Integrated Circuit):特定用途向け大規模集積回路
  • 複数の集積回路を組み合わせてシステムを実現するのではなく、チップ上に各種回路を組み込んで配線し、システムとして動作させる
  • 組み合わせるものは、「コア」と呼ばれる組み込みCPU、マイコン(マイクロコントローラ)、メモリなど
これまでのMacにはWindows PCなどにも搭載されているIntel製CPUが採用されていた
  • つまりM1 Macインテル入ってないのか
  • 今の自分のMacbook Proの説明には、2つの欄にIntelの記載がある
  • つまりCPUとGPU
  • M1チップのCPUは8コアで、4つの高性能コア+4つの高効率コアで構成
CPUが異なることによる影響