AWS関連のことを調べてみた2021年12月13日

AWS関連のことを調べてみた2021年12月13日
目次

AWS CDK (TypeScript)でec2.SubnetSelectionが使えないとき

# エラー
lambdaにsubnetを関連付けようとしてこんな感じで書いてみたところ、

“`
const lambdaFunction = new pylambda.PythonFunction(this, ‘test-func’, {
entry: ‘src’,
index: ‘lambda_function.py’,
handler: ‘lambda_handler’,
runtime: lambda.Runtime.PYTHON_3_7,
timeout: cdk.Duration.seconds(10),
layers: [
new pylambda.PythonLayerVersion(this, ‘test-layer’, {
entry: ‘src’,
})
],
vpc: vpc,
vpcSubnets: ec2.SubnetSelection,
securityGroups: [

元記事を表示

StepFunctions から AWS Batchの呼び出しでJSON Stringを使う

[Wano Group Advent Calendar 2021](https://qiita.com/advent-calendar/2021/wano-group)の記事です。

AWS Step Functions から AWS Batchに動的な命令を与えたい時、よくやるパターンのTIPSを記載します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/85375/c627160a-67e3-8cff-ca2c-dfbb2f2928a2.png)

AWS Batchに命令を与えるには、

* Parameters
* 環境変数

なりに命令を突っ込んで使う必要があります。
ここに命令としてJSONを使いたい時があるのですが、オブジェクトのままでなくシリアライズして渡す必要があります。

例えば、こういうJSONを命令として与えたい時どうするでしょうか。

“`json
{
“call_type” : “create_image”,
“data” : {
“bu

元記事を表示

【AWS】基本ネットワーク設計

AWSでステージング環境、本番環境を作成する際に必ず知っておく必要があるのがAWSのネットワーク周りです。(知らないと環境作れない。)
今回は、本当に基本的なネットワークの設計を勉強のアウトプットがてら記述します。

この記事の対象読者は、AWSを勉強し始めてまもない方対象です。(筆者も勉強し始めてから1週間)

## 出現用語
* VPC
* サブネット
* ルートテーブル
* アベイラビリティゾーン
* インターネットゲートウェイ(IGW)
* NATゲートウェイ

## 今回のネットワーク構成
![Untitled Diagram.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/669831/ea6d7d23-e7ca-8781-7375-6767edbb4db6.jpeg)

今回は、このようなネットワーク構成を軸に説明していきます。

### VPC
なにはともあれ、一番初めに環境を作るにあたって作成するものはVPC(Virtual Private Cloud)になると思います。
**AWS上で

元記事を表示

AWS認定ソリューションアーキテクトプロフェッショナル再認定試験に合格した

2回目のAWS認定ソリューションアーキテクトプロフェッショナル再認定試験に合格しました。
今後のために記録を残しておきます。

前回の再認定の記事:[AWS認定ソリューションアーキテクトプロフェッショナル再認定試験に合格した – Qiita](https://qiita.com/mechamogera/items/2088b8e1ed5ba79cd26f)
初回の認定の記事:[AWS認定ソリューションアーキテクト – プロフェッショナルレベルにリベンジして合格した – Qiita](https://qiita.com/mechamogera/items/b9b658369918290d0889)

# 試験勉強

## 勉強開始時のAWS知識

ここ数年は業務でAPI Gateway、Lambda、S3ホスティング、CloudFrontあたりの限定した範囲をさわっているくらい。

## 勉強時間

勉強期間は10/4から勉強開始、12/11に受験したので2ヶ月とちょっと。
休日は家事育児があるので平日業務時間中に1時間ほど勉強。

## 勉強内容

以下のUdemyの演習問題をChro

元記事を表示

S3でウェブサイトを公開し、CloudFrontでドメイン名を変える方法

#はじめに
仕事でAWSのS3とCloudFrontに触る機会があり、便利だったので自分の復習も兼ねてまとめます。

####S3(Amazon Simple Storage Service)とは
Amazonが提供しているオブジェクトストレージサービスで、容量無制限で扱えるものです。
今回は、AWSのAPI gatewayやCloudFrontなどを用いたWebサイトを公開するために用いました。

その中で、S3でWebサイトに公開する方法とCloudFrontでドメイン名を変える方法について紹介します。
[※参考にした記事](https://qiita.com/SSMU3/items/94d60998038e9af80cf9)
___
##S3でWebサイトの元となるバケットを作成する

1.AWSにログインし、AWS マネジメントコンソールからS3に移行する
![スクリーンショット 2021-12-06 14.50.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1754203/030e0eb

元記事を表示

【AWS】IAM ユーザー&ユーザーグループの作成手順

## IAM ユーザーの作成手順
1. [AWSアカウント(ルートユーザー)にログイン](#1-awsアカウントルートユーザーにログイン)
1. [ユーザーのアカウント情報の設定](#2-ユーザーのアカウント情報の設定)
1. [アクセス権限の追加](#3-アクセス権限の追加)
1. [タグ追加と確認](#4-タグ追加と確認)
1. [IAMユーザーのアカウントにログイン](#5-iamユーザーのアカウントにログイン)

※ アカウントに既存のIAMユーザーが1つもない状態を想定しています。
※ すでにIAMユーザー作成の権限を持つユーザーが他に存在すれば、そちらでログインも可。

## 1. AWSアカウント(ルートユーザー)にログイン
1. まず、ルートユーザーとしてログインします。(途中でセキュリティチェックがあると思います。
![Screen Shot 2021-12-10 at 7.09.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1975528/1062bea1-fcd3-ab7e-

元記事を表示

ServerlessFramework + AWS + Pythonで作るレイヤーと単体テスト

# はじめに
ServerlessFramework + AWS + Pythonでバックエンドを構築しているとき、開発規模が大きくなってくるとLambda内のPythonコードを共通化したくなることがあると思います。そんなときに使えるのがLambdaレイヤー。Lambdaレイヤーとして作ったモジュールを色々なLambdaで使い回すことができます。モジュールのサイズが大きくなりすぎてコンソールで表示されなくなった時の切り分けにも使えそうです

[以前の記事](https://qiita.com/nashitake/items/b8122bc9693d592f5360)の続きです

## 最終的な構成

“`
/
├── serverless.yml
├── functions/
│ ├── hello/
│ │ ├── handler.py
│ │ └── requirements.txt
├── layers/
│ ├── original_module.py
├── layers-test/
│ ├── test_original_module.py

元記事を表示

[初心者向け] ゼロから始めるGo + Nuxt.js + Terraform + AWS + DockerでWebアプリ開発

# はじめに
はじめまして、大学院(非情報系)卒業後、Web系企業でインフラ業務を担当している新卒1年目です!
これまでWebアプリ開発の経験があまり無かったので、スキル向上のためGo (Echo)とNuxt.jsを使用し、1ヶ月程かけてアプリ開発を行いました。
GoとNuxt.jsに関しては完全に未経験の状態からのスタートでしたが、なんとか形にすることができたので、アプリケーションを完成させるまでの進め方や学習方法をまとめていきたいと思います。
皆様のご参考になれば幸いです!

# 開発したアプリケーション
![スクリーンショット 2021-12-12 14.28.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/302831/93a519fa-fc5b-5ee3-319c-45e80a7c5875.png)

GitHubのissueやrepositoryを豊富なフィルタ機能を利用して検索できるサービス([gitnavi](https://gitnavi.dev/ja))を開発しました。
(今後も

元記事を表示

【AWS】IAMのまとめ

# はじめに
こんにちは。
この記事は[GFAMアドベントカレンダー2021](https://qiita.com/advent-calendar/2021/gfam)の4日目の記事です。
IAMについてまとめてみました。

# IAMの概要

IAMとは、Identity and Access Managementの略です。AWSを使用するユーザーのための権限サービスです。AWSサービスを安全かつ適切に使用する上でしっかりと理解したほうが良いサービスです。

ここでは、下記についての概要のみを記載します。

* IAMユーザー
* IAMグループ
* IAMポリシー
* IAMロール

# IAMユーザーとは

IAMユーザーとは、管理者 (ルートユーザまたは管理者権限を持つIAMユーザー) によってアクセス権限を付与して作成されるユーザーです。このIAMユーザーは人間が使用する場合だけでなく、プログラムが使用する場合もあります。なお、IAMユーザーが作成された直後は、なにも権限が付与されていません。

## アクセスの種類

IAMユーザーがAWSにアクセスする方法として下記2パタ

元記事を表示

GitLab-CI shared runner を用意してみんなに使ってもらおう!

# 概要
社内で Git サーバを立てることになり、金銭面の都合やセキュリティ上の要求から、セルフホストする GitLab サーバを立てることがあると思います。
その場合、GitLab の利用者となる、社内の開発者は、GitLab に関係するサーバをどう管理するかいうことは考えずに開発に集中したいと考えます。 そうすると、自ずと、サーバ管理者がGitLab サーバに関係するインフラ面の管理を行い、開発者はサービスを利用するだけにするといった役割分担をしたくなります。

GitLab には GitLab-CI という機能があります。
これは GitHub Actions や CircleCI、CodeBuild などと同様に、リポジトリ内に yaml ファイルを定義しておくことで CICD を管理できる機能です。
この機能を利用すると、今までは Jenkins などで CI を回していたのを GitLab-CI に寄せていくことができます。
GitLab-CI に寄せることで、Jenkins という別の仕組みを知らなくて良くなるので、認知負荷を減らすことができます。また、リポジトリの内

元記事を表示

シングルサインオンはいいぞ。AWS SSOでEC2 Windows Serverにログインする。

この記事は[ZOZO Advent Calendar 2021 #3](https://qiita.com/advent-calendar/2021/zozo) 13日目の記事です。

https://qiita.com/advent-calendar/2021/zozo

# とあるリリース
https://aws.amazon.com/jp/about-aws/whats-new/2021/11/aws-single-sign-on-one-click-login-ec2-windows/

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62601/c2cd53d8-a55a-1b91-710a-d224838d5df0.png)

弊社は古くからWindows Serverを利用しており、AWS上でも多少のEC2 Windows Serverが動いています。徐々にLinuxコンテナに置き換わっているものの、まだまだ現役です。

アカウント管理が容易になるリリース、これは見逃せません

元記事を表示

【Rails】本番環境のECSからS3へアクセスできないを解決【AWS】

## やりたいこと
本番環境でRailsからS3へファイルアップロードする時のエラーを解決したい。

## 環境
– rails 6.14
– gem ‘aws-sdk-rails’
– gem ‘aws-sdk-s3’, ‘~> 1’
– ECS(Fargate)

## 結論

https://github.com/aws/aws-sdk-ruby#configuration-options

ECSの資格情報をRailsに与えることで解決。
`app/controllers/rails_controller.rb`内の記述を以下に書き換える。

“`ruby:app/controllers/rails_controller.rb(修正後)
s3 = Aws::S3::Resource.new(
region: @region,
credentials: Aws::ECSCredentials.new
)
“`

“`ruby:app/controllers/rails_controller.rb(修正前)
s3 = Aws::

元記事を表示

Amazon ECR のイメージスキャン結果を Slack 通知 (拡張スキャン対応版)

この記事は [**AWS Advent Calendar 2021**](https://qiita.com/advent-calendar/2021/aws) 13日目の記事です。

## はじめに
AWS re:Invent 2021 で 脆弱性管理サービス Amazon Inspector のリニューアルが発表され、新たに Amazon ECR に格納されたコンテナイメージに対するスキャンをサポートしました。Inspector によるイメージスキャン機能の提供により、 ECR のスキャン機能は基本スキャン (Basic scanning)、Inspector によるスキャン機能は拡張スキャン (Enhanced scanning) という名称になりました。

2019年に AWS Lambda を使用して 基本スキャンの結果を Slack に通知する方法について投稿したのですが、拡張スキャンの通知には対応していません。

https://qiita.com/hayao_k/items/116e5540b2bf0c2a2c9d

本記事では 2021年12月時点で各スキャン結果を

元記事を表示

[CDKv2]CloudFrontへWAF適応にパラメータストアを使う。

CloudFrontにWAFを当てる場合、WAFv2ではWAFをus-east-1リージョンに作成しないといけない。
CloudFrontが他のリージョンのリソースと一緒に定義されている場合、WAF適応に指定するARNをパラメータストア経由で渡したくなるが、そのままでは別リージョンのパラメータストアにはアクセスできない。

`cdk-remote-stack`というモジュールで対応できるみたいだが、Lambda@Edgeを噛ませた場合にうまくいかなかったので以下を参考にCDKv2でクロスリージョンでのSSMパラメータストア読み書きを行うクラスを用意した。

https://stackoverflow.com/questions/59774627/cloudformation-cross-region-reference

“`
$ cdk –version
2.1.0 (build f4f18b1)
“`

“`ts:lib/xorigin-ssm-parameter-accessor.ts
import { Construct } from ‘constructs

元記事を表示

AWS CLIで Web サイトを構築、管理、運用する(13日目)

13日目!
折り返し地点到達です!!

今回は、Web サイトを公開している方で気にならない方はまずいないと思われる(個人の感想です)、アクセス数(リクエスト数)を取得してみます。

# 13日目の要約
アクセス数(リクエスト数)を取得するよ!

# AWS CLI の準備
このあたりをみて、好きなバージョンとお使いのOSにあった環境設定をしてくださいね。
なんなら、 AWS CloudShell で実行するのも楽でよいと思います。
この記事シリーズは、AWS CloudShell で実行し、実行例を載せています。

バージョン1
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/install-cliv1.html

バージョン2
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/install-cliv2.html

# 概要
CloudWatch でアクセス数(リクエスト数)に関するメトリクスを取得、確認するよ!

# さあ、やってみよう!
CloudFront

元記事を表示

AWS Lambda(Python)のバリデーションロジックについて

## はじめに

皆さんは、AWS Lambdaの開発言語は何を使っていますか?
選択肢はいろいろあるかと思いますが、私はPythonで開発しています。
Lambdaの中で送られてきた値のチェック(バリデーション)をすることも多いかと思いますが、そのロジック自前で実装していませんか?
ライブラリを使うと自前で実装せずに実装できるので紹介します。

## 実装例

### ソースコード

とにもかくにも、コードを見てもらったほうが早いと思います。

“`py
from aws_lambda_powertools.utilities.validation import validate
from aws_lambda_powertools.utilities.validation.exceptions import SchemaValidationError

BODY_SCHEMA = {
“$schema”: “http://json-schema.org/draft-07/schema”,
“type”: “object”,
“examples”: [

元記事を表示

Route53ドメイン設定

#1.やったこと
実際触ってなかったのでRoute53の設定を試してみました。
同じように初めて設定する方の手助けになればと思います。

* Route53でホストゾーン作成&ドメイン設定

#2.前提条件
* AWSアカウント取得済
* 宛先を用意済(筆者は構築済ALBを設定)
* お名前ドットコムにてドメイン取得済

#3.ドメイン取得
前提条件の通り、今回は取得済みドメインを利用します。(お名前ドットコム)

|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/688371/fc23e380-d5d4-28d8-ac22-6d65b8a2f066.png)|
|:–|

#4.Route53でホストゾーン作成&ドメイン設定(ドメインA)
#4.1.Route53ホストゾーン作成
1.Route53 > ホストゾーン > ホストゾーンの作成 をクリックする。

|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazo

元記事を表示

AWS Code系サービスのCICDパイプラインに脆弱性検査を簡単かつ柔軟に組み込む(Snyk CLI)

# TL;DR
CodeBuildで簡単にSnykCLIが呼べるから,パイプラインでの脆弱性検査も**自動で・簡単に・柔軟な設定**でできるよ!
(今回はCLIでやったけど、同様の手順でAPIも呼べるはず)

# はじめに
タイトルの通りです.AWS Code系サービスを利用したCICDパイプラインにSnyk CLIによる脆弱性診断を入れてみます.
実際のところ脆弱性検査を手で行うことは多分あんまり無いため,パイプラインにどれだけ簡単に組み込めるか?今のフローの邪魔をせずに入れられるのか?というのが気になる方は多いかなぁと思ったので.

# 導入アーキテクチャ
アーキテクチャというと大仰ですが,導入方法というと語弊がありそうなので,あえてアーキテクチャという単語を使っています.
現状Snyk(もしくはそれに準じた脆弱性診断)をAWSのCICDパイプラインに盛り込むには以下の3つが少なくともあると思います.

1. Amazon Inspector
2. CodePipelineとの統合
3. 自前でCodeBuildからのSnykの呼び出しを実装

## Amazon Inspecto

元記事を表示

Amazon Inspectorを使ってEC2の脆弱性診断をしてみる

先日開催されたAWS ReinventのUpdateでAmazonInspectorによるEC2の脆弱性診断について気になったので検証してみました。
[Amazon Inspectorの刷新](https://image.slidesharecdn.com/awsblackbelt2021reinvent2021digest-211203102222/95/20211203-aws-black-belt-online-seminar-aws-reinvent-2021-131-638.jpg?cb=1638527250)

# Amazon Inspectorとは
Amazon InspectorはEC2やECRの脆弱性およびを診断することができます。
CommonVulnerness and Exposures(共通脆弱性識別子)CVEで始まるソフトウェアの脆弱性情報を提供します。
この機能を使用することで導入しているソフトウェアにどんな脆弱性があるか知ることができます。

Amazon Inspectorには通常版とClassic版の2種類があり、通常版では今のところWindow

元記事を表示

冗長化とスケーラビリティのある構築をする

#記事の目的

前回の演習で作成した基本的なブログサービスの構築では、単一障害点となり障害発生時にはブログサービスが閲覧できなくなってしまいます。

前回の記事:https://qiita.com/ShotaMo/items/03819bee6d3523eecf48

そこでAutoScalingとCloudWatchを設定することで、前回よりも冗長性の高い構築をしていきます。
※今回は前回構築後にRDSとEC2インスタンスを削除していたため、RDSの起動から記載していきます。

#構成図

以下が今回構築しようとしている構成図になります。

![Untitled Diagram.drawio (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2111855/0e38c696-04c3-b633-56dd-0050

元記事を表示

OTHERカテゴリの最新記事