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

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

オンプレでやってきた設計の考え方はAWSでも活かせる

# 内容
オンプレで設計する場合とAWSで設計する場合は当然、実装方法は異なりますが考える切り口は同じかと思います。そう考えると今までAWSをやったことがなくても、オンプレの経験があればスムーズに入っていけるんではないか、というのがこの記事の全体的な内容となっております。

# 例
シンプルに下記仮想サーバを1台だけ構築する場合を考えます。
※単純にするためネットワークの部分は省きます。

![vm.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523652/4b0688ea-1409-d943-db9a-2232d11d47e2.png)

# 要件を考える

非機能要件の可用性の箇所を考えてみると
考えるポイントはオンプレの時とあまりかわりませんね。

* 壊れることをどう検知するか
* サーバが壊れたらどうするか
* 壊れたあと復旧をどうするか
* DRをどうするか
* (シングル構成としているので冗長化は考えていない)

## 補足

上記は超ざっくり記載しているだけで業務では[非機能要求グレ

元記事を表示

【AWS】AWSome Day Online Conference20221102へ参加してみた(20230107更新)

# 最初に

### AWSome Day Online Conferenceとは何か
 3 時間(14時~17時)でAWS クラウドに関する基礎知識を学ぶ無償のオンラインイベント

### なぜ筆者がAWSome Day Online Conference(以下オンラインセミナー)を受けようと思ったのか
 ・AWS認定クラウドプラクティショナー試験を受ける前の復習
 ・オンラインセミナー参加後に割引バウチャーが貰えるという情報を得たため
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2931022/a323ecb0-7657-67a8-df93-450847920c93.png)
↑試験を受ける前に試験範囲の調査をしていたところ上記の文を発見
どの位割引されるのかは調査せず、結果を楽しみにしておきながら受講する事に決めた

 先日届いたが100%割引バウチャーだった。
 次回の情報などは以下の公式ページに公開されるそうだが、2022年は残念ながら終了となっている
 次回開催が決定次第、

元記事を表示

クラウドサービス(AWS)周りの用語について簡潔にまとめてみた

#### 本記事について
この記事は、AWS関連の公式資料を読んでもすぐに理解できない初心者向けの記事です。
インターネットで検索しても簡潔にまとめているサイトが見つからなかったのでそういう方の助けになればと思いまとめました

**本記事で扱う用語は以下**
・オンプレミス
・クラウドサービス
・リージョン
・AZ(アベイラビリティゾーン)
・Route 53
・IAM(ユーザ、グループ、ロール)
・EC2(Elastic Compute Cloud)
・S3 (Simple Storage Service)
・セキュリティグループ
・ネットワークアクセスリスト
・CloudWatch
・マネージドサービス

#### オンプレミス
サーバー機器やネットワーク機器などを使用者の管理する施設内に設置して運用する形態
データセンターなどに自前でサーバ機器を用意し設定もする環境

#### クラウドサービス
オンライン上のサーバーで提供されているシステムをサービスとして利用者に提供する形態
主にコスト面でオンプレミスより優れている。機器導入やデータセンターの契約など不要

#### リー

元記事を表示

Elastic Beanstalkのワーカー環境のPythonサンプル

# はじめに

以前、Elastic Beanstalkのワーカー環境だけ作る方法を記事にしました。

https://qiita.com/a_b_/items/3b49c5dd582dd13b8f04

その際用意できなかったサンプルコードを作成しましたので記事にしました。

# コード

以下のサンプルを拝借して作りました。

https://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/GettingStarted.DeployApp.html

`python.zip`を解凍してコードを少し書き換えます。`welcome`の中身を空文字にしただけです。

