AWS関連のことを調べてみた2022年01月15日

AWS関連のことを調べてみた2022年01月15日

Jenkinsの罠 !? 知っておくべきJenkinsの知識

# はじめに
EC2にJekinsをインストールし、jenkinsのジョブを作成して実行するぞ! と意気込んでいたときのことです。

jenkinsのジョブの実行に失敗してしまいました。

私自身、jenkinsについてとても勉強になった出来事だったので、知っておくべきjenkinsの知識として残します。

# 事前準備
Jenkins用のEC2インスタンスを作成します。今回は、**Amazon Linux 2**で作成します。

EC2(Amazon Linux2)にJekinsをインストールする方法については以下記事を参考にしました。

https://qiita.com/tamorieeeen/items/15d90adeebbf8b408c78

今回、jenkinsで定型化するものは以下のようなジョブです。
・ EC2インスタンス起動・停止
・ 検証環境、staging、本番環境でのEC2インスタンスへのデプロイ
・ elasticsearchの全文検索インポート など

そのため、jenkinsからEC2への操作を可能にするためのポリシーをアタッチします。

`EC2Fu

元記事を表示

Kubernetes on Amazon EC2 リソース作成編 ~新人がやってみた(2)~

このシリーズは、入社1年目の新人がEC2上にKubernetes環境構築を色々試行錯誤してやってみて、上手くいった手順をまとめたものです。

#はじめに
前の記事では、Amazon EC2上にKubernetesクラスターを構築しました。
Kubernetesをデプロイするだけでは意味がないので、今回はKubernetesクラスターに色んなリソースを作成してみます。

[Kubernetes on Amazon EC2 環境構築編 ~新人がやってみた(1)~](https://qiita.com/risaya/private/0cb8c59d57855c098b0c)の続きになります。
この記事の前後の記事は以下です。

– [Kubernetes on Amazon EC2 環境構築編](https://qiita.com/risaya/items/0cb8c59d57855c098b0c)
– Kubernetes on Amazon EC2 リソース作成編 (本記事)
– [Kubernetes on Amazon EC2 運用監視編(今後公開予定)]()

※この記事は手順に焦

元記事を表示

CNAMEレコードとTXTレコードは共存できないので、ALIAS レコードを使う

# はじめに

DNS の CNAME レコードは、他のレコードと同じ値を使った共存が出来ません。RFC で定義されている、DNS の中のルールになっています。

https://www.ietf.org/rfc/rfc1912.txt

> A CNAME record is not allowed to coexist with any other data.

TXT レコードやAレコードなど、種類問わずすべてのレコードと共存することが出来ません。

ELB を使って Web サービスをインターネットに公開する際に、CNAME レコードを使って公開する方法がありますが、上記の制限が問題になる場合があります。具体例を挙げましょう

– `orenoservice.co.jp` という名前でとあるWebサービスを公開している
– この名前は CNAME レコードとして、ELB を指している
– なんらかの事情で、`orenoservice.co.jp` の値を使って TXT レコードを作りたい (Google Search Console などのサービスを利用する際に、TXT

元記事を表示

Laravel Docker AWS EC2デプロイ⑥

今回は、AWSのサービスを使用してSSLを無料発行し、前回独自で用意したドメインをSSL化していきます!

##前回

https://qiita.com/yyy752/items/b9d7674fc349f669e801

https://qiita.com/yyy752/items/601646d3683869521f9b

https://qiita.com/yyy752/items/9cec9c44e8a389cb9c18

https://qiita.com/yyy752/items/ce4d38a21b0a01b2be2e

https://qiita.com/yyy752/items/0141d150d72a9a185e3f

##SSL証明書取得
下記の記事を参考に進めていきますが、現在のAWS画面とは少し異なるので、その部分に関してはこちらに画像を記載しますので参考にしてください。

https://oji-cloud.net/2019/09/15/post-3017/

・`Certificate Manager`の開き方。
1.`Certificate Manag

元記事を表示

AWS SAMで管理するAWS Lambda関数を、単一のAWSアカウント内の複数環境にデプロイする

# Whats’?

AWS SAMで管理するAWS Lambda関数を、単一AWSアカウント内の複数回(別環境として)デプロイするのにはどうすればよいのかな?ということで、試してみました。

# AWS CloudFormationと複数環境

