0
0

More than 1 year has passed since last update.

年末年始にやってみたチュートリアルまとめ

Last updated at Posted at 2022-01-07

2021-2022の年末年始にやってみたチュートリアルのまとめ。

普段使っている技術の学び直し。

キーワード やってみたチュートリアル 感想
git たぶんもう怖くないgit〜git内部の仕組み〜 gitを使うエンジニア必読
DynamoDB Amazon DynamoDB Developer Guide 本家のチュートリアル。GSIについて理解できた。
ECS,Fargate Introduction to Amazon ECS 本家のチュートリアル。マネコンから設定はよく分かった。
Docker イラストでわかるDockerとKubernetes CRIやOCIのことが書いてあって内部の理解に役立つ

メモ

たぶんもう怖くないgit

gitの内部の仕組みがとてもわかりやすく説明してあった。gitを使うエンジニアは必読だと思う。

githubのプルリクを行うと内部的に何が行われているか、追加で調べてみた。

準備

ローカル、リモート共にmainブランチにはhello.txtが、b1ブランチにはbye.txtがcommitされている状態を作る。

githubにREADME.mdだけ存在するレポジトリを作る

リモートレポジトリをcloneする

git clone https://github.com/xxxxx/test0001.git
cd test0001
% find .git/objects -type f -print0 | xargs -0 ls -alt        
-r--r--r--  1 s  staff  1156  1  2 19:22 .git/objects/pack/pack-32128797de6af3bfa53bb992f5255d8d528568de.idx
-r--r--r--  1 s  staff   605  1  2 19:22 .git/objects/pack/pack-32128797de6af3bfa53bb992f5255d8d528568de.pack

ローカルにb1ブランチを作成、b1.txtをcommitして、リモートにPUSH。

% git checkout -b b1
Switched to a new branch 'b1'
% echo b1 > b1.txt
% git add b1.txt 
% git commit -m 'add b1.txt'
% find .git/objects -type f -print0 | xargs -0 ls -alt        
-r--r--r--  1 s  staff   162  1  2 19:23 .git/objects/02/2988e6247703f5339613a7700e6986b6ad093e
-r--r--r--  1 s  staff    84  1  2 19:23 .git/objects/1a/81b069cc0395b22b23f02bec94f54d6983bf6f
-r--r--r--  1 s  staff    18  1  2 19:23 .git/objects/c9/c6af7f78bc47490dbf3e822cf2f3c24d4b9061

-r--r--r--  1 s  staff  1156  1  2 19:22 .git/objects/pack/pack-32128797de6af3bfa53bb992f5255d8d528568de.idx
-r--r--r--  1 s  staff   605  1  2 19:22 .git/objects/pack/pack-32128797de6af3bfa53bb992f5255d8d528568de.pack
% git push origin b1

ローカルのmainブランチに、main.txtをcommitして、リモートにPUSH。

% git checkout main
Switched to branch 'main'
Your branch is up to date with 'origin/main'.
% echo main > main.txt
% git add main.txt 
% git commit -m 'add main.txt'
% find .git/objects -type f -print0 | xargs -0 ls -alt        
-r--r--r--  1 s  staff   164  1  2 19:24 .git/objects/98/5359104355b21885eb536a27bb1e24ce737d5a
-r--r--r--  1 s  staff    86  1  2 19:24 .git/objects/13/b990074561f57492fd5b54ab6774f9394da3b5
-r--r--r--  1 s  staff    20  1  2 19:24 .git/objects/ba/2906d0666cf726c7eaadd2cd3db615dedfdf3a

-r--r--r--  1 s  staff   162  1  2 19:23 .git/objects/02/2988e6247703f5339613a7700e6986b6ad093e
-r--r--r--  1 s  staff    84  1  2 19:23 .git/objects/1a/81b069cc0395b22b23f02bec94f54d6983bf6f
-r--r--r--  1 s  staff    18  1  2 19:23 .git/objects/c9/c6af7f78bc47490dbf3e822cf2f3c24d4b9061

-r--r--r--  1 s  staff  1156  1  2 19:22 .git/objects/pack/pack-32128797de6af3bfa53bb992f5255d8d528568de.idx
-r--r--r--  1 s  staff   605  1  2 19:22 .git/objects/pack/pack-32128797de6af3bfa53bb992f5255d8d528568de.pack
% git push origin main

リモートからFetch。ローカルからPUSHしたものだけなので変化なし。

% git fetch
% find .git/objects -type f -print0 | xargs -0 ls -alt 
-r--r--r--  1 s  staff   164  1  2 19:24 .git/objects/98/5359104355b21885eb536a27bb1e24ce737d5a
-r--r--r--  1 s  staff    86  1  2 19:24 .git/objects/13/b990074561f57492fd5b54ab6774f9394da3b5
-r--r--r--  1 s  staff    20  1  2 19:24 .git/objects/ba/2906d0666cf726c7eaadd2cd3db615dedfdf3a

-r--r--r--  1 s  staff   162  1  2 19:23 .git/objects/02/2988e6247703f5339613a7700e6986b6ad093e
-r--r--r--  1 s  staff    84  1  2 19:23 .git/objects/1a/81b069cc0395b22b23f02bec94f54d6983bf6f
-r--r--r--  1 s  staff    18  1  2 19:23 .git/objects/c9/c6af7f78bc47490dbf3e822cf2f3c24d4b9061