“`python:application.py
import logging.handlers

# Create logger
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)

# Handler
LOG_FILE = ‘/tmp/sample-app.log’
handler

元記事を表示

AWS クラウドオプティショナー(CLF)勉強方法

## 始めに
普段はWebアプリケーションの開発をメインに活動しています。
AWSインフラのことも詳しくなりたいと思い、AWSの資格を取ることに至りました。

__自分のインフラスペック、インフラ経験値(2023年1月時点)__
 AWS Linux環境での基本操作可能
 AWS S3から画像、ファイルを取得する程度の開発経験

## 期間
期間は、4週間ほどかかりました。
毎日の勉強時間は、平均30分程度だと思います。

## 使用した教材(3つ)

__・教科書「AWS認定資格試験テキスト AWS認定 クラウドプラクティショナー」__

https://www.amazon.co.jp/AWS%E8%AA%8D%E5%AE%9A%E8%B3%87%E6%A0%BC%E8%A9%A6%E9%A8%93%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88-AWS%E8%AA%8D%E5%AE%9A-%E3%82%AF%E3%83%A9%E3%82%A6%E3%83%89%E3%83%97%E3%83%A9%E3%82%AF%E3%83%86%E3%82%A3%E3%

元記事を表示

『AWS 基礎からのネットワーク&サーバー構築』でエンジニア1年目がつまずいたポイント集

# 概要
[Amazon Web Services 基礎からのネットワーク&サーバー構築 改訂3版](https://www.amazon.co.jp/Amazon-Web-Services-%E5%9F%BA%E7%A4%8E%E3%81%8B%E3%82%89%E3%81%AE%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%EF%BC%86%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E6%A7%8B%E7%AF%89-%E6%94%B9%E8%A8%823%E7%89%88-%E5%A4%A7%E6%BE%A4-ebook/dp/B084QQ7TCF “Amazonストアページ”)
を読んでいてつまずいた部分をまとめていきます。随時追加していきます。

# [pp.126] WebブラウザからApacheインストール済みEC2へのhttp接続テストに失敗する
## 課題
Appacheをインストールし、Webサーバーとして機能するEC2に画像のハイパーリンクからアクセスしようとしたところタイ

元記事を表示

AWS CDK トラブルシューティング

# ① 

## 問題①

以前動作していたコードがエラーになるのは通常、AWS Construct ライブラリモジュールのバージョンが一致しない場合の症状です。

AWS Construct ライブラリを構成するすべてのモジュールは、一致しているセットとして提供されます。すべての AWS Construct ライブラリモジュールが同じバージョンであり、最新であることを確認すると、ほとんどのエラーフラグが解消されます。

## 解決策①
インストールされているすべての AWS Construct ライブラリモジュールのバージョンを確認するには、ターミナルウィンドウで `npm outdated` コマンドを実行します。(古くなったバージョンのみを表示)

“`
npm outdated

Package Current Wanted Latest Location Depended by
@aws-cdk/aws-apigateway 1.191.0 1.192.0 1.19

元記事を表示

CloudFormation の 擬似パラメータについて整理しよう

`AWS::AccountId`
`AWS::NoValue`
`AWS::Region`
は個人的によく使う。

# AWS::AccountId

`123456789012` のように、AWSアカウントが返される。

# AWS::NoValue

組み込み関数 `!If` の戻り値として指定すると、対応するリソースのプロパティを削除します。

次の例では、`IsBurstType` が
`true` の場合は、`CPUCredits: standard` を返し、
`false`の場合は、`CreditSpecification` を削除します。

“`yaml
AWSTemplateFormatVersion: “2010-09-09”
Parameters:
IsBurstType:
Type: String
AllowedValues: [‘true’, ‘false’]

Conditions:
IsBurstType:
Fn::Equals: [‘true’, !Ref IsBurstType]

Resources:
EC2

元記事を表示

国産iPaaS(HULFT Square)を使ってChatGTPにAWSのエラー原因を教えてもらったらこうなった

こんにちは。γ-GTPの値が高いsugimon:grinning:です。
今日は話題のChatGTPのWebAPIをHULFT Square(iPaaS)から呼んでみようと思います。

まず設定手順ですが下記のような流れでやってみました。
1)OpenAIのアカウント取得
2)OpenAIのAPI Keys取得
3)API Referenceの確認
4)事前準備
5)HULFT Squareスクリプト作成

## 1)OpenAIのアカウント取得
こちらのURLのSIGN UPからIDを作りました
https://openai.com/api/

## 2)OpenAIのAPI Keys取得
アカウント取得後、下記のページでAPIを発行しました。
https://platform.openai.com/account/api-keys

元記事を表示

AWS Cost ExplorerのAPIで1日ごとのサービスの料金を取得する

# はじめに
本記事は「こんなことやってみた」的な記事となります。

# やること
AWSのCost ExplorerのAPIに、Pythonで問い合わせを行い、その結果をSlackに通知します。
通知する内容は、1週間の1日ごとのサービスの料金になります。
Lambdaで動かすことを想定してプログラムを書いてみました。(自分はPython初心者です。コードの書き方などについては多めに見ていただけると幸いです)

## 通知される結果(文章)
先に通知される結果の文章を共有します。ご興味ある方は続きを読んでいただければと思います。
※単位はUSDとなっております。
### ターミナル
“`text
###############################
### 2023-02-03 – 2023-02-10 ###
###############################
SERVICE_NAME 2023-02-03 2023-02-04 2023-02-05 2023-02-06 2023-02-07 2023-02-08 2023-02-09
AWS Lambd