AWS SAMは、AWS CloudFormationの拡張です。

> AWS SAM は AWS CloudFormation の拡張であるため、AWS CloudFormation の信頼性の高いデプロイ機能を利用できます。

https://docs.aws.amazon.com/ja_jp/serverless-application-model/latest/developerguide/what-is-sam.html

このため、AWS SAMで管理している内容を複数の環境に適用するには、AWS CloudFormationの考え方に従うのが妥当でしょう。

AWS CloudFormationのドキュメントによると、テンプレートを複数環境向けに利用するには、パラメーターやマッピング、条件セクションで環境間の差異を吸収してい

元記事を表示

Cloud9環境構築

# 認証情報の設定(Cloud9→AWSへの接続設定)

Cloud9を検索し、「Cloud9」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2432928/df50d0c4-2504-7502-199e-efff1e0d3545.png)

Cloud9のTOP画面へ遷移し、「Create enviroment」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2432928/be7be016-d0bc-301d-38c5-b3ebcdf3b340.png)

Name(必須)、Description(任意)を入力し、「Next step」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2432928/334d3c8d-1352-457e-ce27-c6c7

元記事を表示

Terraformチュートリアル

# この記事について
TerraformでAWSのインフラ環境を構築する手順を、チュートリアル形式でまとめてみました。

## STEP1:AWSアカウント登録
まずはAWSアカウントを作成するところから始めましょう。

https://qiita.com/tk_tatsuro/items/646fa44d67954d22e54e

## STEP2:Cloud9環境構築
AWSのクラウド環境(Cloud9)を使用して、Terraformを実装・実行します。
Cloud9環境の環境を構築し、セットアップをしていきましょう。
Cloud9環境自体の利用は無料であり、すべての作業をクラウド上で行える点がメリットです。
TerraformやPythonがデフォルトでインストールされており(バージョンアップは別途必要)、インストール等のセットアップをせずに作業を開始することができます。

https://qiita.com/tk_tatsuro/items/3eab2f17b92ded881642

## STEP3:Terraformとは
Terraformの概要についてまとめました。
![

元記事を表示

アーキテクチャ

# アーキテクチャについて
今回は下記のアーキテクチャを構築していきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2432928/f5a20c9b-516a-e231-db88-a9c6cf995f75.png)
aws.drawio

各構成の詳しい解説は下記しています。
①ETL・パイプライン(+モニタリング):DataLake → Glue Workflow → Data Ware House → Moniterting

https://qiita.com/tk_tatsuro/items/cb02417c89b053b4aa06

②イベントソース・パイプライン:DataLake → Glue Workflow → Event Source

https://qiita.com/tk_tatsuro/items/20bc847d848bbb402860

## 索引ページ
下記でTerraformに関するテーマをまとめて紹介しています。

https://qiita.c

元記事を表示

ディレクトリ構造

# ディレクトリ構造について

“`
terraform
 └main.tf
 └terraform.tfvars
 └variables.tf
 └modules/
 |└s3/
 ||└s3.tf
 ||└variables.tf
 ||└output.tf
 |└glue/
 ||└glue.tf
 ||└variables.tf
 ||└output.tf
 |└athena/
 ||└athena.tf
 ||└variables.tf
 ||└output.tf
 |└redshift/
 ||└redshift.tf
 ||└variables.tf
 ||└output.tf
 |└sfn/
 ||└sfn.tf
 ||└variables.tf
 ||└output.tf
 └src/
 |└job/
 |└query/
 |└function/
 └data/
“`

# 各ファイルの概要
## s3.tf
(S3の)モジュール・ファイル
 ※S3の構成をまとめ、モジュールとして定義するファイル

## main.tf
モジュールを呼び出し、変数の受け渡しを行う

元記事を表示

Terraformのセットアップ(Cloud9)

# Terraformのインストール、およびバージョン確認

Cloud9環境は、デフォルトでTerraformがインストールされています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2432928/61a807a8-6a44-ce22-88ee-b3699181d00b.png)

# terraform.tfstate(リソースの管理ファイル)の管理
terraform.tfstateファイルとは、Terraformの実行に伴って構築されるAWSのインフラ状態を逐次記録しておくためのファイルです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2432928/ac9b8bb7-2726-6fc6-9aec-9ca9d0788510.png)

