- 1. awsコスト管理画面でEC2 otherってナニ?
- 2. 新年はAWSかるたで遊ぼう!!
- 3. CloudFormationで文字列と変数を連結する方法(Fn::Join or Fn::Sub)
- 4. AWS LambdaでTypeScriptのコードを動かす最小の構成 with AWS SAM
- 5. AWS EC2のRHEL9にTeraTerm4からログインする
- 6. 【小ネタ】Lambda の Dockerイメージをコードから作成した話
- 7. AWSまとめ
- 8. AWS認定資格12冠を全て一発でとった時の勉強法と取得のススメ
- 9. Capistranoを使った自動デプロイで詰まった話 (Your bundle only supports…)
- 10. MinecraftサーバをAWSで立ててみた #3
- 11. AWS Pricing CalculatorのCSV出力文字化け問題を回避する
- 12. AWS CDK – Node.js 18 TypeScript での Lambda 実装
- 13. Databricks on AWSで数百Gのファイルからテーブルを作成しようとすると発生することのあるエラーとその対策
- 14. AWS CodeStarのDjangoプロジェクトでgunicorn再起動設定
- 15. EC2にデプロイしたLaravelからRDS (SQL Server)へ接続する
- 16. Glueのジョブのモニタリングとデバッグ(OOM例外とジョブの異常のデバッグ-Driver)を試してみた
- 17. Session Manager をローカルから利用するときに、セキュアな環境にするときの考慮点
- 18. 【AWS】AWS12冠達成をして考える、アプリエンジニアのAWS資格優先順(案)
- 19. 【AWS CDK】高権限ロールの利用通知をカスタム Construct 化してみた
- 20. AWS CLI で MFA を有効化してみた
awsコスト管理画面でEC2 otherってナニ?
## 初めに
※2022/12/31現在のaws const Explorerの画面での説明です。
awsを使い始めの頃、動画や書籍を見ながらネットワークを構築していると次の日の朝になぜか料金が発生していたりする。
コスト管理画面を見るとEC2 otherで数ドル発生しているが、otherって何だよ!となってサービスを全て止める←(自分だけ?)
そんな人(自分)を対象とした記事です。**この記事でわかること**
コスト管理画面でEC2 otherの詳細情報の見方## 手順
1. aws Cost Explorer を開く
2. 「Cost Explorerで表示」を押す
![スクリーンショット 2022-12-31 10.45.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/880800/db6f751d-b585-769d-5eb0-e0c73705f0cb.png)
3. このままでは詳細がわからないので
右側の「グループ化の条件」から「使用量タイプ」を選択
![スクリーンショット 2
新年はAWSかるたで遊ぼう!!
新年に間に合いました!**AWSかるた**を作成しました!!
AWSのサービス説明とアイコンを頼りにサービス名を当てください。[AWSかるた](https://moritalous.pages.dev/aws-karuta)
https://moritalous.pages.dev/aws-karuta
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/0d51a2e8-c91a-ff94-40f3-1cc7197204c5.png)
かるたは楽しく遊んでいただくとして、作成するにあたって使用した技術要素を紹介します。
## Webサイト構築フレームワーク「Docusaurus」
個人ブログをDocusaurusで構築しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/7ac45d86-7d8a-d9a0-8abc-95d4e9dba11f.pn
CloudFormationで文字列と変数を連結する方法(Fn::Join or Fn::Sub)
# 目的
クラウドフォーメーションで定義したリソースの戻り値を用いることが多々あるかと思います。
「文字列+リソースの戻り値」みたいにしたい場合に覚えておくと便利な記述方法になります。例えば、ECSのコンテナ定義でドッカーイメージを定義する際、ECRのリポジトリのURIが必要になります。
連結方法には「Fn::Join」と「Fn::Sub」の2種類があります。それぞれのパターンを示します。# Fn::Join
“`yml
############### ECR ###############
myEcr:
Type: AWS::ECR::Repository
Properties:
RepositoryName: myRepository
EncryptionConfiguration:
EncryptionType: KMS############### ECS ###############
myTaskDefinition:
Type: AWS::ECS::TaskDefinition
AWS LambdaでTypeScriptのコードを動かす最小の構成 with AWS SAM
# はじめに
AWS Lambdaってお手軽に使えるんでしょ?と思いながら簡単なLambdaを書いたのですが、初心者の私はTypeScriptの知識もないために、デプロイするまでが難しかったです。
AWS SAM CLIを使ってテンプレートから作成するとゴチャゴチャしていて分かりにくいと感じたので、Lambdaとして実行するための必要最小限の構成を手動で作る手順を残しておきます。
# 開発環境
– Windows 10
– Git bash
– Node v16.18.1 / npm 8.19.2
– aws-cli/2.9.9 Python/3.9.11 Windows/10 exe/AMD64 prompt/off
– SAM CLI, version 1.67.0# 基本的なセットアップ
SAMでは `$ sam init` で対話型でテンプレートからプロジェクトを生成することが可能ですが、今回は使わずに一からプロジェクトを作ります。
ちなみに、Windows版のAWS SAM CLIをインストールすると、bashで `$ sam` を使うためにはひと工夫必要でし
AWS EC2のRHEL9にTeraTerm4からログインする
# 突然EC2にログインできなくなった??
普段通りEC2を起動してTeraterm(バージョン4.106)からログインしようとしたところ、ある日突然以下の画面になってアクセスできなくなった・・・
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/820066/4d047b0c-ccc4-08d3-2346-2f3bd7bd377e.png)
# ググってみた結果・・・
ssh-rsaのアルゴリズムがteratermだとSHA-1で、どうやらRHEL9からはSHA-1でのアクセスがNGになっているみたいです。
参考記事:
[セキュリティーが強化された最新版のRed Hat Enterprise Linux 9 – 日経クロステック](https://xtech.nikkei.com/atcl/nxt/column/18/02195/091300005/)
[OpenSSHがSHA-1を使用したRSA署名を廃止 – Nulab](https://nulab.com/ja/bl
【小ネタ】Lambda の Dockerイメージをコードから作成した話
# はじめに
[Releaseタグ作成からEKSへのデプロイを自動化した話](https://qiita.com/ijufumi/items/c8c54c2295baf04113b2) でやった内容のうち、 `Lambda` に焦点を当てた内容です。
載せているコードは一部だけなので、全体を見たい方は上記の記事から辿ってください。
# 環境
* `Kubernetes`: `1.24`
* `AWS CDK for Golang`: `v2.56.1`# やったこと
## Lambda用のコードを準備
`lambda` ディレクトリに、必要なファイルを用意します。
`Dockerfile` のみ載せています。
他は、`Github` リポジトリを参照。* `Dockerfile`
“`Dockerfile
FROM public.ecr.aws/lambda/python:3.9COPY . ${LAMBDA_TASK_ROOT}
COPY requirements.txt .
RUN pip install –upgrade pip && pip3
AWSまとめ
# はじめに
**IT未経験の方が初めて見た際に、AWS全体像を理解できる**ことを想定して、
作成いたしました。
当方がIT関連記事作成が初経験であり、拙い日本語になっていることご容赦ください。
あくまで自分のアウトプット用として活用予定です。##### コンテンツ
– AWSとは?
– EC2基本
– Linuxサーバーとは?
– AWS VPCとは?
– ネットワーク基本# AWSとは?
##### オンプレミスとクラウドサービスの違い
AWS(Amazon Web Service)はクラウドサービスの一種で、開発に必要な様々なサービスを提供します。
従来、開発に必要なITリソース各企業がITリソースを保有し、保守運用をしていました。
しかしこの方法では、以下もケアする必要があり、企業が本来注力する内容に工数をさけません。– サーバーの導入や撤去
– データセンターの管理、などクラウドサービスとは、上記オンプレミスと異なり、各企業がITリソースを保有することなく、インターネット経由で利用できる仕組みのことを指します。
![スクリーンショット 2022-05-16
AWS認定資格12冠を全て一発でとった時の勉強法と取得のススメ
# はじめに
今年AWSの資格12冠を制覇しました。長らく書いていなかったですが、年末ということで書き連ねていきます。短い道のりではなかったですが、結果すべて一発で取得することができたので、おすすめの勉強方法や試験取得の感想とかを書こうかと。11冠の時書いた記事の更新版です。
https://qiita.com/Regryp/items/e91cb2a15b55f0551969
# 前提
職業:AWSメインのクラウド基盤のエンジニア。たまにAzure、GCPも。(一応どちらもPro相当の資格を保持しています。)パブクラへの移行に関するコンサル、基盤設計、構築など色々やってます。
一応Top Engineers(Service)、ALL Certificate Engineers(昨年11資格を取得したので)に認定されてます。# AWSの試験について
以下に資格に関する説明が記載されています。
https://aws.amazon.com/jp/certification/exams/
基礎コース、アソシエイト、プロフェッショナル、専門性の4ジャンルに別れ
AWSに関する知識
Capistranoを使った自動デプロイで詰まった話 (Your bundle only supports…)
こんにちは、しほです。
Qiita初投稿。Railsで作ったポートフォリオをCapistranoで自動デプロイしようとして詰まった話でございます。
# 環境
Rails 6.1.6
# 背景
こちらの記事を参考に、AWS EC2への自動デプロイ を実装しようとしていました。
https://pikawaka.com/rails/capistranoCapistranoとかのインストールをしたり、NginxやUnicornの設定をした後、最後に以下の自動デプロイ コマンドを打ってみると
“`
bundle exec cap production deploy
“`
**「Your bundle only supports platforms [“x86_64-darwin-19”]・・・」**
とエラーが発生して進めない。困った。# 解決にいたるまで
1. とりあえずぐぐる。このあたりの記事を見て、なんかBundlerがうまくいかないんだなーということを考えた。
https://autovice.jp/articles/1502\. エラーログに指示のあった以
MinecraftサーバをAWSで立ててみた #3
# はじめに
この記事は [MinecraftサーバをAWSで立ててみた](https://qiita.com/tonomin/items/de6eb87857fb7abc1d24) の第3回の記事となります。前回CDK化を実施したので、今回は現時点でのMinecraft ServerについてのAWS上でのインフラ設計についてまとめてみます。
# 目次
1. [構成図](#Chapter1)
1. [Minecraft Serverのインフラ設計詳細](#Chapter2)
1. [ソースコード](#Chapter2)
1. [参考文献](#reference)
# 全体構成図
まずは何度も出てきていますが、インフラ全体の構成です。![minecraft_server.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1340134/9e
AWS Pricing CalculatorのCSV出力文字化け問題を回避する
AWS Pricing Calculator
https://calculator.aws/を使ってるとCSV出力で文字が化けることがある。説明文をたくさん入れるなどしているとどこかでおかしくなる。単にUTF8のBOMの問題ではなく、バックスペースなどの制御コードまで入ってるから日本語以前にファイルが壊れる。発生条件はいまいち分かってないけど、フロントエンドでCSVを作成しているところでおかしくなってると推測。
じゃぁってことで画面上をJSでスクレイピングして、そのままタブ区切りテキストトとして出力する。
### 回避策のJS
以下がソース。このソースをdeveloper.toolsのconsoleに貼り付けて実行すると、タブ区切りテキストがconsoleに出力されるので、これをまたエクセルにコピペする。
“`sample.js
let lines = [];
$$(‘[role=table] tr’).forEach((row)=>{
let cols = [];
row.querySelectorAll(‘th,td’).forEach((td)=>
AWS CDK – Node.js 18 TypeScript での Lambda 実装
# 前提条件
– IaC は CDK(CDK v2)
– Lambda のランタイムは Node.js 18(拡張子は.mjs)
– Lambda の実装は TypeScript(AWS SDK for JavaScript v3)# ファイル 構成
`cdk init`で自動生成される構成から多少変更している。
[実践!AWS CDK #7 ファイル分割](https://dev.classmethod.jp/articles/cdk-practice-7-split-file/)を参考に、AWS リソースごとにリソース定義ファイルを分割している。
Lambda のコンパイル用に別途`tsconfig.json`を用意する。“`
├─ src/
│ ├─ lib/
│ │ ├─ api-gateway/
│ │ │ ├─ handlers/
│ │ │ │ └─ sample-api/
│ │ │ │ └─ index.ts // Lambdaコード
Databricks on AWSで数百Gのファイルからテーブルを作成しようとすると発生することのあるエラーとその対策
ローカルファイルシステムからDBFSへの大容量ファイルのアップロードや大容量ファイルからテーブルを作成する際に、以下のようなエラーが発生することがあります。
> Part number must be an integer between 1 and 10000, inclusive
パートの数は1から10000でなくてはなりません。と、これだけですと切り分けが難しいですよね。
以下のナレッジベースに詳細な説明と対策方法の記載があります。
https://kb.databricks.com/cloud/s3-part-number-limit.html
**原因**
これはS3におけるセグメント数の制限です。分割されたファイルは1から10000の個数でなくてはなりません。**対策**
この例外の発生を防ぐには、それぞれのパートファイルのサイズを増やしてください。1. クラスターの[Spark設定](https://docs.databricks.com/clusters/configure.html#spark-configuration)の以下のプロパティを設定して
AWS CodeStarのDjangoプロジェクトでgunicorn再起動設定
AWS CodeStarで作成したDjangoプロジェクトが初期設定のままだとEC2インスタンスを再起動した時に自動でgunicornが起動しないので起動するように設定変更
### supervisod.confを修正
パスを変更
“`
[program:djangoproject]
command = /home/ec2-user/environment/bin/gunicorn -b 0.0.0.0:80 ec2django.wsgi
“`### サービス化するファイルを作成
djangoはお好きな名前に変更
“`
sudo vi /etc/init.d/django
“`
“`
#!/bin/sh
# chkconfig: 2345 99 10
# description: start django
# processname: djangostart() {
echo “start”
source /home/ec2-user/environment/bin/activate
export LD_LIBRARY_PA
EC2にデプロイしたLaravelからRDS (SQL Server)へ接続する
# はじめに(前提条件)
この記事では、AWS上でRDS (SQL Server)を作成し、EC2インスタンスからマイグレーションが成功することを目標とします。
そのためEC2でのLaravelアプリのデプロイは完了しているものとします。Webサーバはnginxを使用しています。
# RDSのDBインスタンス設定
## データベースの作成
それではまずデータベースを作成します。
公式サイトに手順が分かりやすく載っていたのでそちらに沿って作っていきます。
SSMSからの接続まで説明されているのでせっかくなので接続できるか確認しておきましょう。https://aws.amazon.com/jp/getting-started/hands-on/create-microsoft-sql-db/
## セキュリティグループの設定
次に、EC2からアクセスするために必要な設定をします。
先程作成したDBインスタンスのページを開き、「接続とセキュリティ」タブからVPCセキュリティグループの
リンクをクリック
![image.png](https://qiita-image-store.s3
Glueのジョブのモニタリングとデバッグ(OOM例外とジョブの異常のデバッグ-Driver)を試してみた
# 背景・目的
Glueでエラー時のデバッグと対応を試してみます。
本ページは、ドキュメントの「[OOM 例外とジョブの異常のデバッグ](https://docs.aws.amazon.com/ja_jp/glue/latest/dg/monitor-profile-debug-oom-abnormalities.html)」を元に実践してみます。# まとめ
多くのファイルを扱う場合、それぞれタスクごとにアサインされ、それらのタスクをトレースするためにDriverで多くのメモリを使用します。
(Driverのメモリの仕様状況は、Glueの画面で確認ができます。)
多くのファイルを取り扱うことでDriverのメモリの使用率が高くなっている場合には、読み込むファイルをグループ化する。
これにより、メモリ使用率が下がる可能性があります。# 実装
## ドライバー OOM 例外のデバッグ
本シナリオは、Sparkジョブで多数の小さいファイルを読み込んだ際に、Sparkドライバのメモリ不足によるエラーが発生するシナリオを試します。
S3上の100万ファイルを読み込み、書き出すだけのプログ
Session Manager をローカルから利用するときに、セキュアな環境にするときの考慮点
# はじめに
EC2 インスタンスや、Systems Manager で管理しているオンプレミスのマシンにリモートアクセスができる Session Manager という機能があります。従来は踏み台サーバーを使ってリモートアクセスを実現していたことが多かったと思いますが、踏み台サーバー自体に Public IP を持たせている場合はセキュリティ的にちょっときになります。こういった課題感をマネージドサービスで解決するのが、Session Manager という機能です。具体的な使い方は[こちらの記事で検証](https://qiita.com/sugimount-a/items/d9ac9427bdc01e05770f)をしました。
ただ、これでもセキュリティ的に気になる点はまだあります。ラップトップに AWS CLI を入れてリモートアクセスする構成を考えたときに、ラップトップに格納するアクセスキー・シークレットキーの取り扱いが気になります。仮に、大きな権限を持たせたアクセスキーが漏洩してしまったときに大変なことになるので、適切な管理が必要です。
この「適切な管理」で対処した方が
【AWS】AWS12冠達成をして考える、アプリエンジニアのAWS資格優先順(案)
# はじめに
先日でAWS全12資格を全て取得でき、12冠達成できました。
特にSAPからProfessional資格、Speciality資格を1年以内に取りきれたので頑張ったなぁと思います。| 合格日 | 資格名 | スコア |
|:-:|:-:|:-:|
|2019-09-14|CLF-C01_AWS Certified Cloud Practitioner|874|
|2019-10-20|SAA-C01_AWS Certified Solutions Architect – Associate|739|
|2021-02-21|DVA-C01_AWS Certified Developer – Associate|775|
|2021-03-07|SOA-C01_AWS Certified SysOps Administrator – Associate|839|
|2022-02-19|SAP-C01_AWS Certified Solutions Architect – Professional|808|
|2022-05-04|DAS-C01_AWS Certifi
【AWS CDK】高権限ロールの利用通知をカスタム Construct 化してみた
# はじめに
当社では、[AWS Control Tower](https://docs.aws.amazon.com/ja_jp/controltower/latest/userguide/what-is-control-tower.html) を導入しており、外部認証基盤と[AWS IAM Identity Center](https://docs.aws.amazon.com/ja_jp/singlesignon/latest/userguide/what-is.html)(旧 AWS SSO)を連携して、マルチアカウントのユーザー管理を行っています。
高権限の[アクセス権限セット](https://docs.aws.amazon.com/ja_jp/singlesignon/latest/userguide/permissionsetsconcept.html)を利用した際に通知したいというケースがありましたので、再利用できるようにCDKでカスタムConstruct化しました。
## 通知イメージ
![通知イメージ](https://qiita-image-st
AWS CLI で MFA を有効化してみた
# はじめに
[前回の記事](https://qiita.com/sugimount-a/items/1e8fdd1c9c965e2fa839)では、セルフサービスな MFA 環境を作るための IAM Policy の方法を学びました。今回は、AWS CLI から MFA を利用するときの方法を整理したいと思います。
まず、前提知識として整理すると、AWS のマネージメントコンソールで MFA を有効化する設定項目があります。
![image-20221229120242464.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/45502778-7fc1-9c34-4405-2074083e0ce4.png)
これを有効化すると、マネージメントコンソールにログインするときに、MFA 認証が求められます。
![image-20221229120000886.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws