0
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 CLI v2 を apt で更新したかったので、APT リポジトリを Rust + Lambda で作った

0
Last updated at Posted at 2026-04-19

AWS CLI v2 は APT パッケージが公式に提供されておらず、インストールや更新は zip をダウンロードして install スクリプトを実行する独自手順になっています。「普段の apt install / apt upgrade で済ませたい」という動機から、AWS CLI v2 を配信する APT リポジトリを作って公開しました。

つくったもの

Ubuntu / Debian 系で、GPG 署名付きの一般的なパッケージと同じように apt install awscli-v2 でインストール・更新できます。

セットアップ(初回のみ)

curl -fsSL https://apt-awscli-v2.masanao.site/public.key \
  | sudo gpg --dearmor -o /usr/share/keyrings/apt-awscli-v2.gpg

echo "deb [signed-by=/usr/share/keyrings/apt-awscli-v2.gpg] \
  https://apt-awscli-v2.masanao.site stable main" \
  | sudo tee /etc/apt/sources.list.d/apt-awscli-v2.list

インストール・更新

sudo apt update
sudo apt install awscli-v2                # AWS CLI v2
sudo apt install session-manager-plugin   # Session Manager Plugin もインストール可能

# 更新は普段の apt upgrade に含まれる
sudo apt update && sudo apt upgrade

使う側のメリット

  • apt install / apt upgrade で完結
    • zip のダウンロード、解凍、install スクリプトの実行といった独自手順が不要
    • 他のパッケージとまとめて更新できる
  • 新バージョンに自動追従
    • リポジトリ側が 1 日 1 回(JST 朝、週 5 日)GitHub の最新リリースを確認し、新バージョンが出れば自動で deb を生成・配信
    • 利用者は何も気にする必要がない
  • amd64 / arm64 両対応
    • Intel / AMD はもちろん、Graviton などの arm64 インスタンスでも同じ手順で導入可能
  • Session Manager Plugin もインストール可能
    • AWS CLI と合わせて使うことが多い Session Manager Plugin も apt install session-manager-plugin でインストールできる
  • GPG 署名付き
    • 一般的な APT リポジトリと同様、GPG で署名を検証したうえでインストールされる

なぜ作ったか

AWS CLI v1 は pip install awscli でインストールできたのに対し、v2 からは公式が配布する zip を展開して install スクリプトを実行する方式に変わりました。公式ドキュメントどおりだと次のようになります。

# x86_64 の場合
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
# arm64 (Graviton など) の場合
# curl "https://awscli.amazonaws.com/awscli-exe-linux-aarch64.zip" -o "awscliv2.zip"

unzip awscliv2.zip
sudo ./aws/install --update

この公式手順には、次のような不満がありました。

  • 新バージョンが出ているかを自分で気にする必要がある
  • URL や手順を毎回覚えているとは限らず、そのつど公式ドキュメントを検索する必要がある
  • 他のパッケージは apt upgrade で済むのに、AWS CLI v2 だけ手順が異なる

つまり、普段のパッケージ管理フローに乗せたい —— というのが動機です。

アーキテクチャ概要

内部は AWS のサーバーレスサービスだけで組んでおり、アイドル時のコストはほぼゼロです。AWS 側の費用は個人利用であれば月額数セント程度に収まっています(このほかに独自ドメインの年間費用が別途かかります)。

  • EventBridge Scheduler が 1 日 1 回(JST 朝、週 5 日)Lambda を起動
  • Lambda が GitHub 上の aws/aws-cli リリースをチェックし、新バージョンがあれば deb パッケージを生成して S3 に同期
  • S3 の前段に Cloudflare CDN を置き、独自ドメインで配信

実装は Rust + Pulumi(TypeScript)で書いており、deb パッケージの生成や GPG 署名も Rust 側で完結させています。内部の作りに興味のある方は GitHub リポジトリ のソースコードをご参照ください。

アンインストール

合わなかった場合は、以下で元の状態に戻せます。

# パッケージの削除
sudo apt remove awscli-v2 session-manager-plugin

# APT リポジトリ設定と GPG 鍵の削除
sudo rm /etc/apt/sources.list.d/apt-awscli-v2.list
sudo rm /usr/share/keyrings/apt-awscli-v2.gpg

sudo apt update

まとめ

  • apt install awscli-v2 / apt upgrade だけで AWS CLI v2 の導入・更新が完結
  • 新バージョンは自動追従、amd64 / arm64 両対応、GPG 署名付き
  • AWS 側の運用コストは個人利用なら月額数セント程度(別途、独自ドメインの年間費用のみ)

同じように「AWS CLI v2 のインストール・更新を apt で済ませたい」と思っていた方の参考になれば嬉しいです。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?