はじめに
今まで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等のイメージを使用したことがなかったので実際にやってみることで、クラウド環境で使うときのイメージが大分わかりました。
クラウドのライセンス関連は特に気をつけないとライセンス違反や二重請求等にもつながるため、要点をしっかり抑えたうえで導入する必要があると感じました。







