初めまして、GMOアドマーケティング インフラ開発部のhakumaiです。
今年1月にHRTech系企業からGMOアドマーケティングに転職してきました。
現職では、女子向けメディア「めるも」のインフラ業務に携わり、日々業務に励んでおります。
今回は、私が転職してみて感じたインフラ技術のギャップの一部についてお話しいたします。
前職でのインフラ環境・経験について
前職のHRTech企業で触っていたインフラ環境は、ほぼAWSでした。
インフラの保守運用業務に加え、新規プロダクトのインフラアーキテクチャ設計構築を経験したこともあり、
VPCやEC2・RDS・S3・ECSなど基本的なAWSのサービスについての知識はある状態でした。
ちなみに、AWSのソリューションアーキテクトアソシエイトも取得済みです。
また、GCPは全くの未経験でした。
アドマのインフラ環境について
一部オンプレもありますが、環境の移行もありメインとなっているのはGCPです。
GCPの各サービスの概要や設定内容などについてはだいたい同じではありますが、
AWSといくつか考え方が違ったところがあったので紹介いたします。
AWSとGCPで違うところ
VPC/Subnetの考え方
AWSでは、複数アベイラビリティーゾーン(AZ)を含む1つのリージョンに使用するIPアドレス範囲(CIDR)を決めてVPCを作成。
SubnetはVPCのCIDR範囲内でCIDRを決め、1つのAZに対して作成。
GCPでは、複数リージョンをまたぐVPCを作成することが可能だが(グローバルリソース)、CIDRという概念はない。
その代わりにSubnetはCIDRを指定し1つのリージョンに対して作成することができる。(リージョンリソースという)
このように、GCPではリージョン間のピアリング設定が不要となるので、世界中からアクセスされるシステムに最適だと思われる。
ファイアウォールの考え方
AWSでは、SecurityGroup(SG)を使ってインバウンドとアウトバウンドを1セットとして作成。作成したSGをVPC内の各リソースごと(LB, EC2など)に紐づけ設定を適用できる。
GCPでは、Firewallを使ってインバウンドとアウトバウンドのルールセットにそれぞれタグをつけて設定。GCEインスタンスなどにもタグを設定し、同じタグ名を持ったインバウンド設定もしくはアウトバウンド設定が適用される。
またGCPのFirewallでは、各ルールセットに優先度を設定し、複数ルールがあった場合にルールが適用される優先順位も設定することができる。
この考え方の違いには、慣れるまでに少し時間がかかりました。
LB(負荷分散装置)の考え方
AWSでは、VPC内のサービスであり、インターネット向けのLBの場合はPublicなサブネットに配置しVPC内のリソースに負荷分散を行う形が一般的。また、インターネット向けのLBには、パブリックDNS名が割り当てられる。
GCPでは、複数のリージョンにまたがり負荷分散することができる。また、LBのフロントエンドとして単一のIPアドレスが割り当てられる。
その他
EC2ではキーペアをコンソールから設定したり手動でインスタンス内に配置しないとec2-userでSSHログインできなかったりするのですが、GCEインスタンスだとgcloudコマンドを使ってGCPコンソールのログインアカウントでインスタンスにもSSHログインできてしまったり。
EC2インスタンスの起動時間がスペックが上がるにつれ長くなるのに対し、GCEインスタンスでは起動時間が短かったり。
など、細かいところも割と違っていました。
おわりに
一部ではありますが、今回は主にネットワーク部分についての差分について紹介しました。
AWSでやっていた知識が全て役に立たないというわけでなく、
AWSを触って得た知見がGCPを学ぶ軸となってくれたため、想像していたよりもスムーズにGCPのインプットはできています。
GCPを触り始めてまだ半年足らずですが、次回以降でも新たな差分を発見できたら紹介していきたいと思っています。
GMOアドマーケティングのインフラエンジニア。(♀)
クラウドインフラのアーキテクチャ設計が得意です。
アプリ開発もできます。
白米と服とおいしいものとFPSと技術が好きです。