1. 主要ページへ移動
  2. メニューへ移動
  3. ページ下へ移動

QES ブログ

記事公開日

新入社員がAWS CDKに触れてみた!

  • このエントリーをはてなブックマークに追加

初めまして!DXソリューション営業本部の菊池です。
4月に入社後、3ヶ月のIT基礎研修を行い、7月からAWSグループへ配属となりました。
今回はAWS初心者である私が、Immersion Day ワークショップを通じて理解した、CDKのメリットや触れて感じた点を紹介します。
AWS CDK(Amazon Web Service Cloud Development Kit)とは、AWSに特化したオープンソースのIaCツールのことです。
※今回実施したワークショップ
AWS CDK Immersion Day ワークショップ

IaCとは?

IaC(Infrastructure as Code)の略称で、インフラストラクチャの構築や管理をコードで記述し、自動化する手法のことです。
IaC化に利用されるツールは、Terraform・puppet・Amazon CloudFormation(CFn)・AWS CDK等が挙げられます。
これらは、コードでインフラストラクチャを構築・管理する点は同じですが、それぞれ対応言語や対応クラウドが異なります。

  Terraform puppet CFn CDK
対応言語・形式 HCL DSL JSON YAML
TypeScript
Python
Java等
対応クラウド Azure GCP AWS等 Azure GCP AWS等 AWS AWS

上記表のように、IaCツールには幅広い対応クラウドを実現しているツールもありますが、AWSのみにフォーカスして構築作業を行いたい場合は、
AWSがサービスを提供しているCFn・CDKを使用することで他のAWSサービスとの連携が容易になります。

CFnとCDKの関係性

CDKは、CFnの設定ファイルを効率的に記述するツールであり、密接な関係にあります。
下図はCDKを用いたインフラ構築の流れを表しています。この図の通り、CDKで記述したPythonやJava形式のファイルは、デプロイする段階でCFnで使用可能なテンプレート(JSON, YAML)に変換されます。その後、CFnは変換されたテンプレートをもとにインフラの構築を行います。

CDKを用いた構築の流れ

CDKの特徴

CDKが効率的にCFnファイルを記述可能な理由には、対応言語と再利用性の2つの利点が挙げられます。

・対応言語
CDKは、PythonやJava等のアプリケーション開発によく用いられる言語に対応しています。
それにより、CFnと比べ利用者の多い言語でインフラを定義できます。

・再利用性
CDKでは、コンストラクトという1つ以上のリソースを部品化することができます。
コンストラクトは、PythonやJavaで定義するクラスの役割を果たし、他の場所で呼び出すことによって1つのコンストラクトを複数の場所で使い回すことができます。
これにより、コードの記述量を減らすことができ、作業効率を向上させることができます。

上記2点によってCDKを使用すると効率的にAWS環境を構築できます。

CDKに触れて感じたこと

今回のワークショップでは、下記の内容を実施しました。
使用言語は、学生時代Pythonに触れる機会があったため、他言語より知識があるPythonとしました。

・CDKプロジェクトの作成とデプロイ
・コンストラクトとアプリケーション作成とデプロイ
・パイプラインの作成とデプロイ
・アプリケーションとパイプラインのテスト

これらを通じて、私はCDKの使いやすさに驚きました。
ワークショップの説明がわかりやすいのもありましたが、Pythonさえ理解できていれば、ある程度の構築はできるように感じました。
一方で、権限周りの設定には気を付けなければならないと感じました。
CDKでアクセス権限を付与するコードを記述したファイルをデプロイしようとすると、IAMポリシーをアタッチしてよいかの確認が求められます。ここがとても重要で、確認を怠ってしまうとセキュアなインフラを構築できなくなってしまいます。
この体験から、CDKは使いやすく簡単に慣れ親しんだ言語でインフラを構築できますが、しっかりとAWSの基礎知識を身に着けてから使用することが重要だと感じました。

業務への活用

CDKは、インフラ構築の業務効率化に貢献できると感じました。
なぜならば、CDKを用いてインフラ構築用のテンプレートを数パターン用意しておくことで、1から構築を行う必要がなくなり、細かなリソースの追加や設定の変更を行うだけで構築を完了させられると考えたためです。
また、CDKを使用して構築をこなし、様々な条件に対応したテンプレートを残すことで、繰り返しの作業が必要なくなり、効率化が適応される幅も広がっていくと思います。

まとめ

本記事では、AWS CDKについてとImmersion Day ワークショップでCDKに触れて感じた点をご紹介しました。CDKを使用することにより、慣れ親しんだ言語で効率的にAWS環境のインフラ構築を行うことができます。作成したテンプレートを保持することで、1から構築業務を行う必要がなくなり、効率化につながることが期待されます。

もし「このサービスについて知りたい」「AWS環境の構築、移行」などのリクエストがございましたら、弊社お問合せフォームまでお気軽にご連絡ください。 のちほど当ブログにてご紹介させていただくか、複雑な内容に関するお問い合わせの内容の場合には直接営業からご連絡を差し上げます。 また、よろしければ以下のリンクもご覧ください!
<QES関連ソリューション/ブログ>

<QESが参画しているAWSのセキュリティ推進コンソーシアムがホワイトペーパーを公開しました>

※Amazon Web Services、”Powered by Amazon Web Services”ロゴ、およびブログで使用されるその他のAWS商標は、米国その他の諸国における、Amazon.com, Inc.またはその関連会社の商標です。

  • このエントリーをはてなブックマークに追加

お問い合わせ

Contact

ご質問やご相談、サービスに関する詳細など、何でもお気軽にご連絡ください。下記のお問い合わせフォームよりお気軽に送信ください。

お問い合わせ

資料ダウンロード

Download

当社のサービスに関する詳細情報を掲載した資料を、下記のページよりダウンロードいただけます。より深く理解していただける内容となっております。ぜひご活用ください。

資料ダウンロード