Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AWS CloudShellを活用して簡単に!TerraFormによる AWSリソース構築(I...

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

AWS CloudShellを活用して簡単に!TerraFormによる AWSリソース構築(IaC)を体験しよう

IaC
Terraform
AWS CloudShell
Handson

More Decks by キャリアチェンジAWSエンジニア

Other Decks in Technology

Transcript

  1. 2 IaC (Infrastructure as Code)とは?Terraformとは? インフラを手動で管理・デプロイするのではなく、 「コード」で定義・管理する手法 以下のプログラミング言語 を使用可能 ・TypeScript

    ・JavaScript ・Python ・Java ・C# ・Go AWS CDK (AWS Cloud Development Kit) ・AWS・Azure・GCPなど 1000以上のクラウドプロバイ ダで使用可能 ・言語はHCL(HashiCorp Configuration Language) ・可読性高い(人間にとって 読みやすい) ・JSONに近い Terraform 等 AWS CloudFormation (Cfn) ・AWSリソースをコードで 定義・管理できるIaC ・データ記述言語はYAML またはJSON
  2. 3 AWS ClouldShellを使うメリット AWSユーザーがブラウザ上で簡単にコマンドライン作業を行えるサービス AWS ClouldShellとは ローカル環境用意、が不要! ▪詳細仕様 ・OS: Amazon

    Linux 2023 ・ストレージ: 追加料金なしで、リージョン毎に最大 1 GB (もちろんClouldShellから作成したAWSリソースには通常通り課金されるので、試行後作 成したAWSリソースは削除必要) ・AWS CLIをCloudShellから起動できる ・広範な開発ツールがプリインストール済み:node.js、npm (・VPC内でも起動可能(1リージョン同時に最大2個まで)) ・AWS CloudShellの環境は「IAMユーザー単位 + IAMロール単位 + スイッチロール元のIAM ユーザー単位」で分離されている=他のユーザと同じ画面が見える訳ではない(private to you)
  3. 4 ClouldShell 注意点 ▪注意点 ・20~30分の非アクティブ状態が続くとセッションがタイムアウト ・キーボードまたはポインタを使用して 20~30 分間操作しないとシェルセッションは終了 ・実行中のプロセスは、操作数としてカウントされない →タイムアウト後は、再接続(少し時間かかる)すると、タイムアウト前と同じ作業が可能

    (CloudShellの仕組み:一時的な計算環境を使い、接続時にホームディレクトリに 保存されたデータを復元する) ・データは、最後のセッションの終了から 120 日間アクションしないと削除されるの で注意! ・月間使用量制限がある (制限目安:複数名で毎日終日作業していると月末に使用不可。200時間との情報も。) →使用制限で使えなくなったら、試行であれば、他のリージョンで使用すればよい (制限引上申請も可能だが課金される) ClouldShellでCDK体験 詳細手順
  4. 5 作業内容概要 wget https://xxxxx sudo unzip xxxxx terraform init AWS

    ClouldShellを立上 Terraformをインストール Terraformを初期化 vi main.tf main.tfファイルを作成し viエディタで編集 1 2 3 terraform apply terraform applyを実行し、 main.tfファイルに記述した AWSリソースを作成 4 参考元:https://qiita.com/free-honda/items/19b4e7db8b8f24d41277
  5. 4)main.tfファイルを作成し、S3バケットを作成する記述を、言語 HCLで記述する ファイル編集後にESCキーを押し、:wqで保存して終了する 11 ❸詳細手順 vi main.tf Provider “aws” {

    region = "ap-northeast-1" } resource "aws_s3_bucket" "example" { bucket = “xxx-cloudshell-terraform-demo-yourname" aws_s3_bucket_acl = "private" tags = { Name = "ExampleBucket" Environment = "Demo" } } S3バケット名は世界中で一意 でないといけないので、 末尾に自分特有の名前を付与 してください 青色枠内:作業手順
  6. ~ $ pwd/home/cloudshell-user ~ $ ~ $ ll total 12

    -rw-r--r--. 1 cloudshell-user cloudshell-user 226 Xxx XX XX:XX main.tf -rw-r--r--. 1 cloudshell-user cloudshell-user 3171 Xxx XX XX:XX terraform.tfstate -rw-r--r--. 1 cloudshell-user cloudshell-user 181 Xxx XX XX:XX terraform.tfstate.backup ~ $ ~ $ rm main.tf ~ $ ~ $ rm terraform.tfstate ~ $ ~ $ rm terraform.tfstate.backup ~ $ ~ $ ll total 0 20 詳細手順 2)CloudShell上に作成保存した/生成されたファイルを削除 青色枠内:作業手順