-r--r--r--  1 s  staff  1156  1  2 19:22 .git/objects/pack/pack-32128797de6af3bfa53bb992f5255d8d528568de.idx
-r--r--r--  1 s  staff   605  1  2 19:22 .git/objects/pack/pack-32128797de6af3bfa53bb992f5255d8d528568de.pack

プルリク

github上でb1 -> mainのプルリクエストを作成してマージ。

その後、リモートからFetchしてみる。

% git fetch
remote: Enumerating objects: 4, done.
remote: Counting objects: 100% (4/4), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 2 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (2/2), 721 bytes | 360.00 KiB/s, done.
From https://github.com/xxxxx/test0001
   9853591..3075afa  main       -> origin/main
% find .git/objects -type f -print0 | xargs -0 ls -alt 
-r--r--r--  1 s  staff   114  1  2 19:32 .git/objects/22/e851343c5dc64155ffec8d1bb9c2aad9006813
-r--r--r--  1 s  staff   607  1  2 19:32 .git/objects/30/75afa328960e169f789142caa90fb8b1a4fdbc

-r--r--r--  1 s  staff   164  1  2 19:24 .git/objects/98/5359104355b21885eb536a27bb1e24ce737d5a
-r--r--r--  1 s  staff    86  1  2 19:24 .git/objects/13/b990074561f57492fd5b54ab6774f9394da3b5
-r--r--r--  1 s  staff    20  1  2 19:24 .git/objects/ba/2906d0666cf726c7eaadd2cd3db615dedfdf3a

-r--r--r--  1 s  staff   162  1  2 19:23 .git/objects/02/2988e6247703f5339613a7700e6986b6ad093e
-r--r--r--  1 s  staff    84  1  2 19:23 .git/objects/1a/81b069cc0395b22b23f02bec94f54d6983bf6f
-r--r--r--  1 s  staff    18  1  2 19:23 .git/objects/c9/c6af7f78bc47490dbf3e822cf2f3c24d4b9061

-r--r--r--  1 s  staff  1156  1  2 19:22 .git/objects/pack/pack-32128797de6af3bfa53bb992f5255d8d528568de.idx
-r--r--r--  1 s  staff   605  1  2 19:22 .git/objects/pack/pack-32128797de6af3bfa53bb992f5255d8d528568de.pack

gitオブジェクトが二つ増えている。
github上でmainブランチとb1ブランチのmergeが行われたことによって生成されたもの。
ひとつはtreeオブジェクト。main.txtとb1.txtの両方が入ったtreeオブジェクトが新規作成されている。
もう一つはcommitオブジェクト。commiterはGitHubとなっている。親commitオブジェクトはマージ元とマージ先のcommitオブジェクトになっている。
これで、githubでのプルリクとマージで何が行われているかが分かった。

% git cat-file -p 22e8
100644 blob f696506eb0d12c05a75d076a4a4e47b8f9723baa    README.md
100644 blob c9c6af7f78bc47490dbf3e822cf2f3c24d4b9061    b1.txt
100644 blob ba2906d0666cf726c7eaadd2cd3db615dedfdf3a    main.txt

% git cat-file -p 3075
tree 22e851343c5dc64155ffec8d1bb9c2aad9006813
parent 985359104355b21885eb536a27bb1e24ce737d5a
parent 022988e6247703f5339613a7700e6986b6ad093e
author xxxxx <xxxxxx@gmail.com> 1641119532 +0900
committer GitHub <noreply@github.com> 1641119532 +0900
gpgsig -----BEGIN PGP SIGNATURE-----
 ...
  -----END PGP SIGNATURE-----


Merge pull request #1 from xxxxx/b1

add b1.txt%  

最後にfetchした内容をマージ。ここからはgithubは関係なく、ローカルのgitの動作。

merge前。まだmainブランチのheadはマージ前のcommitオブジェクトを指している。

% git branch
  b1
* main
% cat .git/HEAD           
ref: refs/heads/main
% cat .git/refs/heads/main 
985359104355b21885eb536a27bb1e24ce737d5a

merge後。mainブランチのheadはfetchしたcommitオブジェクトを指すようになっている。
b1.txtファイルが追加されている。

% git merge
Updating 9853591..3075afa
Fast-forward
 b1.txt | 1 +
 1 file changed, 1 insertion(+)
 create mode 100644 b1.txt
% cat .git/HEAD           
ref: refs/heads/main
% cat .git/refs/heads/main
3075afa328960e169f789142caa90fb8b1a4fdbc

Introduction to Amazon ECS

  • Fargateではポートマッピングがホストと同じポートじゃないとできない(異なるポートでマッピングできるのはネットワークタイプがbridgeの時だけ。Fargateはbridgeに対応していない)
  • Cloud9を使ってDockerイメージを作ってレジストリにPUSHするところを、ローカルのMacでやってみた
    • Apple Siliconなので、dockerビルドするイメージはARM用。そこでdocker buildxを使ってクロスコンパイルしたものをECRにPUSHした。
    • ARM版のイメージをPUSHして、gravitonで実行してみたかったが、マネコンからの設定では選択できなかった。なぜだ?

docker buildxの使い方は下記にメモ。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0