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

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

AWS Systems ManagerでブラウザベースのWindowsデスクトップ接続

2021年11月23日にAWS Systems Manager (SSM)のFleet Managerで「コンソールベースのWindowsインスタンスへのアクセス」が発表されました。

https://aws.amazon.com/jp/about-aws/whats-new/2021/11/aws-systems-manager-console-windows-instances-security/

ブラウザベースでRDP接続ができるようになっています。SSM経由なので、マネージドインスタンス(SSMに接続されたEC2インスタンス)であればインターネットからのRDP接続ができる必要もありません。実際に試してみました。

# 手順

ドキュメントはこちら。まだ日本語版はありません。

https://docs.aws.amazon.com/systems-manager/latest/userguide/fleet-rdp.html

1. Systems Managerを開きます。
![image.png](https://qiita-image-store.s3.ap-n

元記事を表示

EKSをできるだけCloudFormationで構築した話

# 背景
業務でEKSを含むアーキテクチャの設計構築を任されました。しかしながら周りにEKS経験者がおらず独学で構築方法も学びました。そしてデプロイ後も保守性の高くなるようなEKSの構築方法に大分悩まされました。
そこで直面した課題や解決方法を共有します。

# はじめに
[具体的なソースコードはGitHubリポジトリで公開しています。](https://github.com/Makoto-Taguchi/EKS-CloudFormation-Setup)
ここでは、試行錯誤の道のりみたいなものを書きます。

# 今回のゴール
以下のようなEKS on Fargateを含むアーキテクチャを作成したい。
(パブリック/プライベートサブネットは2AZに跨ぐ必要あるのでそれぞれ2つずつ作っているが、図では簡略化)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/577028/100cd9b0-99a0-4ad5-f865-230ed2bb38d3.png)

# EKSクラスターの構築アプロ

元記事を表示

API Gatewayにカスタムドメインを割り当てる。

## API GWにカスタムドメインを設定する。

### 前提条件

* ドメインを取得済み(今回はFreenom利用)。
* Route53にホストゾーン作成済み。
* FreenomへNSレコードの値を登録済み。
* 東京リージョンでAWS ACMで証明書を発行済み。(Route53へCNAMEも登録済み)
* CDKのversion `1.134.0 (build dd5e12d)`

### 必要なリソースの準備と設定(CDK)

“`ts
import * as cdk from ‘@aws-cdk/core’;
import * as lambda from ‘@aws-cdk/aws-lambda’;
import * as apigw from ‘@aws-cdk/aws-apigateway’;
import * as acm from ‘@aws-cdk/aws-certificatemanager’;
import * as route53 from ‘@aws-cdk/aws-route53’;
import * as route53Tragts from

元記事を表示

ECSタスク定義に\tが入っていたせいでredashでNoneType object has no attribute test_connectionが出た話

# はじめに
当社ではBIツールとしてredashを利用しており、つい先日v10へのアップデートを行いました。その際の記事は[こちら](https://qiita.com/t_odash/items/35e98975bc0f8017d3e4)。
今回はそんなアップデートにてECSタスク定義を変更した際、定義内に`\t`が紛れ込んだことでredashが不具合を起こした話をまとめます。

# 0. 事の起こり
アップデートの喜びも束の間、`Pythonが利用できない`といった報告が入り、その解決に奔走することとなりました。確認の為にデータソースpythonにて`Test Connection`を発行するも`NoneType object has no attribute test_connection`と弾かれてしまいました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/570763/f4af6f2e-85e7-cfe1-0fe2-b67cbb8f81d3.png)
![image.png

元記事を表示

[初心者向け]AWSを使って外部サイトからkintoneにレコードを追加

#やりたいこと#
外部サイトで入力したデータをマスタ(kintone)に登録

#動作確認環境#
作業端末:windows10
マスタデータ:kintone

#テストの流れ#
1. kintoneアプリ作成
2. AWS Lambda関数の作成
3. AWS Lambda環境構築
4. AWS API Gateway環境構築
5. 外部ページの作成

#1.kintoneアプリ作成#
####1-1.テスト用のアプリを作成####
○アプリ名:テストアプリ
○項目1:レコード番号
○項目2:文字列(1行)
  ➤フィールド名:テキスト
  ➤フィールドコード:text 
![kintone1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2225708/ee62981b-ce81-9739-9a01-0cbc7426f32d.png)

####1-2.APIトークンの生成####
アプリの設定>設定>APIトークンからレコード閲覧アクセス権有りのAPIトークンを生成し保存(APIトークンを控える)

元記事を表示

GitHubActionsのSelf-hosted runnerを必要な時だけ起動する

以前書いた「GitHubActionsのSelf-hosted runnerで、SpringNativeのビルド時間を短縮する」の続きです。

SpringNativeでNativeイメージ化する際のビルド時間の短縮に「Self-hosted runner」に強めのEC2インスタンスを使用してビルド時間の短縮した話を書きました。
https://qiita.com/renave/items/561904b2988ebb6f0534

今回は費用の節約のために「Self-hosted runnerを必要な時だけ起動する」ようにしたお話です。

こちら、強めのEC2インスタンスなので起動しっぱなしにすると結構お金がかかります。
使うたびに手動で起動/停止するのも大変です。

そこで、
1:GHA実行時に標準のUbuntuのrunnerを使用し、Self-hosted runnerインスタンスを起動。
2:Self-hosted runnerでSpringNativeのビルド処理を実行。
3:ワークフローが終了したらインスタンスを停止する。
4:念のため、業務終了後の夜間にも停止をスケジュ

元記事を表示

AWSの料金を毎日Slackに通知する

クラウド破産が起きないようにAWSの料金を毎日通知するやつを作りたかったのですが忙しくて…
重い腰を上げてやっとです。LINEに通知してもでもいいのですが手軽なのでSlackで行きます。
Slackシリーズ結構やってきましたので他の記事も参考に

https://qiita.com/ymktmk_tt/items/ef90884d94190f7ae951

https://qiita.com/ymktmk_tt/items/54920620e1e99389f36c

https://qiita.com/ymktmk_tt/items/06824d7d325e102b0e2e

## 今回のアーキテクチャ

![aws-slack (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1295942/c1d4ad46-28b1-702f-ee36-325b1f08b0ef.png)

## Lambdaを作成

今回動かすコードを貼り付けましょう

“`python

import datetim

元記事を表示

AWS CLIのdebugオプションは何が出力されるのか

ssm接続失敗する場合に–debugをつけた例で一体何が出力されるのか見てみました。
出力内容が何を指しているのか、基本的に英語で同行に出力があるのでわかりやすかったです。

“`vim

<実行コマンド>
% AWS_PROFILE=credential-name aws ssm start-session –region=ap-northeast-1 –target i-xxxxxxxx –debug

2021-11-19 12:05:44,110 – MainThread – awscli.clidriver – DEBUG – CLI version: aws-cli/2.2.14 Python/3.8.8 Darwin/20.6.0 exe/x86_64
<引数1>
2021-11-19 12:05:44,110 – MainThread – awscli.clidriver – DEBUG – Arguments entered to CLI: [‘ssm’, ‘start-session’, ‘–region=ap-nor

元記事を表示

aws-cli の list_objects_v2() 関数 の 取得上限 1000 オブジェクトの罠

S3 バケットから、数テラのデータをダウンロードしていて、ハマりました。

AWS の 関数、list_objects_v2() は、1000件までしかオブジェクトを取得できないという問題があるようでした。
https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html

これを回避するには、1000件ごとに、Continuationtoken を渡してやる必要があるようです。

結果的には、普通に以下のコマンドでダウンロードできました。内部的に、Continuationtoken を渡しているようです。

“`
# aws s3 sync s3:// f:\
“`

試しに、Python スクリプトを作成して今回は Windows11 で実行してみましたができていたようでした。

“`python
import boto3
import os

s3_client = boto3.client(‘s3’)

def download_dir():

元記事を表示

ヘキサゴナルアーキテクチャを使ってドメインモデルをAWS Lambdaファンクションで実装してみた

## はじめに

2021年11月20日から21日にかけて、[JAWS Pankration 2021 ~Up till Down~](https://jawspankration2021.jaws-ug.jp/)が開催されました。筆者はその中で DDD on AWS Lambdaというタイトルのセッションを担当しました。このセッションでは、ヘキサゴナルアーキテクチャを利用してドメインモデルをAWS Lambdaファンクションに実装する方法、また制御の反転(IoC)を利用してユニットテストを容易にする方法について紹介しました。

## この記事を書いたのは
今回、JAWS Pankrationは新たな試みとして、広く海外のコミュニティーメンバーにも参加してもらうために、全てのスライドを英語で記述しポケトークを利用して逐次通訳しながらセッションを行いました。海外のコミュニティーメンバーにも見てもらいたかったので、このために実装したサンプルアプリケーションのリポジトリの[README.md](https://github.com/afukui/jaws-pankration-ddd-lam

元記事を表示

【SAP-C01試験対策】DDoS攻撃に対する対策

# はじめに
AWS上のDDoS攻撃に対するセキュリティ技術を勉強するために以下の公式ドキュメントおよび研修を参考にしたので内容をまとめます。

https://aws.amazon.com/jp/shield/ddos-attack-protection/

https://www.school.ctc-g.co.jp/course/AW08.html

# 背景
本記事はAWSソリューションアーキテクトプロフェッショナルに合格するために、[Udemyの模擬試験](https://www.udemy.com/course/aws-53225)を解いて分からなかった部分を勉強してまとめるものです。

試験対策用のため、分からない知識を補足したり試験で問われなさそうなところを省略したりしながらまとめています。
なるべくわかりやすい記載を心がけますが、最終目的は自己学習用であるということをご容赦ください。

# DDoS攻撃とは

複数のソースを使用してウェブサイトやアプリケーションに負荷をかけ、正当なエンドユーザーのアクセスを妨害する攻撃。
Distributed Denial of S

元記事を表示

Amazon Linux 2022 Preview の様子見

11/22 に、Amazon Linux 2022 (以降AL2022)のプレビューリリースが発表されました。

[Announcing preview of Amazon Linux 2022](https://aws.amazon.com/jp/about-aws/whats-new/2021/11/preview-amazon-linux-2022/)

Preview 時点ですが、どんなものかというのを見てみました。

## 概要

ニュースの概要、自分なりに掻い摘んでピックアップすると以下がポイントかなと思います。

– 今後、2年毎のメジャーバージョン更新方針とした。
– 5年間のサポートが保証される。(標準サポート2年、メンテナンス3年)
– Fedra Project ベースに、四半期毎の更新が適用される。
– リポジトリロック機能ができた。
– Kernelに起動したままパッチを充てられる。(未実装)

一番大きいのは、リリースサイクルポリシーが定まったことで、利用者として計画が立てやすくなったことかなと思います。

リポジトリのロック機能。詳細はわからないですが、「

元記事を表示

Okta→AWSコンソールのSSO(SAML)とプロビジョニング

# AWSのSSOとプロビジョニングについて
OktaでAWSコンソールにSSOとプロビジョニングする方法を記述します。
ユーザープロビジョニングというとIDPでアカウントを作成するとSP(service provider)側にもアカウントが作成され同期されるという認識でしたが、AWSにおいてはSSOするときにそのセッションにロールを付与し、仮想のIAMユーザーを作成し、接続させることをプロビジョニングとしています(と私は思っています)。SSOするIAMユーザーは実際に作成されることはありませんので、セッションが切れればIAMも情報も消えます。当然、IDPでアカウント削除した後、IAMユーザーの削除し忘れも発生しません。

:::note info
因みにAWS CloudTrailに証跡は残ります。
:::

## 前提
– AWSアカウント作成済み(IAM ユーザー、ロール、ポリシー、IDプロバイダーの作成権限が必要です。)
– Oktaアカウント作成済み

## Oktaにアプリケーションを追加
Oktaの管理画面から「Applications」>「Applications」>「

元記事を表示

AWS Systems Managerの管理対象インスタンスにする

### はじめに

本記事は、EC2インスタンスをSystems Managerの管理対象インスタンスにするまでの手順です。
別記事で、EC2インスタンスに対してオートメーション(ランブック)を実行するところを書く予定です。手順が長いので分割しています。
Systems Managerを利用するためには、いくつかのロールの作成とポリシーの割り当てが必要になります。

### 記事のカバー範囲

– AWS上のWindows Serverインスタンスのみを扱います。オンプレミスのサーバーをマネージドインスタンスにする内容は含みません。

### Systems Managerの管理対象インスタンスの準備

1. SSM Agentをインストールしたマシンイメージ(AMI)を用意します。

AWSコミュニティーAMIで提供されているWindows Server 2019のAMIには、はじめからSSM Agentがインストールされています。

![2021-11-23-16-29-53-image.png](https://qiita-image-store.s3.

元記事を表示

【AWS】EC2(wordpress)+RDSの基本構成をCloudFormationで構築

#■はじめに
EC2(wordpress)・RDSのシングル構成(※)を今度はCloudFormationで構築してみました。
※[AWSで基本的なブログサービスを構築する(シングル構成)](https://qiita.com/CycleSHD/items/0a02aae2e2321adf5496)

#■構成図
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1864204/2218ac46-df39-bc6d-debf-50161c303091.png)

#■テンプレート概要

https://d1.awsstatic.com/webinars/jp/pdf/services/20200826_AWS-BlackBelt_AWS-CloudFormation.pdf

上記 85ページを参考に、
ネットワーク、セキュリティ、アプリケーションの3つに分ける。
加え、一部設定値を記述した外部ファイルの計4つを作成する。

– ネットワーク ⇒ cf_network.yml
– セキュ

元記事を表示

話題の「AWSコンテナ設計・構築 本格入門」ハンズオンやってみた(その1)

発売前から各所で話題のこいつ。実は後半が本格的なハンズオンになっている。

# 環境準備
– 作業端末:Macbook
– AWSアカウント:自社で勉強用に用意していたものを利用。
– IAMユーザー:個人ユーザーを作成しAdminAccessを付与。

# 4-2章 ネットワークの構築
初めにCIDRブロックの割り当てを考えておく。
特に今回利用するアカウントは他のメンバーと共用のため、設定例にあるような10.台だと既存VPCと被る可能性大。

指定可能なCIDRのアドレス範囲ってどれだっけ、というのをこれで参照。
https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/VPC_Subnets.html

東京リージョンの既存VPC見ると`10.100.0.0/16`が空いていたので採用。
以降、書籍の設定例の第2オクテットを0→100に読み替える形で設定す

元記事を表示

AWS – CloudWatch Logs Insightsで日付の期間指定する場合はAbsoluteを選択

AWS – CloudWatch Logs Insightsで日付の期間指定する場合はAbsoluteを選択すべし。
クライアントで –start-time –end-timeを指定する方法はよく見かけたけど、コンソール版はあまり見かけなかった。常識なのかな。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2203726/25231e76-edc9-aed2-b7be-1a78036bc4a9.png)

元記事を表示

CloudFormationでImportValueを使うとJSONObjectが見つかったと言われる

# 経緯
セキュリティグループをクロススタックで使いたくてyamlでテンプレートを書いていたものの、Outputsの結果がIDになっているのは確認できているのに

“`
#/SecurityGroups/0: expected type: String, found: JSONObject
“`

とか言われてぐぬぬ…となっていた。
うまくいく方法を見つけた結果からすると、最終的に行き着くのは「一旦フルで書いてみよう」というところ…なのかもしれない。

# 修正前
“`
MountTarget1:
Type: AWS::EFS::MountTarget
Properties:
FileSystemId:
Ref: NfsBatch
SubnetId:
Ref: Subnet
SecurityGroups:
– ImportValue: NfsSecurityGroupId
“`

# 修正後
“`
MountTarget1:
Type: AWS::EFS::M

元記事を表示

作成したEC2インスタンスにTerminalからssh接続する

## 前提
– EC2インスタンスの作成やpem.keyのダウンロードなどは省いています。
– pem.keyを新規に作成、ダウンロードした後からの手順について説明しています。
– Macに標準装備されているTerminalを利用しています。

## 準備
### ダウンロードしたpemキーをsshフォルダに移動させる
“`
$ MV ~/Downloads/hogehoge.pem ~/ .ssh/
“`
– `MV` ファイル移動をするコマンド
– hogehoge.pemには秘密鍵(自身でダウンロードしたpemファイル名)を記載
– ダウンロードした秘密鍵ファイルをsshフォルダへ移動

### 権限変更をしてUserKeyを読み込めるようにする
“`
$ chmod 400 ~/.ssh/hogehoge.pem/
“`
– `chmod` 権限変更をするコマンド
– 読み取り権限をUserKeyのみに設定

## 実行
### sshで接続してみる
“`
$ ssh -i ~/.ssh/hogehoge.pem ec2-user@xxx.xxx.xxx.xxx

元記事を表示

ruby on rails tutorial3章を始めたら出てきたThere was insufficient space〜 というエラーの解決方法

やっと3章に突入して意気揚々と進めていくと、

“`ruby:qiita.rb

There was an error while trying to write to
`/tmp/xxxxxxxxxxxxxxxxxxxx/versions`. There was
insufficient space remaining on the device.

“`

がこんにちは。

どうやら何かの容量がないということらしい。

そうこうしているうちに、awsのターミナルにコードを入力できなくなる。
![スクリーンショット 2021-11-23 10.30.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2144713/a365d842-4b6f-973f-26eb-5265ba55315b.png)
![スクリーンショット 2021-11-23 10.30.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214

元記事を表示

OTHERカテゴリの最新記事