Data & Technology Insights

๐Ÿ“Š Spark, ๐Ÿง Linux, โ˜๏ธ AWS: ๋น…๋ฐ์ดํ„ฐ ์‹œ๋Œ€์˜ ํ•„์ˆ˜ ๊ธฐ์ˆ  ์Šคํƒ ์—ฐ๊ฒฐ๊ณ ๋ฆฌ ์ดํ•ดํ•˜๊ธฐ๐Ÿš€

soni-log 2025. 3. 8. 19:32

    ๐Ÿ”ฅ Apache Spark (์ŠคํŒŒํฌ)

    • ๋น…๋ฐ์ดํ„ฐ ๋ถ„์‚ฐ ์ฒ˜๋ฆฌ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ, ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋จ.
    • ๋ฉ”๋ชจ๋ฆฌ ๊ธฐ๋ฐ˜ ์—ฐ์‚ฐ์„ ํ™œ์šฉํ•˜์—ฌ ๊ธฐ์กด ํ•˜๋‘ก(Hadoop)๋ณด๋‹ค ๋น ๋ฅธ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ.
    • PySpark(Python ๊ธฐ๋ฐ˜ Spark API) ๊ฐ™์€ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜์—ฌ, ๋ฐ์ดํ„ฐ ๋ถ„์„ ๋ฐ ๋จธ์‹ ๋Ÿฌ๋‹ ์ž‘์—…์— ํ™œ์šฉ๋จ.
    • ํด๋Ÿฌ์Šคํ„ฐ ํ™˜๊ฒฝ์—์„œ ๋™์ž‘ํ•˜๋ฉฐ, ์—ฌ๋Ÿฌ ๋…ธ๋“œ(์„œ๋ฒ„)์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ‘๋ ฌ๋กœ ์ฒ˜๋ฆฌํ•จ.

    ๐Ÿง Linux (๋ฆฌ๋ˆ…์Šค)

    • ์ŠคํŒŒํฌ๋Š” ๋ฆฌ๋ˆ…์Šค ๊ธฐ๋ฐ˜ ์„œ๋ฒ„์—์„œ ์‹คํ–‰๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Œ.
    • ๋ฆฌ๋ˆ…์Šค๋Š” ๋ถ„์‚ฐ ์ปดํ“จํŒ… ํ™˜๊ฒฝ์—์„œ ์•ˆ์ •์„ฑ๊ณผ ์„ฑ๋Šฅ์ด ๋›ฐ์–ด๋‚จ.
    • Spark์˜ ์„ค์น˜, ์‹คํ–‰, ๋ฐฐํฌ(์˜ˆ: ํด๋Ÿฌ์Šคํ„ฐ ๊ด€๋ฆฌ) ๊ณผ์ •์—์„œ ๋ฆฌ๋ˆ…์Šค ๋ช…๋ น์–ด์™€ ์‰˜ ์Šคํฌ๋ฆฝํŠธ(Bash, Zsh ๋“ฑ)๊ฐ€ ํ•„์ˆ˜์ ์œผ๋กœ ํ™œ์šฉ๋จ.

    โ˜ AWS (Amazon Web Services)

    AWS๋Š” ์ŠคํŒŒํฌ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋ฐฐํฌํ•˜๊ณ  ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•จ. ์ฃผ์š” ์—ฐ๊ด€ ์„œ๋น„์Šค๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Œ :

    1. EMR (Elastic MapReduce)
      • AWS์—์„œ ์ œ๊ณตํ•˜๋Š” ๋งค๋‹ˆ์ง€๋“œ ์ŠคํŒŒํฌ ์„œ๋น„์Šค๋กœ, ๋ณ„๋„์˜ ์ธํ”„๋ผ ๊ตฌ์„ฑ ์—†์ด Spark ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์‰ฝ๊ฒŒ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์Œ.
      • ๊ธฐ์กด ์˜จํ”„๋ ˆ๋ฏธ์Šค ํ™˜๊ฒฝ ๋Œ€์‹ , AWS์—์„œ ๋ฐ”๋กœ ์‹คํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ ๋น„์šฉ๊ณผ ์šด์˜ ๋ถ€๋‹ด์„ ์ค„์ผ ์ˆ˜ ์žˆ์Œ.
      • Hadoop, Spark, Presto, Hive ๋“ฑ์˜ ๋น…๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ง€์›ํ•จ.
    2. EC2 (Elastic Compute Cloud)
      • ๋ฆฌ๋ˆ…์Šค ๊ธฐ๋ฐ˜์˜ ๊ฐ€์ƒ ๋จธ์‹ (์ธ์Šคํ„ด์Šค)์„ ์ œ๊ณตํ•˜๋Š” ์„œ๋น„์Šค.
      • ์ง์ ‘ EC2์— Spark๋ฅผ ์„ค์น˜ํ•˜๊ณ  ๊ตฌ์„ฑํ•˜์—ฌ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์šด์˜ํ•  ์ˆ˜๋„ ์žˆ์Œ.
    3. S3 (Simple Storage Service)
      • ์ŠคํŒŒํฌ๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•  ๋•Œ ์ €์žฅ์†Œ ์—ญํ• ์„ ํ•˜๋Š” ์„œ๋น„์Šค.
      • ์ŠคํŒŒํฌ๋Š” ๋ณดํ†ต HDFS(Hadoop Distributed File System)๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ, AWS ํ™˜๊ฒฝ์—์„œ๋Š” HDFS ๋Œ€์‹  S3๋ฅผ ๋ฐ์ดํ„ฐ ๋ ˆ์ดํฌ๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Œ.
    4. Glue
      • AWS์—์„œ ์ œ๊ณตํ•˜๋Š” ์„œ๋ฒ„๋ฆฌ์Šค ๋ฐ์ดํ„ฐ ์ค€๋น„ ๋ฐ ๋ณ€ํ™˜ ์„œ๋น„์Šค๋กœ, ๋‚ด๋ถ€์ ์œผ๋กœ Spark๋ฅผ ํ™œ์šฉํ•จ.
      • PySpark ๊ธฐ๋ฐ˜์œผ๋กœ ETL(Extract, Transform, Load) ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Œ.
    5. Lambda & Step Functions
      • AWS Lambda๋ฅผ ์‚ฌ์šฉํ•ด **Spark ์ž‘์—…์„ ํŠธ๋ฆฌ๊ฑฐ(์‹คํ–‰)**ํ•  ์ˆ˜๋„ ์žˆ์Œ.
      • Step Functions๋ฅผ ํ™œ์šฉํ•˜๋ฉด Spark ์ž‘์—…์„ ์›Œํฌํ”Œ๋กœ์šฐ๋กœ ์ž๋™ํ™” ๊ฐ€๋Šฅ.

    ๐ŸŽฏ ์ŠคํŒŒํฌ - ๋ฆฌ๋ˆ…์Šค - AWS์˜ ๊ด€๊ณ„ ์ •๋ฆฌ

    • Spark๋Š” ๋ฆฌ๋ˆ…์Šค ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰๋˜๋Š” ๋น…๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ํ”„๋ ˆ์ž„์›Œํฌ์ž„.
    • AWS๋Š” ๋ฆฌ๋ˆ…์Šค ๊ธฐ๋ฐ˜์˜ ๊ฐ€์ƒ ์„œ๋ฒ„(EC2) ๋˜๋Š” ๋งค๋‹ˆ์ง€๋“œ ์„œ๋น„์Šค(EMR, Glue)๋ฅผ ํ†ตํ•ด Spark ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์‰ฝ๊ฒŒ ์šด์˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•จ.
    • Spark๋Š” AWS S3, DynamoDB ๊ฐ™์€ ์„œ๋น„์Šค์™€ ์—ฐ๋™ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ , ๋ถ„์„ํ•  ์ˆ˜ ์žˆ์Œ.
    • AWS์˜ ๋งค๋‹ˆ์ง€๋“œ ์„œ๋น„์Šค(EMR, Glue ๋“ฑ)๋ฅผ ํ™œ์šฉํ•˜๋ฉด ๋ฆฌ๋ˆ…์Šค ์„œ๋ฒ„๋ฅผ ์ง์ ‘ ๊ด€๋ฆฌํ•  ํ•„์š” ์—†์ด Spark๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Œ.

    ์ฆ‰, ๋ฆฌ๋ˆ…์Šค๋Š” Spark๋ฅผ ๊ตฌ๋™ํ•˜๋Š” ์šด์˜์ฒด์ œ ์—ญํ• , AWS๋Š” Spark๋ฅผ ํด๋ผ์šฐ๋“œ์—์„œ ์‰ฝ๊ฒŒ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค๊ณ  ํ•˜๋„ค์š”!

     

    ๊ทธ๋ ‡๋‹ค๋ฉด...
    "๋ฆฌ๋ˆ…์Šค ์šด์˜์ฒด์ œ๋ฅผ ๋ˆ AWS ์„œ๋ฒ„(์ €์žฅ๊ณต๊ฐ„)์—์„œ Spark ํ˜•์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค๋Š” ๊ฑธ๊นŒ?"

     

    ๐Ÿง‘‍๐Ÿซ๊ฑฐ์˜ ๋งž๋Š” ๋ง์ด์ง€๋งŒ, ์กฐ๊ธˆ ๋” ์ •ํ™•ํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๋ฉด ์ด๋ ‡๊ฒŒ ์ •๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด์š”:

    AWS์—์„œ ๋ฆฌ๋ˆ…์Šค ์šด์˜์ฒด์ œ๊ฐ€ ์„ค์น˜๋œ ์„œ๋ฒ„(EC2 ๋˜๋Š” EMR)๋ฅผ ์‹คํ–‰ํ•˜๊ณ , ๊ทธ ์œ„์—์„œ Spark๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.
    ๋˜ํ•œ, ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ๋•Œ๋Š” S3 ๊ฐ™์€ ์Šคํ† ๋ฆฌ์ง€ ์„œ๋น„์Šค๋ฅผ ํ™œ์šฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค.


    ๐Ÿ“Œ ๋” ์ •ํ™•ํ•œ ๊ฐœ๋… ์ •๋ฆฌ

    1. AWS ์„œ๋ฒ„(EC2, EMR)์—์„œ ๋ฆฌ๋ˆ…์Šค๋ฅผ ์‹คํ–‰
      • AWS์—์„œ ์ œ๊ณตํ•˜๋Š” ์„œ๋ฒ„(EC2 ๋˜๋Š” EMR)๋Š” ๋Œ€๋ถ€๋ถ„ ๋ฆฌ๋ˆ…์Šค ์šด์˜์ฒด์ œ๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์„ค์น˜๋จ.
      • ์˜ˆ: Ubuntu, Amazon Linux, CentOS ๋“ฑ.
    2. Spark๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ
      • Spark๋Š” ๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ํ”„๋ ˆ์ž„์›Œํฌ์ด๋ฏ€๋กœ, ์—ฌ๋Ÿฌ ๋Œ€์˜ ๋ฆฌ๋ˆ…์Šค ์„œ๋ฒ„(๋…ธ๋“œ)๋ฅผ ๋ฌถ์–ด ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•จ.
      • AWS์—์„œ๋Š” EMR(Elastic MapReduce) ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•˜๋ฉด ์‰ฝ๊ฒŒ Spark ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Œ.
      • PySpark๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด Python ์ฝ”๋“œ๋กœ Spark ์ž‘์—…์„ ์‹คํ–‰ ๊ฐ€๋Šฅ.
    3. ๋ฐ์ดํ„ฐ ์ €์žฅ ๋ฐฉ์‹(S3 vs. HDFS vs. ๋กœ์ปฌ ํŒŒ์ผ ์‹œ์Šคํ…œ)
      • Spark๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๋น ๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ•˜์ง€๋งŒ, ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ๋•Œ๋Š” ๋‹ค์–‘ํ•œ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ.
      • AWS ํ™˜๊ฒฝ์—์„œ๋Š” ๋ณดํ†ต S3๋ฅผ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ๋กœ ์‚ฌ์šฉํ•จ. (HDFS๋ฅผ ๋Œ€์ฒด)
      • ๋งŒ์•ฝ ์˜จํ”„๋ ˆ๋ฏธ์Šค(์ž์ฒด ์„œ๋ฒ„) ํ™˜๊ฒฝ์ด๋ผ๋ฉด, HDFS(Hadoop Distributed File System)๋‚˜ ๋กœ์ปฌ ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์Œ.

    โœ… ์ข€ ๋” ์ •ํ™•ํ•œ ํ‘œํ˜„

    "AWS์—์„œ ๋ฆฌ๋ˆ…์Šค ์šด์˜์ฒด์ œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์„œ๋ฒ„(EC2 ๋˜๋Š” EMR)๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ๊ทธ ์œ„์—์„œ Spark๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋ฉฐ, ์ €์žฅ ๊ณต๊ฐ„์œผ๋กœ๋Š” ์ฃผ๋กœ S3๋ฅผ ํ™œ์šฉํ•œ๋‹ค."

    ์ด๋ ‡๊ฒŒ ํ‘œํ˜„ํ•˜๋ฉด ๋” ์ •ํ™•ํ•ฉ๋‹ˆ๋‹ค!


    ์ฆ‰, Spark ์ž์ฒด๊ฐ€ ์ €์žฅ์†Œ ์—ญํ• ์„ ํ•˜์ง€๋Š” ์•Š๊ณ , ๋ฐ์ดํ„ฐ๋ฅผ Spark๋กœ ์ฒ˜๋ฆฌํ•œ ํ›„ S3, HDFS, ๋˜๋Š” ๋‹ค๋ฅธ ์ €์žฅ์†Œ์— ์ €์žฅํ•˜๋Š” ๊ฐœ๋…์ด๋ผ๊ณ  ํ•˜๋„ค์š”. ๐Ÿ˜Š