AWS関連のことを調べてみた2023年02月07日

AWS関連のことを調べてみた2023年02月07日
目次

terraform init で AWS VPC をインポートしてTerraform管理下に置く

# AWSでVPCを作成しておく

# tf ファイルを定義

中身は空で良いので定義しておく

`vpc.tf`

“`
resource “aws_vpc” “example” {
}
“`

# VPC ID を確認

image

# import する

`terraform import aws_vpc.example vpc-0e4bdfa5f98f4136a`

これでVPCをTerafform管理下に置けるわけだが、別に今の状態からtfファイルを作成してくれるわけではないようだ

# 生成されたStateファイルの例

“`json
{
“version”: 4,
“terraform_version”: “1.3.7”,
“serial”: 1,
“lineage”: “2f0

元記事を表示

varnishのresolves to too many addressesを解決する

ブログからの転載

# TLDR
– libvmod-dynamicを追加でインストールする
– ホワイトリスト設定を忘れない

# varnishの仕様
varnishでは基本的にバックエンドとの対応付けは1対1が基本であり、複数IPなどには対応することができない。
(注:ドメインなどを記載した場合はコンパイル(起動)時にDNSを引いた際のIPアドレスを利用しているっぽい[^3])
つまりbackendに”s3-ap-northeast-1.amazonaws.com”のような複数のAレコードを持つようなものを指定しようとすると、`resolves to too many addresses`と怒られる[^1]。

varnishのドキュメントやggってみると[gotoというライブラリ](https://docs.varnish-software.com/varnish-cache-plus/vmods/goto/)が出てくるが、これはシェアウェアのバンドルなので利用できない。

調べてみるとgotoとは別に[libvmod-dynamic](https://github.com

元記事を表示

入門 AWS CloudFormation #4(組み込み関数編)

インフラやクラウドの専門というわけではないのですがそろそろIaC周りもちゃんと勉強しておきたい・・・という感じなのでAWSのCloudFormationについて入門しつつ復習として記事にまとめておきます。

※とりあえず最初ということでごく基本的なところを中心に記事を書いていきます。

# 注意事項と前記事までの振り返り

本記事の処理を動かすとEC2関係などで色々と追加になったり起動したりします。その辺はリソースの停止や削除などをしないとお金がかかったりしてくる可能性があるためご注意ください。

また、本記事は3記事目となります。前回までの内容を踏襲していく形となっているのでご注意ください。

1記事目:

https://qiita.com/simonritchie/items/330391e741f394897550

2記事目:

https://qiita.com/simonritchie/items/a1922199a5b6d131dca9

3記事目:

https://qiita.com/simonritchie/items/8b1c3046474ca7c6863c

元記事を表示

AWS ECS のハンズオンを参考に Rails を ECS にデプロイする例

# 前提

前提としてECSの公式ハンズオンを完了しており、Hello Worldと表示されるWebアプリが動作したところまで進めていること

https://catalog.us-east-1.prod.workshops.aws/workshops/7ffc4ed9-d4b3-44dc-bade-676162b427cd/ja-JP/5-ecs/2-ecs

VPC/セキュリティグループ/ECSクラスタなどはそれぞれ作成できていること

# rails new でプロジェクトを作成する

localで作成

`rails new example`
`cd example`

# hostsの設定

development環境でデプロイさせる場合は、Railsアプリにアクセスできるようにhostsを編集する
(本来であればproduction環境でデプロイすべきだろうが、本記事ではRailsの起動が目的なので省略する)

`config/environments/development.rb`

“`rb
require “active_support/core_ext/int

元記事を表示

【AWS】IAMでスイッチロールを利用して複数アカウントにログインする方法

# 概要
* AWSのIAMで、スイッチロールを利用して顧客のAWSアカウントを利用しました。その際の設定手順について備忘も兼ねて記載します。

## 前提
* 自分の会社を「会社A」、顧客の会社を「会社B」として記載してます。
* 踏み台アカウント(ジャンプアカウント)を利用して、スイッチロールします。一つの入り口からのみ複数環境(ステージング・本番・検証など)にスイッチできる、セキュアな方式です。
* 踏み台アカウントについて、顧客BからID/Passは連携済とします(MFA認証のキーも)。より強いセキュリティ権限を付与したい場合は別途検討されてください。

# AWSリソース図
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2710373/0c206efe-3cfc-69df-0adf-66b5a8539bd0.png)