元記事を表示

AWS Systems Manager Automationで単一アカウントの複数リージョンEC2へAutomationを実行する

# はじめに

カジキさんは運用でSystems Manager(以下SSM) AutomationでS3上に置いたスクリプトをEC2上で実行しています。これを複数リージョンEC2で同時に処理を実行させるような環境の構築が必要になったため、Automationを使って実装してみました。

# 設計

複数リージョンでのAutomationに関する設定方法は下記の公式ドキュメントにありますが、

[Running automations in multiple AWS Regions and accounts \- AWS Systems Manager](https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/running-automations-multiple-accounts-regions.html#setup-management-account-iam-roles)

ちょっとわかりにくいので補足です。

SSMのAutomationは、単一リージョン内での実行の場合は、要求をSubmitするI

元記事を表示

[AWS SAM]LambdaでScrapyクローラーを定期実行させる

[AWS SAM(AWS サーバーレスアプリケーションモデル)](https://aws.amazon.com/jp/serverless/sam/)を使ってサーバーレスなクローラーを作り、定期実行させて結果をS3に保存することができたので、やり方をまとめておきます。
なお、Lambdaは最大でも15分の処理しか実行できないため、小さめなクローラーを想定しています。

以下の3ステップで実装します。

1. [SAMのHello Worldチュートリアル](https://docs.aws.amazon.com/ja_jp/serverless-application-model/latest/developerguide/serverless-getting-started-hello-world.html)をやる
1. `template.yaml`, `requirements.txt`などを修正する
1. `app.py`にクローラーを実装する

## SAMのHello Worldチュートリアルをやる

ここは公式チュートリアルで詳細に説明されているので省略します。
これをや

元記事を表示

【AWS】ロードバランサーの設定【EC2】

サイトをHTTPS化するため、ACMで証明書を取った。ALBの設定が必要。
アプリケーションロードバランサー(ALB)の作成方法を自分用に記録。

東京リージョンにする。
サービスからEC2をクリックし、EC2ページに遷移する。

左にあるサイドメニューからロードバランシング配下「ロードバランサー」をクリック。
S3 バケットのバージョニング は有効化すべきなのか

こんにちは。パエリアです。

今回は AWS 利用者ならほぼ100%利用しているであろう S3 の機能であるバージョニングについての考察をしていきます。

>Amazon S3 のバージョニングとは、同じバケット内でオブジェクトの複数のバリアントを保持する手段のことです。S3 のバージョニング機能を使用すると、バケットに保存されたすべてのオブジェクトのすべてのバージョンを、保存、取得、復元することができます。バージョニングを使用すれば、意図しないユーザーアクションからもアプリケーション障害からも、より簡単に復旧できます。

[AWSドキュメント:S3 バケットでのバージョニングの使用](https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/Versioning.html)

### 結論としてはバージョニングは有効化すると良いと思います。

以下の点について、それぞれ考えていきます。

[1.耐障害性(フォールトトレランス)](#1-耐障害性フォールトトレランス)
[2.AWS ベストプラクティス](#2-aws-ベス

元記事を表示

S3バケットのバケットポリシーで設定すべき項目

# はじめに
S3のバケットポリシーについて、一般的に設定しておくべきことを記載していきます。

# 概要
基本的に以下を必要に応じて設定しておくべきです。

| # | バケットポリシー概要 | 利用ケース |
| — | — | — |
| 1 | HTTPS通信以外の拒否 | 基本的に入れておいてよい。HTTP通信を利用するケースは少ないが、明示的に指定しておくことで非暗号化通信の場合リクエストを拒否できる。 |
| 2 | 暗号化を指定しない場合のオブジェクトのアップロードの拒否 | 基本的に入れておいてよいが、KMSかSSE-S3かなどアップロード元の対応状況に依存するため注意。|
| 3 | 暗号化を指定しない場合のオブジェクトのアップロードの拒否 | 基本的に入れておいてよいが、KMSかSSE-S3かなどアップロード元の対応状況に依存するため注意。 |
| 4 | 特定のVPCエンドポイント以外からの通信拒否 | VPCからの通信のみであれば入れておくことを推奨 |
| 5 | 各種AWSサービスが要求するポリシー | 忘れがちだが、各種AWSサービスからのロ

元記事を表示

Configルールに準拠していないと、自動で修正する関数を2つ作成してみた

## はじめに
Lambdaの勉強もかねて、表題のような自動化を試してみました。
作成した処理は以下となります。

①特定のタグがアタッチされていないと、自動でそのタグをアタッチする処理
➁特定のIAMロールがアタッチされていないと、自動でそのIAMロールをアタッチする処理

## 手順
本処理のフローとしては
①Configでルール検知
➁SSM AutomationでLambdaに処理を渡す
③Lambdaで処理を実施

となります。
順番に設定していきます。
※ConfigとSSM Automationについては概要レベルの説明になります。

## configの設定
まずConfigの設定をしていきます。
今回はセットアップが終わっている前提で話を進めます。

##### ルールの設定
Configには、AWSマネージドルールが存在し、今回はそちらを使用することになります。
※下はタグ付けのルールを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2666121/7c5a1a3

元記事を表示

AWS SAMのLambdaでS3へのPut権限をつける

AWS SAMでLambdaの構築が便利になったものの、`Hello World Example`で作成されるテンプレにはS3の権限がついていません。

https://docs.aws.amazon.com/ja_jp/serverless-application-model/latest/developerguide/serverless-getting-started-hello-world.html

なので、S3にオブジェクトを読み書きさせたいときには、下のように`template.yaml`を編集して権限をつける必要があります。

“`diff_yaml
Globals:
Function:
Timeout: 3
MemorySize: 1000

+Parameters:
+ S3BucketName:
+ Type: String
+ Default: “アクセスしたいバケット名”

Resources:
HelloWorldFunction:
Type: AWS::Serverless::Function
Pro

元記事を表示

【Railsアプリケーション】Heroku、AWS S3、Active Storageの設定

# はじめに

Railsなどを中心に勉強中のエンジニア初心者が他の記事を参考にしたり、実際に実装してみたりして、アウトプットの一環としてまとめたものです。
間違っていることもあると思われるので、その際は指摘いただけると幸いです。

# Heroku上でアプリケーションを稼働させる

Railsアプリケーションでアップロードした画像がAWS S3に保存されるように設定し、そのアプリケーションをHeroku上で本番稼働させる想定で記載する。

`Active Storage`の実行環境、AWSのアカウント情報、およびS3のバケット作成などは済んでいる前提で記載する。

# `storage.yml`の編集

設定ファイルにAWSのアカウント情報および、S3のバケット情報を記載する。

### ※AWSのアカウント情報やS3のバケット情報などについては、セキュリティ的な観点から環境変数に持たせて読み込むようにする。

### `config/storage.yml`

“`yaml
# Use rails credentials:edit to set the AWS secrets (

元記事を表示

VPC作って、インターネットゲートウェイとNATゲートウェイを配置する

# はじめに
AWS SOAのラボ試験対策で行った内容を備忘録として投稿します。
だいぶ初歩的な内容です。

# 構成
今回は以下の構成を作っていきます。
![タイトルなし.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2844260/71df05aa-251b-f5cb-b7f2-8e3674411e28.png)

# VPCを作成する

1. VPCのコンソールに入り、「VPCを作成」をクリックする
![WS000000.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2844260/c989c731-69f3-7a9f-a111-fd70ddb45f26.jpeg)

1. VPCの設定をしたら、「VPCを作成」をクリックする
作成するリソースを「VPCなど」にすると一気にいろいろ作れるが、今回は練習なので「VPCのみ」で作成
* 名前 → my-vpc
* IPv4CIDR → 10.0.0.0/

元記事を表示

NLBのNW要件を検証してみる

# やりたいこと

ふとしたきっかけで、AWSのドキュメントで気になる部分があり、CDKの練習を含んで検証してみようと思いました。
その部分とは、NLB(Network LoadBalancer)の[ホワイトペーパー](https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/network/network-load-balancers.html)のこの部分です。

> 要件
> * インターネット向けロードバランサーの場合、指定するサブネットには最低 8 個の利用可能な IP アドレスが必要です。内部ロードバランサーの場合は、 AWS がサブネットからプライベート IPv4 アドレスを選択する場合にのみ必要です。
>
> * 制約のあるアベイラビリティーゾーンにあるサブネットを指定することはできません。エラーメッセージは、「’network’ タイプを使用したロードバランサーは az_name でサポートされていません」です。制約されていない別のアベイラビリティーゾーンにあるサブネットを指定し、クロスゾーン負荷分散を

元記事を表示

OTHERカテゴリの最新記事