Slide 1

Slide 1 text

1/40 Finchが現状運⽤で使え そうか考えてみた

Slide 2

Slide 2 text

2/40 早速ですが⾃⼰紹介 尾澤 公亮(おざわ こうすけ) NRIネットコム株式会社 基盤デザイン事業部 所属 妻⼀⼈、⼦⼀⼈、6⽉にもう⼀⼈追加予定 2016年 NRIネットコム株式会社 ⼊社 AWSを中⼼として、 コンテナを⽤いた Web システムの設計・開発・運⽤ に従事 これ書きました→

Slide 3

Slide 3 text

3/40 さっきの話でお腹いっぱい(のはず)ですね Finchとは︖

Slide 4

Slide 4 text

4/40 実際にfinch触ってみました ので、その模様をお伝えします というわけで今回は。。。

Slide 5

Slide 5 text

5/40 finch 起動 コンテナ動かす ビルドしたりする composeしてみたりする ECRに繋げてみようとする やったこと

Slide 6

Slide 6 text

6/40 > ➜ brew install --cask finch ~~~ 省略 ~~~ ==> Downloading https://github.com/runfinch/finch/releases/download/v0.5.0/Finch-v0.5.0-x86_64.pkg ~~~ 省略 ~~~ ######################################################################## 100.0% ~~~ 省略 ~~~ 🍺 finch was successfully installed! > ※ v0.5.0は執筆時点での最新バージョン 何はともあれインストール

Slide 7

Slide 7 text

7/40 サポートOSは Mac OS (~> Catalina) のみ Catalinaサポートはv0.4.1で終了 v0.5.0以降を利⽤する場合はBig Sir以降へのアップデートが推奨 OS仕様とかとか

Slide 8

Slide 8 text

8/40 Intel, M1 双⽅に対応 最⼩スペックとして、 2 CPU、4 GB Memory が推奨 OS仕様とかとか

Slide 9

Slide 9 text

9/40 ➜ time finch vm init INFO[0000] binaries directory doesn't exist INFO[0000] Requesting root access to finish network dependency configuration INFO[0000] sudoers file not found: open /etc/sudoers.d/finch-lima: no such file or directory INFO[0009] Initializing and starting Finch virtual machine... INFO[0171] Finch virtual machine started successfully finch vm init 7.23s user 8.46s system 9% cpu 2:52.58 total finchを起動してみる

Slide 10

Slide 10 text

10/40 finch lima(VM) containerd ざっくりFinchの中⾝はこちら

Slide 11

Slide 11 text

11/40 lima(VM) ├── bin ├── boot ├── dev ├── etc ├── home ├── mnt ├── media ├── opt ├── proc ├── root ├── sbin ├── srv ├── tmp ├── usr └── var host ├── Applications ├── Library ├── System ├── Users ├── Volumes ├── bin ├── dev ├── etc ├── home ├── opt ├── private ├── sbin ├── tmp ├── usr └── var $HOMEがマウントされてそう

Slide 12

Slide 12 text

12/40 lima(VM) ├── bin ├── boot ├── dev ├── etc ├── home ├── mnt ├── media ├── opt ├── proc ├── root ├── sbin ├── srv ├── tmp ├── usr └── var host ├── Applications ├── Library ├── System ├── Users ├── Volumes ├── bin ├── dev ├── etc ├── home ├── opt ├── private ├── sbin ├── tmp ├── usr └── var $HOMEがマウントされてそう

Slide 13

Slide 13 text

13/40 シェルログインできるよ lima VMの中⾝はいじれそう︖

Slide 14

Slide 14 text

14/40 ➜ LIMA_HOME=/Applications/Finch/lima/data /Applications/Finch/lima/bin/limactl shell finch [k-ozawa@lima-finch /]$ [k-ozawa@lima-finch /]$ uname -a Linux lima-finch 6.1.18-200.fc37.x86_64 #1 SMP PREEMPT_DYNAMIC Sat Mar 11 16:09:14 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux [k-ozawa@lima-finch /]$ [k-ozawa@lima-finch /]$ sudo su - [root@lima-finch ~]# 実際に⼊ってみた→lima VM

Slide 15

Slide 15 text

15/40 ちょっとコンテナ動かしてみた

Slide 16

Slide 16 text

16/40 ビルドしてみる FROM public.ecr.aws/nginx/nginx:1.23-alpine RUN apk update && ¥ apk upgrade

Slide 17

Slide 17 text

17/40 こけた

Slide 18

Slide 18 text

18/40 あーね。プロキシね。

Slide 19

Slide 19 text

19/40 プロキシ設定ってどうしたらええんや。。。︖

Slide 20

Slide 20 text

20/40 Dockerだとこんな感じ

Slide 21

Slide 21 text

21/40 とりあえず回避策 FROM public.ecr.aws/nginx/nginx:1.23-alpine ARG HTTP_PROXY ARG HTTPS_PROXY RUN apk update && ¥ apk upgrade

Slide 22

Slide 22 text

22/40 いけてそう

Slide 23

Slide 23 text

23/40 BuildKitがデフォルトで使える デーモン設定変更とかシンタックスの記載が不要 ちょっとプラスでやってみた

Slide 24

Slide 24 text

24/40 BuildKitなDockerfile FROM public.ecr.aws/nginx/nginx:1.23-alpine ARG HTTP_PROXY ARG HTTPS_PROXY RUN --mount=type=cache,uid=1000,target=/var/cache/apk ¥ apk update && ¥ apk upgrade

Slide 25

Slide 25 text

25/40 できてそう

Slide 26

Slide 26 text

26/40 が、シンプルに起動できる arm64 / amd64 コマンド引数を指定するだけでOK Dockerだとエミュレータが必要だったりする マルチプラットフォームなコンテナ

Slide 27

Slide 27 text

27/40 arm64なAL2コンテナをIntel Mac上で起動してみた

Slide 28

Slide 28 text

28/40 composeしてみる version: "3” services: nginx: image: public.ecr.aws/nginx/nginx:1.23-alpine container_name: finch-nginx ports: - "80:80"

Slide 29

Slide 29 text

29/40 composeしてみる

Slide 30

Slide 30 text

30/40 個⼈的にちょっと嬉しかったこと compose exec できるようになってる︕︕

Slide 31

Slide 31 text

31/40 やってみた ECRに接続してみる

Slide 32

Slide 32 text

32/40 ⾊々問題が発⽣して頓挫 ECRに接続してみる→結論

Slide 33

Slide 33 text

33/40 認証ヘルパー経由でログインが出来なさそう → aws ecr get-login-password でログインはできそう ECRに接続してみる→結論

Slide 34

Slide 34 text

34/40 というわけで、 運⽤(というか今後の開発)について

Slide 35

Slide 35 text

35/40 コンテナ動かしたりするのはfinchでも代替できそう 操作感もdockerとほぼ⼀緒 まとめてみる

Slide 36

Slide 36 text

36/40 プロキシ設定がなさげなので要回避 → build-arg を追加する ネットワーク的なところ

Slide 37

Slide 37 text

37/40 認証ヘルパー的なものはない AWSとかと繋ぐ部分

Slide 38

Slide 38 text

38/40 lima VMをゴニョゴニョすればできそう︖ 現状なさそうな機能は

Slide 39

Slide 39 text

39/40 ⾜りない機能は回避するか追加する 今後のアップデートで追加される気もするので 引き続き要チェック 当⾯は。。。

Slide 40

Slide 40 text

40/40 以上です 素敵なFinchライフを︕