この記事は、PIXTA Advent Calendar 2017 23日目の記事です。
こんにちは。インフラチームの菊池です。
早いものでピクスタに入社して1年が経ちました。面接の為に初めて訪れたピクスタ(旧オフィス)でフロアを間違えて面接官を待ち続けていたあの日が懐かしい今日この頃です。
さて、アドベントカレンダー23日目の今日はSSL証明書についてのお話です。
ピクスタではPIXTAやfotowa、コーポレートサイト等で複数のSSL証明書を使っていますが、ある証明書の更新を機に今年からACM(AWS Certificate Manager)を利用し始めました。
今回はその感想などを紹介させていただきます。
無料で使えるSSL証明書
と聞くとLet’s Encryptを思い出してしまいますが、ACMも無料のSSL証明書を提供しています。
ACMはそれ自体無料で利用できるサービスで、SSL証明書の管理機能を提供してくれます。課金されるのはあくまでアプリケーションの実行の為に利用する他のAWSリソースということになります。
ACMにはSSL証明書の発行機能があり、この機能を使って発行した証明書を無料で使うことができます。
とは言ってもさすがに証明書の利用にあたっては制約があり、ELB(Elastic Load Balancing)やCloudFront(Amazon CloudFront)等ACMと統合されたAWSサービスでしか利用できなくなっています。SSL証明書をサーバー上に置いて使うことはできないのです。
ピクスタではこの制約が問題にならない使い方をしている一部のSSL証明書をACMで発行した証明書に切り替え、SSL証明書の調達コストを削減することができました。
このACMが提供する証明書は有効期限は13か月、ワイルドカードにも対応しており、自動更新機能付きという便利ものです。(ただしワイルドカード証明書は自動更新不可)
AWSで運用している小規模サービスでコストを抑えたい場合などにはかなり有難い機能なのではないでしょうか。
無料の証明書以外に使い道はない?
前述の通り、ACMで作成した証明書はサーバー上に置いて利用することはできません。
ピクスタでは、サーバーに配置して利用している証明書もあり、それらについては引き続き外部購入した証明書を利用しています。
これらの証明書に関してはACMは特に必要ないように思えます。自分も今まではACMといえば無料の証明書という印象が強く、それ以外の機能についてはよく知りませんでした。
しかし今回導入してみて、場合によっては外部購入した証明書についてもACMを使うメリットがあることが分かりました。
外部の証明書にも対応する管理・デプロイ機能
先ほどサーバーに置いて使っているとお話した証明書は、実はELBにも登録して使っており、その数が十数個にのぼります。証明書の更新時には各ELBに新しい証明書を設定することになります。面倒ですね。何個目かで何かを間違えそうです。
ACMを使うことによりこの更新時の手間を削減することができます。
ACMの管理機能には証明書をインポートする機能があり、外部購入した証明書も登録・管理することができます。また、ELBなどACMと統合されたAWSサービスへのデプロイ機能も持っており、ACMで管理している証明書を各サービスへデプロイできます。
簡単に言うと、
- 外部購入した証明書をACMにインポート・登録し、
- その証明書をELBに設定しておけば、
- ACMに登録した証明書を更新すると
- ELB側の証明書も自動的に更新される
のです。
サーバーに配置する証明書については更新作業の手間は変わりませんが、ELB側の更新作業だけでもだいぶ楽になります。
ACM利用時の注意点
このように無料で使えて便利なACMですが、注意すべき点がありますのでいくつか以下に挙げておきます。
- ACMで作成した証明書の使用はACMに統合されたAWSサービスに限られます
ワイルドカード証明書の場合は自動更新ができない- 組織認証(OV)、拡張認証(EV)は未対応
- CloudFrontで使う場合はリージョンがバージニア北部になる
まとめ
以上、初めてACMを使ってみた感想でした。
ACMは一旦その概要や仕組みを理解すれば、かなり簡単・手軽に利用できる印象でした。
利用ケースがマッチすれば非常に有益なサービスではないかと思います。
この記事をご覧いただいてる皆さんのサービスの中にも、静的コンテンツを専用のドメインでCloudFrontから配信している、なんてケースがあるんじゃないでしょうか?
それはまさにACMの使いどころかもしれません。利用しているドメイン・SSL証明書を、一度棚卸ししてみてはいかがでしょうか。
追記
ワイルドカードの自動更新が不可と書いていましたが、誤りでした。失礼しました。
自動更新については本家サイトのドキュメントでご確認いただければと思います。
https://docs.aws.amazon.com/ja_jp/acm/latest/userguide/managed-renewal.html
* * * * *
ピクスタでは、能動的に改善に取り組んでサービスを良くしたいエンジニアを募集しています。