2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS Community BuildersAdvent Calendar 2024

Day 25

FinchをMacOS/Windows用との違いを意識しながらAmazon Linux 2023で動かす

Posted at

ozawaです。実はQiita初投稿です。メリークリスマス。

Finch

Amazonが開発したコンテナコマンドラインツールです。現状のサポートOSとしてMacOS/Windows/Linuxがあります。
https://runfinch.com/

Amazon Linux 2023でFinchを動かす

元々は違う検証のためにAmazon Linux 2023上でFinchを動かそうと思っていたのですが、意外とハマったので今回はこちらの備忘録を書いていきます。

MacOS/Windows用パッケージとLinux用パッケージの構造の違い

ここがうまく掴めずに苦労しました。
改めて考えると割と当たり前なのですが、何も考えずに使おうと思った際にハマったのでここの違いについてまとめます。

結論から言うと、MacOS/Windowsでは、Finchは各OSによってサポートされた仮想VM上で起動しますが、Linux上では直接サービスとして起動します。

MacOS/WindowsにおけるFinchのアーキテクチャは下記を参照ください。
https://runfinch.com/architecture/

Finchは、MacOSではLima VM、WindowsではWSL 2を前提として動きます。その仮想VM内においてcontainerdを起動し、操作することでFinchとして機能します。

Linuxの場合どうなるかというと、下記のAWSブログにおいてアーキテクチャが示されています。
https://aws.amazon.com/jp/blogs/opensource/announcing-finch-on-linux-for-container-development/
image.png

Linuxの場合は、FinchがLinux上のcontainerdを直接呼び出す形で機能します。
言い換えると、containerdサービスが起動していないとFinchが起動しません。
なので、Linuxで扱う場合は依存するサービスの起動設定を有効化しておく等の対応が必要です。

改めてですが、サポートOS毎に下記のような前提の違いがあります。

サポートOS 仮想VMの有無 起動に必要な設定
MacOS 仮想VMの起動
Windows WSL 2のセットアップ
仮想VMの起動
Linux containerdサービスの起動
finchサービスの起動

実際にセットアップしてみた

Linuxでのインストール方法については下記ドキュメント内で詳細が記載されています。
https://runfinch.com/docs/managing-finch/linux/installation/

基本的にはこのやり方通りなのですが、今回実行したコマンドを下記に載せておきます

dnf upgrade --releasever=2023.6.20241121 -y
dnf install -y runfinch-finch
systemctl start containerd
systemctl start finch
  • dnfパッケージは一応最新化しました
  • Amazon Linux 2023ではdnfパッケージとして公開されているため、こちらでインストールしました
  • containerdとfinchのsystemdサービスを起動しておきます

これで、Amazon Linux 2023上で動くようになりました。

SOCI snapshotter/ECR Credential Helperの設定

MacOS/Windowsの場合は、これらのツールが仮想VM内でプレインストールされているため、finch.yml内で定義すれば使える状態となっています。

Linuxの場合、これらツールについてはLinuxホストマシンにインストールした上で利用する形になります。

詳細は下記ドキュメント内にも記載されています。
https://runfinch.com/docs/managing-finch/linux/optional-components/

まとめ

Finchの原理を押さえておけば、Linux上でどのように動くのかはある程度予想はついたのですが、MacOSやWindowsでの使い方に慣れていると、ここの違いに少しハマりました。
MacOS/Windowsでは、1ツールとしての位置付けで捉えがちでしたが、Linuxで動かす場合には他サービスとの依存関係を意識する必要があり、少し戸惑いました。
ただ、改めてFinchの構造について意識することができ、勉強になったなーと思います。

2
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
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?