terraformコマンドを実行すると自動でローカル環境(Cloud9環境)作成されます。
チームで開発を進める場合、ローカルに保存され

元記事を表示

AWSアカウント登録

# AWSアカウント登録
必要事項を入力していきましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2432928/d392e31a-5670-929c-8b29-d5b9f36bf688.png)![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2432928/eae630fd-381e-9c43-d282-39ea6efbb878.png)

個人情報を入力していきましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2432928/1d3af971-6edc-812d-a601-45b8505aaf67.png)

クレジットカード情報の入力が必要です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazo

元記事を表示

AWS EC2 スポットブロックは廃止されていた?

AWSで下記のような性質のバッチ処理を実行する必要が発生した。

– 1~2時間の処理時間。
– 処理が中断されると、それまでの処理結果は破棄して再実行となる。

「そういえばスポットブロックという機能(スポットリクエストで、指定した時間はインスタンス確保が約束される機能)があったなー」と思い、試してみようと思ったのだが使い方がわからない。

調べていると以下の記載にたどり着いた。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/199673/31889f19-9162-b242-c06b-9bc3dfaa19ff.png)
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/spot-requests.html#fixed-duration-spot-instances

つまり、スポットブロックはもう使えないらしい。
“スポットブロック 廃止”等とググってみても情報はヒットせず、ひっそりと終了していたようだ。残念。

元記事を表示

CloudWatchlogsからNewRelic経由でPDへ起票する

#はじめに
CloudWatchlogsに特定の文字列が出力された時にNewRelicを経由してPagerdutyへ起票する流れを試した時の記録です。
誰かの参考になれば幸いです。

##完成イメージ
![pdnr.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/435702/0e8d106f-b152-04e8-05f8-5f8df0c512ee.png)

##前提条件
・Terraform v0.13.5
・PagerdutyのService等は作成済であること
・NRとPDのインテグレーションは設定済であること
・対象のCloudWatchlogsが作成されていること

##Terraform
ディレクトリ構成は以下

“`
root@:~/-newrelic# tree .
.
├── backend.tf
├── condition-log.tf
├── notification.tf
├── policy.tf
├── provider.tf
└── variables.

元記事を表示

Lambdaでrds自動起動停止

#自動起動
#iam role作成
AWSコンソールへログイン
https://console.aws.amazon.com/iamv2
左ペインロール押下
ロールを作成押下
一般的なユースケース:lambda
ポリシー:AmazonRDSFullAccess
ロール名:control-rds
作成

#lambda関数作成
https://console.aws.amazon.com/lambda
関数の作成押下
関数名:start-rds
ランタイム:python3.9
デフォルトの実行ロールの変更
既存のロールを使用する:control-rds
関数の作成
以下コード入れる

“`
import boto3

rds = boto3.client(‘rds’)