# 実行手順
* ①ロールを作成する(会社B)
* ②スイッチロールを設定する(会社B)
* ③スイッチロールで切り替えを行う(会社A)

## ①ロールを作成

元記事を表示

高校でのAWS開発・運用日記~体育祭編

こんにちは@kurimoni367 です!
自分の通っている高校でAWSを活用してシステムを構築・運用したことについて投稿します。今回は体育祭編です!!

# 目次
1.構築したシステム一覧
2.競技エントリー管理システム
3.運用してみて
4.まとめ

:::note alert
お願い
この記事の記載事項やサービスについて、弊学及び当局へのお問い合わせはおやめください。
またこの記事の記載事項について、誤りの無い様細心の注意を払っていますが正確性を保証することはできません。
予めご了承下さい。
:::

# 1.構築したシステム一覧
体育祭では

 1\. 競技エントリー管理システム
 2\. NYGstreaming(ライブ配信)

を構築・運用しました。
2のNYGstreamingは[前回の文化祭・NYGstreaming編](https://qiita.com/kurimoni367/items/31f2d855504a17718b5c)で詳しく書かせていただいたので、ぜひそちらをご覧ください!この頃は、ver1.1からver1.2へ移行したぐらいの頃でした。また、競技ルー

元記事を表示

EC2内のawscli操作でAccessDeniedが発生する場合の対処法(IAMロールの自己信頼使用ケース)

# はじめに
昨年IAMロールが自分自身を引き受ける際のロール信頼ポリシーの評価方法にアップデートがあり、自己参照操作をさせたい場合は自身のIAMロールのARN値を信頼ポリシーに追加することが必須になりました。
https://aws.amazon.com/jp/blogs/security/announcing-an-update-to-iam-role-trust-policy-behavior/

自分が使っている環境では自己参照操作をしていないので関係ないと思ってたのですが、最近掲題の事象が発生して原因が上記の自己参照操作であることがわかったので、備忘もかねて修正方法を書いておきます。

# 環境
– Windows Server 2019
– aws-cli/2.9.21

EC2にはAdministratorAccessPolicyをつけたIAMロールをアタッチしておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/440403/3fdc3de3-5a33-9b9b-

元記事を表示

エンジニアインターン12日目

今日は前回苦戦したDBからurlを引っ張ってくることに成功した。handle_functionを正しく入力したおかげで動くようになった。引っ張ってきたurlを使ってクローリングもできるよつになった。動くようになった時はとても嬉しかった。次のタスクとしてurlのパラメータを変更してなるべく軽い仕組みを作ることだった。先輩エンジニアに説明を聞いたものの実際コーディングしていると全くわからない状態だった。この課題は次に解決することにした。
今日はとても頭を使った。疲れた。でももっと頑張らないとこれの繰り返しだ…がんばろ!

元記事を表示

AWS re:Invent 2022 ブース展示からわかるアナリティクス分野のトレンド

株式会社NTTデータ [Data & Intelligence事業部](https://enterprise-aiiot.nttdata.com/) の nttd-saitouyun です。

昨年12月の AWS re:Invent 2022 に参加してきました。今回はブース展示(通称Expo)をガッツリ(4時間×2日)回って得られた所感をご紹介します。

写真は各ブースでいただいたノベルティです。時間をかけて回ったので、1日でこんなにたくさんのアイテムをいただきました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3118781/fff43781-c73a-8df5-59af-cb60bc49e267.png)

# Expoとは
**AWS re:Invent に協賛している300以上の企業が大きな会場で展示を行っています**。調べてみたところ、約17,465平方メートルの会場のようです。よって、約130メートル四方になる計算ですが、体感では2倍以上あるように感じました。
この

元記事を表示

EC2へのdeploy時にmini_racerでエラー

Rubyのバージョンアップ対応でめちゃくちゃはまった・・・
今更ながらRuby2.5.1からひとまず2.7.7(bundler 2.4.6)へ(この後3.2.0にアップデート予定)

開発環境では順調に進むものの、capistranoを使ったdeployがまったくうまくいかない・・・
インフラ系に弱いのでまじで泣きそうだったー

とくにmini_racerとかlibv8-nodeとか、ちょっと調べるといろんな人がはまっているところに同じようにはまりました

“`
01 current directory:
01 /var/www/{appli}/shared/bundle/ruby/2.7.0/gems/mini_racer-0.6.3/ext/mini_racer_extension
01 make “DESTDIR=”
01 compiling mini_racer_extension.cc
01 linking shared-object mini_racer_extension.so
01 g++: エラ

元記事を表示

ユーザーごとにsshの鍵を作成してaws ec2にログイン

## ローカルでキーペアを作成
“`$ ssh-keygen -t rsa -C “”“`
-C “”は公開鍵にユーザー名を載せない為
id_rsa.pub(公開鍵)、id_rsa(秘密鍵)ができる

## 公開鍵をec2にアップ
今回はコマンドプロンプトでscpします。
“`scp -i <アップする公開鍵> ec2-user@xx.xx.xx.xx:<転送場所>“`


“`scp -i .\xxx.pem .\id_rsa.pub ec2-user@11.00.22.33:/home/user01“`

ec2にログインする

## 権限変更
“`
cd /home/user01
chmod 700 .ssh
chmod 600 .ssh/authorized_keys
“`
## 所有権変更
“`
chown user01:user01 .ssh
chown user01:user01 .ssh/authorized_keys
“`

## 接続
“`ssh -i $HOME/.ssh/id_rsa user01@

元記事を表示

Amazon Cognitoについてまとめてみた

## はじめに
データベースを利用したシステムにはほぼ実装されている認証・認可。その認証・認可についてインフラにAWSを採用しているシステムなら導入するにあたって一考する価値のあるAmazon Cognitoについてメリットや仕組みについて調査した記事となります。
概要レベルの内容のためコードベースでの解説は記載しておりません。(実際に書いている時間がなく…)

## Amazon Cognitoとは
https://aws.amazon.com/jp/cognito/

– システムに対して、認証、ID/PW管理・シングルサインオン・アクセス制御などをクラウド経由で提供するIDaaS(identity as a service)に分類される。Onelogin、Okta、Firebase Authentication、Auth0などが有名どころ。
– 読み方は「コグニート」。incognito(匿名の)という英単語の反対の意味を持たせた造語という説が有力のようです。

## IDaaSとは
以下の機能を有しているサービスのことのようです。
– 認証・SSO
– ユーザーの認

元記事を表示

AutoStop WorkSpaces のメンテナンスについて考える

# AutoStop WorkSpaces のメンテナンスウィンドウ

– メンテナンスウィンドウが有効(デフォルト)な場合、重要な更新をインストールするために月に 1 度自動で開始される。
– 開始日時は月の第 3 月曜日から 2 週間、毎日 0:00~5:00。
– WorkSpace のメンテナンス期間中、*WorkSpace の状態は `MAINTENANCE` に設定される。*
– メンテナンスのタイムゾーンを変更することはできない。

https://docs.aws.amazon.com/ja_jp/workspaces/latest/adminguide/workspace-maintenance.html

# 必須要件

①Windows Update が実行されること。
②Windows Defender の定義ファイルが実行されること。
③Windows Defender によるスキャンが実行されること。

ドキュメントによると、
「WorkSpace は必要に応じて**重要な更新**を Amazon WorkSpaces からインストールして再起動します。」

元記事を表示

TwitterBotを開発してみたけど、閉じるしかなさそう〜開発内容をさらけだす〜

# はじめに
私はリプランボットというTwitterのボットを趣味で個人的に開発運用しています。

Screen Shot 2023-02-06 at 14.16.50.png

そんな中、ここ最近[Twitter APIが有料](https://www.watch.impress.co.jp/docs/news/1475811.html)になるというニュースが飛び込んできました。
お金をかけずに運用してきた身としては、有料(しかも$100/月)となったら運用を止めるしかありません。
ですので、ちょっとでも爪痕を残すべく、どのように開発したのか、どのように運用してきているのかを残しておこうと思います。

# リプランボットとは
リプランボットはツイートに

元記事を表示

Red Hat OpenShift Service on AWSのPersistentVolumeとしてAmazon FSx for NetApp ONTAPを使ってみた(ROSAクラスタのデプロイ編)

# はじめに
– Red Hat社が提供するKubernetesのディストリビューションとして、エンタープライズな領域を中心によく使われている印象がある(やっぱ保守受けたいですよね、わかります)、Red Hat OpenShift Container Platform(OCP)。
– そのOCPの、AWSによるマネージドサービスがRed Hat OpenShift Service on AWS(ROSA)。
– その[ROSAとAmazon FSx for NetApp ONTAP(FSx for ONTAP)との統合について紹介されているAWSブログ](https://aws.amazon.com/jp/blogs/news/scaling-container-workloads-with-shared-storage-for-red-hat-openshift-service-on-aws/)を読んで、興味が湧いてきたので自分でも試してみました。
– ちなみにOpenShift自体は少し触れたことがありますが、ROSA自体に触れるは全くの初めてです。
– 長くなりそうなので2回に分

元記事を表示

AWSのS3のGlueとAthenaで色々やった話

クラウドの進化はエンジニアにとってはとてもありがたいです。今までは全部自分達で構築していたものをクラウドで機能を組み合わせる事でシステムを実現できる。
特にAWSさんのお陰でシステム連携がとても便利になりました。
今回は、AWSのS3のGlueとAthenaで色々やった話です。

# 要件
– POSデータを外部から当システムに取り込みデータを反映させたい
– 即時性はいらない
– データは新規のみ
– 定期実行でよい
– 既存システムには影響を書けたくない(外で構築)
– データ量は大きい

# 実現方法
色々と方法はあると思いますが、やったのは、こちら

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986486/7349f772-b2bc-f3e9-e47e-b867ca951e47.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986486/19807d1e-35f

元記事を表示

Elastic Network Interfaceが削除できない

# 課題
Elastic Network Interface(ENI) が削除できない

■削除できない表示
![2023-02-06_084220.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2292878/70b42c83-984b-628d-4df4-8959e9ecfa88.jpeg)

# 解決方法
1. まず説明をきちんと読む・・・・
 (CloudFormation 利用時に見に覚えがないサービスが一緒に展開されていたりする)

■赤枠が説明書きがある箇所
![2023-02-06_08445202.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2292878/e356ba65-255f-25b3-386c-10dfe921d0e7.jpeg)

2. 対象となるサービスを削除
 EFSの削除後、ENIも一緒に削除されていた

■何故か利用されてたEFS
![2023-02-06_085251.jpg](

元記事を表示

これだけは絶対やって!AWSの利用料をメールで通知して使いすぎを防止!!

## 予算の作成

### 予算1:無料利用枠を超えたら通知

**$0.01でも費用が発生したら** メールで通知します。

1. マネジメントコンソールを開きます

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/df2ff52a-f6cd-6cc6-9fa9-1d3cd6b4acdb.png)

1. `badgets`で検索し、`AWS Budgets`を選択します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/ca9fd300-b9b6-23ee-3b16-c28d2adade14.png)

1. `予算の作成`ボタンをクリックします

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/3ea53309-f

元記事を表示

Presigned URL を用いた S3 multipart upload を行う (by JavaScript + Python Chalice)

# 問題

AWS S3 によって Presigned URL を発行すれば、サーバーに直接ファイルをアップロードせずとも、S3 に対して直接ファイルをアップロードできる。
しかし、1回のリクエストでアップロードできる最大ファイルサイズは 5GB であり、それ以上のファイルをアップロードするためにはマルチパートアップロードによって分割アップロードを行う必要がある。
ここでは、ブラウザ側に Credential を発行することなく、サーバー側で発行された Presigned URL を利用してファイルをマルチパートアップロードする方法についてを記す。

# プロジェクト全体

プロジェクト全体で利用するソースコードを以下で公開している。
今回は、サーバーサイドは [AWS Chalice (Python)](https://aws.github.io/chalice/) で、クライアントサイドでは JavaScript を Webpack でビルドしたものを利用している。

https://github.com/t-kigi/s3-multipart-uploads-with-chal

元記事を表示

REST APIでDynamoDBのテーブルを操作

## 概要
REST APIでAWS上のDynamoDBのテーブル操作を行う方法を記載
CURLでAPI GatewayにデプロイしたAPIを叩いてDynamoDBと通信

## 目次
1. REST APIとは
1. DynamoDBのテーブルを作成
1. ロールの作成
1. Lambda関数を作成
1. API GatewayでAPIをデプロイ
1. CURLによる動作確認

## 1. REST APIとは
REST APIは、REST(Representational State Transfer)の原則に基づいて設計されたAPIのことを指し、HTTP通信によって、データの作成/読み取り/更新/削除の機能を実行できます。要求されたリソースに関する情報を提供し、以下の4つのメソッドを使用してリソースの処理方法を記述します。
GET:リソースを取得
POST:リソースを作成
PUT:リソースを更新
DELETE:リソースを削除
また、リソースを様々な形式(HTML/XML/JSON/バイナリ)で表現できるようになっています。

## 2. DynamoDBのテーブルを作成
一連の手

元記事を表示

OTHERカテゴリの最新記事