はじめに
今までAWS
でEC2
を使用するときにはAmazon Linux
しか使ったことが無かったのですが、仕事でRHEL
を使う可能性があったので、クラウドで使用する場合のサブスクリプション関連を調べてみると、あまり紹介されている記事が無かったり、色々と迷ったりしたので備忘録として残そうと思います。
RHELのサブスクリプションについて
オンプレミスのサーバを構築しているときにはよくRHEL
をインストールして使っていましたが、サブスクリプションを登録しないとyum
、dnf
によるパッケージインストールができないというRHEL
を使う上で面倒な作業の一つがあります。
AWS
で使用する場合も、インスタンスを作成してサブスクリプション登録が必要と思いきや、EC2
の利用料金にサブスクリプション代金も含まれていて、自前でサブスクリプション登録する必要がないパターンと、今まで通り自前で用意したサブスクリプションを適用するパターンがあるそうです。
Amazon Machine Image
(以下AMI
)ごとにサブスクリプションの登録有無や支払いが変わるので、以下よりAMI
ごとの違いをまとめていきます。
AMI種別ごとの一覧
詳細は後ほど紹介しますが、先にAMI
種別ごとの内容まとめを紹介。
AMI種別 | サポート | サブスク追跡 | Red Hat Satelliteでの使用 | AWSへの支払い |
---|---|---|---|---|
マーケットプレイスAMI | AWS | 不可 | 不可 | サブスクとインフラ代 |
Gold Image | RedHat | 可 | 可 | インフラ代のみ |
コミュニティAMI | AWS | 不可 | 不可 | サブスクとインフラ代 |
オンプレミスシステムから作成したカスタムAMI | RedHat | 可 | 可 | インフラ代のみ |
表の凡例
【AMI種別】
AMIの種別
【サポート】
RHEL
関連の問い合わせを行うときの問い合わせ先はどこか
【サブスク追跡】
Red Hat カスタマーポータルからサブスクリプションの追跡/表示/移動が可能か
【Red Hat Satelliteでの使用】
Red Hat Satelliteで使用が可能か
【AWSへの支払い】
AWSのインフラ代のみ支払うのかサブスクリプションライセンスの代金もAWSに支払うのか
マーケットプレイスAMIとコミュニティAMI
AWS
でRHEL
のイメージを使用する場合、AMI
を使ってEC2
を起動して使うことになりますが、AWS
提供のイメージを使うのか、自前のイメージを使うのか等で種別が異なります。
EC2
ダッシュボードにあるAMIカタログを見ると、各種ベンダが自社アプリケーション等導入済みのAMIを提供しているマーケットプレイスAMIと、ユーザが提供しているコミュニティAMIがあります。
Red Hat
も所有者ID「309956199498」で各RHEL
のイメージを公開しているため、Red Hat
のイメージを使う場合は所有者ID「309956199498」で検索すると良いでしょう。
AWS提供AMIのサポートと費用
OSに問題が発生したときの問い合わせはAWS
を介してRed Hat
に問い合わせる流れとなるため、直接Red Hat
に問い合わせができない分、場合によっては解決に時間がかかる場合もあるかもしれません。
別途Red Hat
と直接契約を行っていたりする場合は直接Red Hat
に問い合わせても問題ありません。
また、費用についてはサブスクリプションのライセンス料を含めAWS
の利用料に上乗せされる形となるため、わざわざRed Hat
のアカウントを作成したりする必要はありません。
個別ライセンスを付与した場合
マーケットプレイスAMIとコミュニティAMIは上述の通り、サブスクリプションライセンス費用もEC2
の使用料に入っている方式となりますが、当てようと思えば自前で持っているサブスクリプションライセンスを付与することもできます。
自前のサブスクリプションライセンスを使えばRed Hat Customer Portal
画面からサブスクリプションを管理することもできますが、AWS
で提供しているAMI
はライセンス費用込みとなっているので、AWSとRed Hatで二重請求となってしまいます。
自前のサブスクリプションを持ち込む場合、Gold Image
を利用することで持ち込めるので、後ほど説明します。
Red Hat Satelliteでの管理
Red Hat Satellite
というサーバ管理ツールに登録することでデプロイや設定等一元管理することができますが、こちらもマーケットプレイスAMIとコミュニティAMIのRHEL
を登録すると二重請求となってしまうので、利用したい場合はGold Image
を利用するようにしましょう。
Red Hat Gold Image
Gold Image
というと、ミドルウェアや設定などを事前に行ったマシンイメージをテンプレートとして使用するゴールデンイメージが思い浮かぶ方が多いかと思いますが、今回のGold Image
とは、サブスクリプションライセンスを自前で割り当てる必要があるRHEL
のイメージをAWS
やGCP
等のクラウド基盤にRed Hat
から共有することで、ユーザ側で自前のサブスクリプションライセンスを使って管理するサービスとなります。
前述のように、デフォルトでAWS
が提供しているRHEL
のAMI
はライセンス込みのイメージとなるため、自前のサブスクリプションを使用する場合にはこちらの設定が必要となります。
Red Hat提供AMIのサポートと費用
自前のサブスクリプションを使用することになるので、サポートはRed Hat
と直接やり取りする形となります。
Gold Image
で共有されるAMI
を使用すればサブスクリプションの費用はかからないので、EC2
のインフラ費用のみAWS
に支払うこととなります。
RHELのAMIの名前について
Red Hat
がAWS
に提供しているAMI
イメージの名前は命名規則で決められており、以下のような命名規則となっております。
-
初回リリース時の名前
[Red Hat Product]-[Version]-[Virtualization Type]_[Red Hat Release Type]-[Release Date]-[Minor Version Release AMI Iteration]-[Subscription Model]-[EBS Volume Type] -
初回リリース後の名前
[Red Hat Product]-[Version]-[Virtualization Type]-[Release Date]-[Minor Version Release AMI Iteration]-[Subscription Model]-[EBS Volume Type]
上記の命名規則のうち、サブスクリプション的に重要なのは、「Subscription Model」で、「Hourly2」と「Access2」があります。
「Hourly2」の場合、時間課金の費用に含まれているタイプのAMI
となり、AWS
で管理されているマーケットプレイスAMIとコミュニティAMIがこちらにあたります。
- Hourly2の例
RHEL-9.3.0_HVM-20240117-x86_64-49-Hourly2-GP3
「Access2」の場合、サブスクリプションを自前で用意するタイプのAMI
となり、Gold Image
でRed Hat
から共有されるAMI
はこちらになります。
- Access2の例
RHEL-9.3.0_HVM-20240117-x86_64-49-Access2-GP3
詳しくは以下公式ドキュメントを参照ください。
Gold Imageの使用方法
ここからは実際にGold Image
を使うための設定をしていきたいと思います。
Gold Image
を使用するにはRed Hat
の「Red Hat Customer Portal」から操作する必要があるため、あらかじめRed Hat
のアカウントを作成しておいてください。
Gold Image
はRed Hat Cloud Access
の無料特典として利用できるそうなので、以下より設定を行い、AWS
で使えるようにしていきます。
Red Hat Cloud Accessからのプロバイダ有効化
Red Hat Customer Portal
画面の「クラウドアクセス」タブから「新しいプロバイダーの有効化」を選択します。
サービスプロバイダ選択で「AWS」を選択し、「手動でのaccountsの追加」を選択してください。
「2. AWS Account の追加」で、Gold Image
を表示させたいAWSアカウントIDとニックネーム、割り当てるサブスクリプションのエンタイトルメント数を入力します。
ニックネームはRed Hat Cloud Access
に表示される際の識別名というだけなので、任意の名前で問題ありません。
有効化して、以下のように表示されれば完了です。
AWSからのGold Image確認
AWS
にログインして、「EC2ダッシュボード」→「AMI」に移動します。
Gold Image
共有設定を行う前は、画面左上のイメージ種別選択で「プライベートイメージ」を選択しても以下のように何も表示されません。
Gold Image
共有の設定を行うと、「プライベートイメージ」を選択すると、以下のようにRed Hat
のアカウントから共有されたAMI
イメージが表示されるので、表示されていればOKです。
ちなみに、共有されているAMI
の名前を見ると、すべて所有者IDが309956199498
でAMI
名のサブスクリプションタイプがAccess2
の名前となっていることが確認できます。
Gold ImageからのEC2インスタンスの作成
Gold Image
でRHEL
のイメージが共有されたので、共有されているAMI
からEC2
インスタンスを作成していきます。
作成方法は通常のEC2
インスタンスを作成する場合と変わらないので、使用するAMI
を選択して、「AMIからインスタンスを起動」で作成していきます。
作成時、念の為Access2
のイメージが選択されていることは確認しましょう。
作成したインスタンスへのログイン
RHEL
のイメージにはSSMエージェントは導入されておらず、セッションマネージャで接続はできないので、SSH
で接続できるようにネットワークやセキュリティグループの設定を行い、SSH
等で接続してください。
なお、デフォルトでec2-user
は作成されているため、ログインする際にはec2-user
でログインします。
サブスクリプションの登録
作成したEC2
インスタンスにサブスクリプションを適用していきます。
手順の詳細は以下を参照してください。
今回はインターネットに接続されているEC2
インスタンスで作業を行っていきます。
以下register
コマンドでRed Hat Customer Portal
にログインするときのユーザ名、パスワードを入力して実行します。
subscription-manager register --username='[ユーザ名]' --password='[パスワード]'
成功すると以下のような実行結果が表示されます。
Registering to: subscription.rhsm.redhat.com:443/subscription
The system has been registered with ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
The registered system name is: ip-10-1-0-151.ap-northeast-1.compute.internal
Red Hat Customer Portal
画面の「システム」から見ると、作成したEC2
インスタンスが登録されていることが確認できますが、この状態ではまだサブスクリプションが当たっていない状態となります。
サブスクリプションをアタッチするにはアタッチするサブスクリプションのプールIDが必要となるので、subscription-manager list --available
コマンドで確認します。
今回はRed Hat Developer Subscription for Individuals
というサブスクリプションを使用するので、表示されるPool ID
を控えます。
+-------------------------------------------+
Available Subscriptions
+-------------------------------------------+
---省略---
Subscription Name: Red Hat Developer Subscription for Individuals
Provides: Red Hat Enterprise Linux Fast Datapath
Red Hat Build of Quarkus
Red Hat OpenShift Enterprise JBoss EAP add-on Beta
---省略---
Support
Red Hat CoreOS
Red Hat CodeReady Linux Builder for x86_64
Red Hat Enterprise Linux High Performance Networking (for RHEL Compute Node)
---省略---
SKU: RH00798
Contract:
Pool ID: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Provides Management: No
Available: 15
Suggested: 1
Service Type:
Roles: RHEL Server
RHEl Workstation
Service Level: Self-Support
Usage: Development/Test
Add-ons:
Subscription Type: Standard
Starts: 02/09/2024
Ends: 02/08/2025
Entitlement Type: Physical
以下コマンドでサブスクリプションをアタッチします。
subscription-manager attach --pool=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
正常にアタッチできれば、先ほど赤かったインスタンス名が緑色に変わります。
おわりに
クラウド環境でRHEL
等のイメージを使用したことがなかったので実際にやってみることで、クラウド環境で使うときのイメージが大分わかりました。
クラウドのライセンス関連は特に気をつけないとライセンス違反や二重請求等にもつながるため、要点をしっかり抑えたうえで導入する必要があると感じました。