def get_tags_for_db(db):
“””
get instance list
“””
instance_arn = db[‘DBInstanceArn’]
instance_tags = rds.list_tags_for_resource(ResourceNam

元記事を表示

Serverless Framework × TypeScript のローカル開発環境構築メモ(Serverless Offline編)

[Serverless Framework](https://www.serverless.com/)とは、サーバーレスアーキテクチャでAPIを作る際に面倒なインフラ構築をコマンド一発でやってくれる優れもののフレームワークです!今回はこのServerless Frameworkをローカルで動かせるプラグイン[Serverless Offine](https://www.npmjs.com/package/serverless-offline)を使ってローカル開発できるようにしていきましょう。

#Severless Frameworkの環境構築
まず、serverless frameworkをインストールし、typescriptテンプレートを使ってビルドします。詳しくは[リンク先](https://www.serverless.com/)を参照ください。

““
$ npm install -g serverless
$ serverless create –template aws-nodejs-typescript –path api
““
この時のディレクトリ構成は次

元記事を表示

AWS CDKでconstructor内のthisでなぜかエラーが出る

結構ハマった部分なので共有。

# 状況
cdkの環境を作るところから。

“`
❯ cdk init –language typescript
Applying project template app for typescript
# Welcome to your CDK TypeScript project!

This is a blank project for TypeScript development with CDK.

The `cdk.json` file tells the CDK Toolkit how to execute your app.

## Useful commands

* `npm run build` compile typescript to js
* `npm run watch` watch for changes and compile
* `npm run test` perform the jest unit tests
* `cdk deploy` deploy this stack to

元記事を表示

【AWS】AutoScalingの起動設定でAMIを変更しただけのはずがAWS利用料が倍になっていた話

# はじめに
あ…ありのまま 今 起こった事を話すぜ!

「おれは 起動設定でAMIを変更したと思ったら いつのまにかAWS利用料が倍になっていた」

な… 何を言っているのか わからねーと思うが 
おれも 何をされたのか わからなかった…
頭がどうにかなりそうだった… 催眠術だとか超スピードだとか
そんなチャチなもんじゃあ 断じてねえ
もっと恐ろしいものの片鱗を 味わったぜ…

***

おふざけはさておき、タイトルのとおり起動設定でAMIを変更しただけだったはずが、AWS利用料が倍になってしまったため、自分への戒め及びAWSを利用している方へ共有するためにも記事として残します。

# やったこと
新しくAMIを作成したため、既存の起動設定をコピーして新しい起動設定を作成した。
※この時、変更したのはタイトルとAMIのみ変更し、他の設定は変更していない。

# 起きた事象
毎日EBSボリュームを作成しており、1か月後にAWS利用料が倍になっていた。
※起動設定を入れ替える前はEBSボリュームを作成することはなかった

# 原因
この環境ではAutoScalingでEC2の台数を毎日

元記事を表示

Step Functions チュートリアル

# 背景

Step Functions の書き方を勉強するため、AWS 公式のチュートリアルをやってみる。

https://docs.aws.amazon.com/ja_jp/step-functions/latest/dg/tutorials.html

(公式の日本語は変なので、意味が分からない場合は英語を参照するといいかも)

# Lambda を使った Step Functions ステートマシンの作成

https://docs.aws.amazon.com/ja_jp/step-functions/latest/dg/tutorial-creating-lambda-state-machine.html

AWS Lambda 関数を使って、 `Task` ステートを実装する Step Functions ステートマシンを作成する。

## ステップ 1: Lambda 用の IAM ロールを作成する

## ステップ 2: Lambda 関数を作成する

ランタイムは Node.js 14.x を選択し、下記コードをコードソースにペースト。

“`
exports.

元記事を表示

IT未経験からAWS認定ソリューションアーキテクト プロフェッショナルになるまで

#はじめに
 こんにちは@sk_130と申します。

 本記事は、NonIT人材がAWSソリューションアーキテクト プロフェッショナルになるまでの
 過程をまとめたものになります

 大きく分けて以下のパートに分けて整理しています

– Part 1 : AWS ソリューションアーキテクト-アソシエイト資格の合格
– Part 2 : 応用情報試験の合格
– Part 3 : AWS ソリューションアーキテクト-プロフェッショナル資格の合格
– Part 4 : AWSを実務を通してスキル向上させる

  AWSは昨今よく使われるので **漠然と勉強はしたい、でもどうすればプロになれるんだろう?**って
  人の役に立てばいいかなと思って整理しています

#####  ブログの書き方は以下を参考にしています。
 ソリューションアーキテクト-アソシエイト資格の合格の勉強でも参考にさせてもらいました

 [知識0から175時間で合格したAWS認定ソリューションアーキテクト-アソシエイト-](https://qiita.com/i3no29/items/c9b2aaa4e78

元記事を表示

AWS WAFにてIP制限かけてみた。(EC2 + ALB + WAF)

#はじめに
こんばんは、山田です。
今回は、AWS WAFについて検証していきたいと思います。

#全体構成図
全体構成図は以下の通りです。
クライアントVPNからの接続は許可し、パブリックサブネットに配置されているEC2からのアクセスは拒否するように設定していきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1096361/3b759bed-0beb-a750-3ef1-fa2c184941a1.png)

|接続方法|接続可否|
|—|—|
|User → クライアントVPN → ALB| 〇|
|User → IGW → EC2 → ALB |×|

##構築手順
下記より、構築手順について記載していきます。

##前提条件
今回は、クライアントVPN、WAFの構築に焦点を当てて記載していきます。
なので、EC2,ALB等は構築済みとします。
また,EC2はWindowsServerとしIISの機能は追加済みとします。

##クライアントVPNの構築
AWS管理コン

元記事を表示

OTHERカテゴリの最新記事